diff options
author | GDCloud <93287602+GDCloudstrike@users.noreply.github.com> | 2024-02-18 12:55:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-18 12:55:19 +0100 |
commit | 2a7811cd974957f675aa7e2cc48df76d78a4f509 (patch) | |
tree | 1f9dbaf08983f3359c41b3a599f5b7dda4247973 | |
parent | d47bfec4706b927e62b160dba585cdbb647a886e (diff) | |
download | GT5-Unofficial-2a7811cd974957f675aa7e2cc48df76d78a4f509.tar.gz GT5-Unofficial-2a7811cd974957f675aa7e2cc48df76d78a4f509.tar.bz2 GT5-Unofficial-2a7811cd974957f675aa7e2cc48df76d78a4f509.zip |
Migrate dissolution tank & digester to processingLogic (#86)
* dissolution tank
* digester
* update
* address review
* make dissolution tank void and stop if the input ratio is wrong
* update
---------
Co-authored-by: Martin Robertz <dream-master@gmx.net>
-rw-r--r-- | dependencies.gradle | 6 | ||||
-rw-r--r-- | gradle.properties | 10 | ||||
-rw-r--r-- | settings.gradle | 2 | ||||
-rw-r--r-- | src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java | 60 | ||||
-rw-r--r-- | src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java | 60 | ||||
-rw-r--r-- | src/main/resources/assets/gtnhlanth/lang/en_US.lang | 2 |
6 files changed, 82 insertions, 58 deletions
diff --git a/dependencies.gradle b/dependencies.gradle index 7351ed9a14..7e0a2b4614 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,7 +1,7 @@ // Add your dependencies here dependencies { - api('com.github.GTNewHorizons:GT5-Unofficial:5.09.45.43:dev') - implementation('com.github.GTNewHorizons:GTplusplus:1.11.19:dev') - implementation('com.github.GTNewHorizons:GoodGenerator:0.8.4:dev') + api('com.github.GTNewHorizons:GT5-Unofficial:5.09.45.71:dev') + implementation('com.github.GTNewHorizons:GTplusplus:1.11.25:dev') + implementation('com.github.GTNewHorizons:GoodGenerator:0.8.10:dev') } diff --git a/gradle.properties b/gradle.properties index 6c222275c2..60451a92b0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ gtnh.settings.blowdryerTag = 0.2.0 # Human-readable mod name, available for mcmod.info population. -modName = GTNH: Lanthanides +modName = GTNH\: Lanthanides # Case-sensitive identifier string, available for mcmod.info population and used for automatic mixin JSON generation. # Conventionally lowercase. @@ -33,7 +33,7 @@ channel = stable mappingsVersion = 12 # Defines other MCP mappings for dependency deobfuscation. -remoteMappings = https://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/conf/ +remoteMappings = https\://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/conf/ # Select a default username for testing your mod. You can always override this per-run by running # `./gradlew runClient --username=AnotherPlayer`, or configuring this command in your IDE. @@ -61,6 +61,9 @@ gradleTokenModId = GRADLETOKEN_MODID # [DEPRECATED] Mod name replacement token. gradleTokenModName = GRADLETOKEN_MODNAME +# [DEPRECATED] Mod Group replacement token. +gradleTokenGroupName = GRADLETOKEN_GROUPNAME + # [DEPRECATED] # Multiple source files can be defined here by providing a comma-separated list: Class1.java,Class2.java,Class3.java # public static final String VERSION = "GRADLETOKEN_VERSION"; @@ -123,7 +126,7 @@ includeWellKnownRepositories = true usesMavenPublishing = true # Maven repository to publish the mod to. -# mavenPublishUrl = https://nexus.gtnewhorizons.com/repository/releases/ +# mavenPublishUrl = https\://nexus.gtnewhorizons.com/repository/releases/ # Publishing to Modrinth requires you to set the MODRINTH_TOKEN environment variable to your current Modrinth API token. # @@ -188,6 +191,5 @@ curseForgeRelations = # ideaCheckSpotlessOnBuild = true # Non-GTNH properties -gradleTokenGroupName = GRADLETOKEN_GROUPNAME systemProp.org.gradle.internal.http.connectionTimeout = 180000 systemProp.org.gradle.internal.http.socketTimeout = 180000 diff --git a/settings.gradle b/settings.gradle index e8946ada27..16a5b4ca7d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -17,7 +17,7 @@ pluginManagement { } plugins { - id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.8' + id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.14' } 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 |