From aaffeea926d74f766a099f419c67b8d64ffa7977 Mon Sep 17 00:00:00 2001 From: ticticboooom Date: Wed, 12 May 2021 03:44:59 +0100 Subject: [PATCH] fixed ports and some inconsistencies --- build.gradle | 2 +- .../MachineStructureRecipeCategory.java | 19 ++++++++++--------- .../mods/mm/data/MachineProcessRecipe.java | 16 +++++++--------- .../inventory/mek/PortMekSlurryInventory.java | 4 ++-- .../mm/ports/state/MekSlurryPortState.java | 18 ++++++++++++------ .../ports/storage/MekSlurryPortStorage.java | 1 + .../recipes/masteritem.json | 2 +- 7 files changed, 34 insertions(+), 28 deletions(-) diff --git a/build.gradle b/build.gradle index 2561312..df5ff9c 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' -version = '1.16.5-0.1.2-T' + System.currentTimeMillis() +version = '1.16.5-0.1.4-T' + System.currentTimeMillis() group = 'com.yourname.modid' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'MasterfulMachinery' diff --git a/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MachineStructureRecipeCategory.java b/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MachineStructureRecipeCategory.java index 6b0bc0d..d2b1f10 100644 --- a/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MachineStructureRecipeCategory.java +++ b/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MachineStructureRecipeCategory.java @@ -147,7 +147,7 @@ public class MachineStructureRecipeCategory implements IRecipeCategory { @@ -34,12 +32,14 @@ public class MachineProcessRecipe implements IRecipe { private final List outputs; private int ticks; private String structureId; + private ResourceLocation rl; - public MachineProcessRecipe(List inputs, List outputs, int ticks, String structureId) { + public MachineProcessRecipe(List inputs, List outputs, int ticks, String structureId, ResourceLocation rl) { this.inputs = inputs; this.outputs = outputs; this.ticks = ticks; this.structureId = structureId; + this.rl = rl; } public boolean matches(List inputPorts, String structureId) { @@ -75,8 +75,6 @@ public class MachineProcessRecipe implements IRecipe { return update; } - - if (update.getTicksTaken() >= ticks) { for (PortState input : inputs) { input.processRequirement(inputPorts); @@ -114,7 +112,7 @@ public class MachineProcessRecipe implements IRecipe { } for (PortState input : outputs) { if (input.isConsumePerTick()) { - input.processRequirement(outputPorts); + input.processResult(outputPorts); } } update.setTicksTaken(update.getTicksTaken() + 1); @@ -145,7 +143,7 @@ public class MachineProcessRecipe implements IRecipe { @Override public ResourceLocation getId() { - return new ResourceLocation(MM.ID, "machine_process"); + return rl; } @Override @@ -171,7 +169,7 @@ public class MachineProcessRecipe implements IRecipe { List inputStates = getStates(inputs); List outputStates = getStates(outputs); - return new MachineProcessRecipe(inputStates, outputStates, ticks, structureId); + return new MachineProcessRecipe(inputStates, outputStates, ticks, structureId, rl); } @SneakyThrows @@ -207,7 +205,7 @@ public class MachineProcessRecipe implements IRecipe { String structureId = buf.readUtf(); List inputs = getStates(buf, inputCount); List outputs = getStates(buf, outputCount); - return new MachineProcessRecipe(inputs, outputs, ticks, structureId); + return new MachineProcessRecipe(inputs, outputs, ticks, structureId, rl); } private List getStates(PacketBuffer buf, int count) { diff --git a/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekSlurryInventory.java b/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekSlurryInventory.java index b58fd36..25bd409 100644 --- a/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekSlurryInventory.java +++ b/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekSlurryInventory.java @@ -56,7 +56,7 @@ public class PortMekSlurryInventory implements ISlurryHandler, ISlurryTank { if (this.stack.getAmount() + stack.getAmount() > capacity) { return new SlurryStack(stack.getType(), this.stack.getAmount() + stack.getAmount() - capacity); } else { - return SlurryStack.EMPTY; + return stack; } } @@ -74,7 +74,7 @@ public class PortMekSlurryInventory implements ISlurryHandler, ISlurryTank { } else { this.stack.setAmount(this.stack.getAmount() + stack.getAmount()); } - return SlurryStack.EMPTY; + return stack; } } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/state/MekSlurryPortState.java b/src/main/java/com/ticticboooom/mods/mm/ports/state/MekSlurryPortState.java index b83e295..290727e 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/state/MekSlurryPortState.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/state/MekSlurryPortState.java @@ -39,6 +39,9 @@ public class MekSlurryPortState extends PortState { MekSlurryPortStorage gasStorage = (MekSlurryPortStorage) st; SlurryStack extract = gasStorage.getInv().extract(current, Action.EXECUTE, AutomationType.EXTERNAL); current -= extract.getAmount(); + if (current <= 0){ + return; + } } } } @@ -61,25 +64,28 @@ public class MekSlurryPortState extends PortState { @Override public void processResult(List storage) { - long current = 0; + long current = amount; for (IPortStorage st : storage) { if (st instanceof MekSlurryPortStorage) { MekSlurryPortStorage gasStorage = (MekSlurryPortStorage) st; SlurryStack extract = gasStorage.getInv().insertChemical(new SlurryStack(Objects.requireNonNull(MekanismAPI.slurryRegistry().getValue(RLUtils.toRL(slurry))), current), Action.EXECUTE); - current += extract.getAmount(); + current -= extract.getAmount(); + if (current <= 0) { + return; + } } } } @Override public boolean validateResult(List storage) { - long current = 0; + long current = amount; for (IPortStorage st : storage) { if (st instanceof MekSlurryPortStorage) { MekSlurryPortStorage gasStorage = (MekSlurryPortStorage) st; - SlurryStack extract = gasStorage.getInv().insertChemical(new SlurryStack(Objects.requireNonNull(MekanismAPI.slurryRegistry().getValue(RLUtils.toRL(slurry))), current), Action.EXECUTE); - current += extract.getAmount(); - if (current >= amount) { + SlurryStack extract = gasStorage.getInv().insertChemical(new SlurryStack(Objects.requireNonNull(MekanismAPI.slurryRegistry().getValue(RLUtils.toRL(slurry))), current), Action.SIMULATE); + current -= extract.getAmount(); + if (current <= 0) { return true; } } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekSlurryPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekSlurryPortStorage.java index 87f3e35..55625a9 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekSlurryPortStorage.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekSlurryPortStorage.java @@ -29,6 +29,7 @@ public class MekSlurryPortStorage implements IPortStorage { public static final Codec CODEC = RecordCodecBuilder.create(x -> x.group( Codec.LONG.fieldOf("capacity").forGetter(z -> z.capacity) ).apply(x, MekSlurryPortStorage::new)); + @Getter private final PortMekSlurryInventory inv; private long capacity; diff --git a/src/main/resources/data/masterfulmachinery/recipes/masteritem.json b/src/main/resources/data/masterfulmachinery/recipes/masteritem.json index 4c1d99d..aa3a20f 100644 --- a/src/main/resources/data/masterfulmachinery/recipes/masteritem.json +++ b/src/main/resources/data/masterfulmachinery/recipes/masteritem.json @@ -7,7 +7,7 @@ { "type": "masterfulmachinery:items", "data": { - "item": "minecraft:wool", + "item": "minecraft:white_wool", "count": 2 } },