diff options
Diffstat (limited to 'src')
3 files changed, 72 insertions, 50 deletions
diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java index 3af649987b..7cd4605e84 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java +++ b/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java @@ -18,11 +18,10 @@ import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; import static gregtech.api.util.GT_StructureUtility.ofCoil; -import java.util.ArrayList; +import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; import com.elisis.gtnhlanth.api.recipe.LanthanidesRecipeMaps; import com.elisis.gtnhlanth.util.DescTextLocalization; @@ -36,10 +35,14 @@ import gregtech.api.enums.HeatingCoilLevel; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.GT_OverclockCalculator; import gregtech.api.util.GT_Recipe; public class Digester extends GT_MetaTileEntity_EnhancedMultiBlockBase<Digester> implements ISurvivalConstructable { @@ -101,37 +104,42 @@ public class Digester extends GT_MetaTileEntity_EnhancedMultiBlockBase<Digester> } @Override - public boolean checkRecipe(ItemStack itemStack) { - // GT_Log.out.print("Digester: in checkRecipe\n"); + protected ProcessingLogic createProcessingLogic() { + return new ProcessingLogic() { - ArrayList<FluidStack> tFluidInputs = this.getStoredFluids(); - FluidStack[] tFluidInputArray = tFluidInputs.toArray(new FluidStack[0]); - ItemStack[] tItems = this.getStoredInputs().toArray(new ItemStack[0]); - long tVoltage = this.getMaxInputVoltage(); + @Nonnull + @Override + protected GT_OverclockCalculator createOverclockCalculator(@Nonnull GT_Recipe recipe) { + return super.createOverclockCalculator(recipe).enablePerfectOC(); + } - // GT_Log.out.print("Digester: " + Arrays.toString(mInventory)); + @Override + protected @Nonnull CheckRecipeResult validateRecipe(@Nonnull GT_Recipe recipe) { + return recipe.mSpecialValue <= Digester.this.getCoilLevel().getHeat() + ? CheckRecipeResultRegistry.SUCCESSFUL + : CheckRecipeResultRegistry.insufficientHeat(recipe.mSpecialValue); + } - GT_Recipe tRecipe = LanthanidesRecipeMaps.digesterRecipes - .findRecipe(getBaseMetaTileEntity(), false, tVoltage, tFluidInputArray, tItems); - - if (tRecipe == null || !tRecipe.isRecipeInputEqual(true, tFluidInputArray, tItems)) return false; - // GT_Log.out.print("Recipe not null\n"); + }; + } - this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - this.calculateOverclockedNessMultiInternal(tRecipe.mEUt, tRecipe.mDuration, 1, tVoltage, true); + @Override + public boolean supportsVoidProtection() { + return true; + } - if (mMaxProgresstime == Integer.MAX_VALUE - 1 && this.mEUt == Integer.MAX_VALUE - 1) return false; + @Override + public boolean supportsInputSeparation() { + return true; + } - if (this.mEUt > 0) this.mEUt = (-this.mEUt); - // GT_Log.out.print("valid values"); + @Override + public boolean supportsBatchMode() { + return true; + } - if (tRecipe.mSpecialValue > this.getCoilLevel().getHeat()) return false; - // GT_Log.out.print("Coils good\n"); - // GT_Log.out.print(tRecipe.getFluidOutput(0).getLocalizedName()); - this.mOutputFluids = tRecipe.mFluidOutputs; - this.mOutputItems = tRecipe.mOutputs; - this.updateSlots(); + @Override + public boolean supportsSingleRecipeLocking() { return true; } diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java index 2432ead38c..080fdc8c54 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java +++ b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java @@ -17,13 +17,18 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_G import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; +import java.util.Arrays; import java.util.List; +import javax.annotation.Nonnull; + import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import org.jetbrains.annotations.NotNull; + import com.elisis.gtnhlanth.api.recipe.LanthanidesRecipeMaps; import com.elisis.gtnhlanth.util.DescTextLocalization; import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; @@ -37,8 +42,12 @@ import gregtech.api.interfaces.ISecondaryDescribable; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; @@ -96,36 +105,39 @@ public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase<Di } @Override - public boolean checkRecipe(ItemStack itemStack) { - // GT_Log.out.print("in checkRecipe"); - - List<FluidStack> tFluidInputs = this.getStoredFluids(); - FluidStack[] tFluidInputArray = tFluidInputs.toArray(new FluidStack[0]); - ItemStack[] tItems = this.getStoredInputs().toArray(new ItemStack[0]); - long tVoltage = this.getMaxInputVoltage(); - - GT_Recipe tRecipe = LanthanidesRecipeMaps.dissolutionTankRecipes - .findRecipe(getBaseMetaTileEntity(), false, tVoltage, tFluidInputArray, tItems); + protected ProcessingLogic createProcessingLogic() { + return new ProcessingLogic() { - if (tRecipe == null || !tRecipe.isRecipeInputEqual(true, tFluidInputArray, tItems)) return false; - // GT_Log.out.print("Recipe not null\n"); + @NotNull + @Override + protected CheckRecipeResult onRecipeStart(@Nonnull GT_Recipe recipe) { + if (!checkRatio(recipe, Arrays.asList(inputFluids))) { + criticalStopMachine(); + return SimpleCheckRecipeResult.ofFailurePersistOnShutdown("dissolution_ratio"); + } + return CheckRecipeResultRegistry.SUCCESSFUL; + } - this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - this.calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 1, tVoltage); + }; + } - if (mMaxProgresstime == Integer.MAX_VALUE - 1 && this.mEUt == Integer.MAX_VALUE - 1) return false; - if (this.mEUt > 0) this.mEUt = (-this.mEUt); + @Override + public boolean supportsVoidProtection() { + return true; + } - this.updateSlots(); + @Override + public boolean supportsInputSeparation() { + return true; + } - if (!checkRatio(tRecipe, tFluidInputs)) { - stopMachine(); - return false; - } + @Override + public boolean supportsBatchMode() { + return true; + } - this.mOutputFluids = new FluidStack[] { tRecipe.getFluidOutput(0) }; - this.mOutputItems = tRecipe.mOutputs; + @Override + public boolean supportsSingleRecipeLocking() { return true; } diff --git a/src/main/resources/assets/gtnhlanth/lang/en_US.lang b/src/main/resources/assets/gtnhlanth/lang/en_US.lang index 5b944ee029..5aeb987b00 100644 --- a/src/main/resources/assets/gtnhlanth/lang/en_US.lang +++ b/src/main/resources/assets/gtnhlanth/lang/en_US.lang @@ -51,3 +51,5 @@ fluid.Dinitrotoluene=Dinitrotoluene fluid.Diaminotoluene=Diaminotoluene fluid.Toluene Tetramethyl Diisocyanate=Toluene Tetramethyl Diisocyanate fluid.Diluted Acetone=Diluted Acetone + +GT5U.gui.text.dissolution_ratio=ยง7Wrong fluid input ratio |