From 72c4420c1bcf3b785902e7b7bc534d39bdaeb4e7 Mon Sep 17 00:00:00 2001 From: TheDarkDnKTv Date: Fri, 26 Mar 2021 05:00:42 +0200 Subject: [PATCH] Fixed Thermal boiler Closes #92. Also fixed duplicated tooltip of Lava filter --- .../api/items/GT_Durable_Item.java | 14 ------- .../gregtechmod/api/recipe/RecipeLogic.java | 2 + .../GT_MetaTileEntity_FusionComputer.java | 42 +++++++++---------- ...GT_MetaTileEntity_Multi_ThermalBoiler.java | 28 +++++++++++-- 4 files changed, 47 insertions(+), 39 deletions(-) diff --git a/src/main/java/gregtechmod/api/items/GT_Durable_Item.java b/src/main/java/gregtechmod/api/items/GT_Durable_Item.java index aed44a3..96bd75e 100644 --- a/src/main/java/gregtechmod/api/items/GT_Durable_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_Durable_Item.java @@ -1,10 +1,5 @@ package gregtechmod.api.items; -import java.util.List; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; /** @@ -37,13 +32,4 @@ public class GT_Durable_Item extends GT_Generic_Item { public boolean hasEffect(ItemStack par1ItemStack) { return false; } - - @SideOnly(Side.CLIENT) - @Override - protected void addAdditionalToolTips(List aList, ItemStack aStack) { - if (aStack != null && aStack.getItem() != null && aStack.getItem() instanceof GT_Durable_Item) { - int durability = aStack.getMaxDamage() - aStack.getItemDamage(); - aList.add(I18n.format("item.durability.tooltip", durability, aStack.getMaxDamage())); - } - } } \ No newline at end of file diff --git a/src/main/java/gregtechmod/api/recipe/RecipeLogic.java b/src/main/java/gregtechmod/api/recipe/RecipeLogic.java index 08e6648..8e5d80e 100644 --- a/src/main/java/gregtechmod/api/recipe/RecipeLogic.java +++ b/src/main/java/gregtechmod/api/recipe/RecipeLogic.java @@ -215,6 +215,7 @@ public class RecipeLogic { if (amount > 0) { GT_Log.log.error(String.format("Output overflow detected for machine (%s) left amount: %s, stack: %s", getMachine().getClass().getName(), amount, recipeOut)); getMachine().getBaseMetaTileEntity().disableWorking(); + triggerMachine(false); } } @@ -236,6 +237,7 @@ public class RecipeLogic { if (amount > 0) { GT_Log.log.error(String.format("Output overflow detected for machine (%s) left amount: %s, fluid: %s", getMachine().getClass().getName(), amount, FluidRegistry.getFluidName(fluid))); getMachine().getBaseMetaTileEntity().disableWorking(); + triggerMachine(false); } } diff --git a/src/main/java/gregtechmod/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/src/main/java/gregtechmod/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java index 5157574..7056869 100644 --- a/src/main/java/gregtechmod/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java +++ b/src/main/java/gregtechmod/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java @@ -118,28 +118,26 @@ public class GT_MetaTileEntity_FusionComputer extends MetaTileEntity implements @Override public void onPostTick() { - if (getBaseMetaTileEntity().isServerSide()) { - if (getBaseMetaTileEntity().isServerSide()) { - if (needCheckStruct) { - reset(); - structComplete = checkMachine(); - needCheckStruct = false; - - if (structComplete) { - fluidInputs = new InventoryHandlerList<>(mPlasmaInjectors.stream().map(extr -> new ListAdapter<>(extr.mFluid)).collect(Collectors.toList())); - fluidOutputs = new InventoryHandlerList<>(mPlasmaExtractors.stream().map(extr -> new ListAdapter<>(extr.mFluid)).collect(Collectors.toList())); - itemInputs = new InventoryHandlerList<>(mPlasmaInjectors.stream().map(extr -> new ListAdapter<>(extr.mInventory, extr.getInputSlot(), extr.getInputSlot())).collect(Collectors.toList())); - itemOutputs = new InventoryHandlerList<>(mPlasmaExtractors.stream().map(extr -> new ListAdapter<>(extr.mInventory, extr.getOutputSlot(), extr.getOutputSlot())).collect(Collectors.toList())); - } - } else if (!structComplete && getBaseMetaTileEntity().getTimer() % 600 == 0) { - needCheckStruct = true; - } - - if (structComplete) { - recipeLogic.update(); - } else recipeLogic.stop(); - } - } + if (getBaseMetaTileEntity().isServerSide()) { + if (needCheckStruct) { + reset(); + structComplete = checkMachine(); + needCheckStruct = false; + + if (structComplete) { + fluidInputs = new InventoryHandlerList<>(mPlasmaInjectors.stream().map(extr -> new ListAdapter<>(extr.mFluid)).collect(Collectors.toList())); + fluidOutputs = new InventoryHandlerList<>(mPlasmaExtractors.stream().map(extr -> new ListAdapter<>(extr.mFluid)).collect(Collectors.toList())); + itemInputs = new InventoryHandlerList<>(mPlasmaInjectors.stream().map(extr -> new ListAdapter<>(extr.mInventory, extr.getInputSlot(), extr.getInputSlot())).collect(Collectors.toList())); + itemOutputs = new InventoryHandlerList<>(mPlasmaExtractors.stream().map(extr -> new ListAdapter<>(extr.mInventory, extr.getOutputSlot(), extr.getOutputSlot())).collect(Collectors.toList())); + } + } else if (!structComplete && getBaseMetaTileEntity().getTimer() % 600 == 0) { + needCheckStruct = true; + } + + if (structComplete) { + recipeLogic.update(); + } else recipeLogic.stop(); + } } public boolean hasInventoryBeenModified() { diff --git a/src/main/java/gregtechmod/common/tileentities/machines/multi/GT_MetaTileEntity_Multi_ThermalBoiler.java b/src/main/java/gregtechmod/common/tileentities/machines/multi/GT_MetaTileEntity_Multi_ThermalBoiler.java index f258133..e93e50f 100644 --- a/src/main/java/gregtechmod/common/tileentities/machines/multi/GT_MetaTileEntity_Multi_ThermalBoiler.java +++ b/src/main/java/gregtechmod/common/tileentities/machines/multi/GT_MetaTileEntity_Multi_ThermalBoiler.java @@ -191,6 +191,8 @@ public class GT_MetaTileEntity_Multi_ThermalBoiler extends MTEWorkableMultiblock private static class ThermalBoilerLogic extends GeneratorRecipeLogic { + protected boolean justFinished = false; + protected ThermalBoilerLogic(IntSupplier efficiency, RecipeMap recipeMap, IRecipeWorkable machine) { super(efficiency, recipeMap, machine); } @@ -211,12 +213,12 @@ public class GT_MetaTileEntity_Multi_ThermalBoiler extends MTEWorkableMultiblock if (base.isAllowedToWork()) { if (leftEU == 0) { - if (machine.hasInventoryBeenModified() || base.hasWorkJustBeenEnabled() || success || base.getTimer() % 600 == 0) { + if (machine.hasInventoryBeenModified() || base.hasWorkJustBeenEnabled() || success || justFinished || base.getTimer() % 600 == 0) { + justFinished = false; trySerachRecipe(); } } - } else if (success) - triggerMachine(false); + } return success; } @@ -244,6 +246,26 @@ public class GT_MetaTileEntity_Multi_ThermalBoiler extends MTEWorkableMultiblock return false; } + @Override + protected void trySerachRecipe() { + if (getMachine().allowToCheckRecipe()) { + if (previousRecipe != null) { + if (match(previousRecipe)) { + startRecipe(previousRecipe); + } else { + previousRecipe = null; + justFinished = true; + triggerMachine(false); + } + } else { + // find new recipe + Recipe resRec = findRecipe(); + if (resRec != null) + startRecipe(resRec); + } + } + } + @Override public void stop() { leftEU = 0;