From f3bf09faa031112d54557297992b6c93ad1f2bcc Mon Sep 17 00:00:00 2001 From: Quarris Date: Mon, 6 Jun 2022 12:48:58 +0100 Subject: [PATCH] Fixed input ports with perTick set to true, now need to be validated for the recipe to go ahead. This used to cause inputs to consume resources even if the recipe wasn't able to process --- build.gradle | 4 +- .../mm/block/tile/ControllerBlockEntity.java | 2 +- .../mods/mm/data/MachineProcessRecipe.java | 4 +- .../mm/ports/state/RotationPortState.java | 6 +-- .../structures/test_constant_mana.json | 25 ++++++++++++ .../resources/data/mm/recipes/test_items.json | 5 ++- .../mm/recipes/test_mana_constant_output.json | 40 +++++++++++++++++++ version.properties | 4 +- 8 files changed, 78 insertions(+), 12 deletions(-) create mode 100644 src/test/resources/data/mm/recipes/structures/test_constant_mana.json create mode 100644 src/test/resources/data/mm/recipes/test_mana_constant_output.json diff --git a/build.gradle b/build.gradle index 277dc34..c3d9ae1 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ apply plugin: 'eclipse' apply plugin: 'maven-publish' apply plugin: 'org.spongepowered.mixin' -version = '1.16.5-0.1.61-hf-B' + getVersionNumber() +version = '1.16.5-0.1.62-B' + getVersionNumber() group = 'com.ticticboooom.mods.mm' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'MasterfulMachinery' java.toolchain.languageVersion = JavaLanguageVersion.of(8) // Mojang ships Java 8 to end users, so your mod should target Java 8. @@ -177,7 +177,7 @@ dependencies { // The userdev artifact is a special name and will get all sorts of transformations applied to it. compileOnly 'org.projectlombok:lombok:1.18.18' annotationProcessor 'org.projectlombok:lombok:1.18.18' - minecraft 'net.minecraftforge:forge:1.16.5-36.2.21' + minecraft 'net.minecraftforge:forge:1.16.5-36.2.35' compileOnly 'com.google.code.gson:gson:2.8.7' implementation 'org.spongepowered:mixin:0.8-SNAPSHOT' diff --git a/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java b/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java index 8d13546..36097e8 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java @@ -110,7 +110,7 @@ public class ControllerBlockEntity extends UpdatableTile implements ITickableTil if (recipe.matches(inputPorts, structure.getStructureId(), processData)) { // TODO Make sure the recipe doesn't stop progress when some inputs aren't present if (!recipe.equals(processData.getRecipe())) { - if (processData.getRecipe() != null){ + if (processData.getRecipe() != null) { processData.getRecipe().onInterrupted(inputPorts, outputPorts); } processData.setTicksTaken(0); diff --git a/src/main/java/com/ticticboooom/mods/mm/data/MachineProcessRecipe.java b/src/main/java/com/ticticboooom/mods/mm/data/MachineProcessRecipe.java index dffd6d5..cbe5640 100644 --- a/src/main/java/com/ticticboooom/mods/mm/data/MachineProcessRecipe.java +++ b/src/main/java/com/ticticboooom/mods/mm/data/MachineProcessRecipe.java @@ -63,11 +63,11 @@ public class MachineProcessRecipe implements IRecipe { if (takenIndices.contains(i)) { continue; } - if (!input.isConsumePerTick()) { + //if (!input.isConsumePerTick()) { if (!input.validateRequirement(inputPorts)) { return false; } - } + //} } return true; } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/state/RotationPortState.java b/src/main/java/com/ticticboooom/mods/mm/ports/state/RotationPortState.java index f86ce46..9e69c17 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/state/RotationPortState.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/state/RotationPortState.java @@ -38,7 +38,7 @@ public class RotationPortState extends PortState { @Override public boolean validateRequirement(List storage) { for (PortStorage portStorage : storage) { - if (portStorage instanceof RotationPortStorage){ + if (portStorage instanceof RotationPortStorage) { RotationPortStorage rot = (RotationPortStorage) portStorage; if (!rot.isOverStressed() && rot.getSpeed() >= speed) { return true; @@ -51,7 +51,7 @@ public class RotationPortState extends PortState { @Override public void processResult(List storage) { for (PortStorage portStorage : storage) { - if (portStorage instanceof RotationPortStorage){ + if (portStorage instanceof RotationPortStorage) { RotationPortStorage rot = (RotationPortStorage) portStorage; rot.setSpeed(speed); } @@ -81,7 +81,7 @@ public class RotationPortState extends PortState { @Override public void setupRecipe(IRecipeLayout layout, Integer typeIndex, int x, int y, boolean input) { IGuiIngredientGroup group = layout.getIngredientsGroup(MMJeiPlugin.ROT_TYPE); - group.init(typeIndex, input, x+ 1, y +1); + group.init(typeIndex, input, x + 1, y + 1); group.set(typeIndex, new RotationStack(speed)); } diff --git a/src/test/resources/data/mm/recipes/structures/test_constant_mana.json b/src/test/resources/data/mm/recipes/structures/test_constant_mana.json new file mode 100644 index 0000000..6b3e912 --- /dev/null +++ b/src/test/resources/data/mm/recipes/structures/test_constant_mana.json @@ -0,0 +1,25 @@ +{ + "type": "masterfulmachinery:machine_structure", + "id": "test_constant_mana", + "controllerId": "basic", + "name": "Test Constant Mana", + "layout": [ + [ + "C1234" + ] + ], + "legend": { + "1": { + "block": "masterfulmachinery:basic_simple_port_items_input" + }, + "2": { + "block": "masterfulmachinery:basic_simple_port_items_output" + }, + "3": { + "block": "masterfulmachinery:basic_simple_port_create_rotation_input" + }, + "4": { + "block": "masterfulmachinery:basic_simple_port_botania_mana_input" + } + } +} \ No newline at end of file diff --git a/src/test/resources/data/mm/recipes/test_items.json b/src/test/resources/data/mm/recipes/test_items.json index 5c13690..f082069 100644 --- a/src/test/resources/data/mm/recipes/test_items.json +++ b/src/test/resources/data/mm/recipes/test_items.json @@ -2,14 +2,15 @@ "type": "masterfulmachinery:machine_process", "structureId": "test_items", "controllerId": "basic", - "ticks": 200, + "ticks": 40, "inputs": [ { "type": "masterfulmachinery:items", "data": { "item": "minecraft:oak_log", "count": 2 - } + }, + "perTick": true } ], "outputs":[ diff --git a/src/test/resources/data/mm/recipes/test_mana_constant_output.json b/src/test/resources/data/mm/recipes/test_mana_constant_output.json new file mode 100644 index 0000000..52cd130 --- /dev/null +++ b/src/test/resources/data/mm/recipes/test_mana_constant_output.json @@ -0,0 +1,40 @@ +{ + "type": "masterfulmachinery:machine_process", + "structureId": "test_constant_mana", + "controllerId": "basic", + "ticks": 100, + "inputs": [ + { + "type": "masterfulmachinery:items", + "consumeInstantly": false, + "data": { + "item": "minecraft:stone", + "count": 1 + } + }, + { + "type": "masterfulmachinery:botania_mana", + "perTick": true, + "consumeInstantly": true, + "data": { + "amount": 25 + } + }, + { + "type": "masterfulmachinery:create_rotation", + "perTick": true, + "data": { + "speed": 16 + } + } + ], + "outputs": [ + { + "type": "masterfulmachinery:items", + "data": { + "item": "minecraft:cobblestone", + "count": 9 + } + } + ] +} \ No newline at end of file diff --git a/version.properties b/version.properties index 3065c3e..62ca4c6 100644 --- a/version.properties +++ b/version.properties @@ -1,2 +1,2 @@ -#Wed Apr 13 12:36:09 BST 2022 -VERSION_CODE=920 +#Mon Jun 06 12:45:37 BST 2022 +VERSION_CODE=953