From 1a168f9f00cfc3827c78c9ad91c21130509875d5 Mon Sep 17 00:00:00 2001 From: Abdiel Kavash <19243993+AbdielKavash@users.noreply.github.com> Date: Thu, 7 Nov 2024 17:11:59 -0600 Subject: Add Tool Casting support to the Fluid Shaper multiblock. (#3454) --- .../machines/multi/MTEMultiSolidifier.java | 39 +++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'src/main/java/gregtech/common') diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java index 256e2885bb..9958f925a7 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java @@ -16,6 +16,8 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_CANNER_ import static gregtech.api.util.GTStructureUtility.buildHatchAdder; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; import java.util.List; import net.minecraft.entity.player.EntityPlayerMP; @@ -36,6 +38,7 @@ import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import bartworks.API.BorosilicateGlass; +import ggfab.api.GGFabRecipeMaps; import gregtech.api.GregTechAPI; import gregtech.api.enums.Textures; import gregtech.api.enums.VoltageIndex; @@ -182,7 +185,12 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase currentRecipeMap = RecipeMaps.fluidSolidifierRecipes; + + // Override is needed so that switching recipe maps does not stop recipe locking. + @Override + protected RecipeMap preProcess() { + lastRecipeMap = currentRecipeMap; + + if (maxParallelSupplier != null) { + maxParallel = maxParallelSupplier.get(); + } + return currentRecipeMap; + } + + @NotNull + @Override + public CheckRecipeResult process() { + currentRecipeMap = RecipeMaps.fluidSolidifierRecipes; + CheckRecipeResult result = super.process(); + if (result.wasSuccessful()) return result; + + currentRecipeMap = GGFabRecipeMaps.toolCastRecipes; + return super.process(); + } + @NotNull @Override protected CheckRecipeResult validateRecipe(@NotNull GTRecipe recipe) { @@ -310,6 +342,11 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase> getAvailableRecipeMaps() { + return Arrays.asList(RecipeMaps.fluidSolidifierRecipes, GGFabRecipeMaps.toolCastRecipes); + } + @Override public RecipeMap getRecipeMap() { return RecipeMaps.fluidSolidifierRecipes; -- cgit