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 +++++++++++++++++++++- .../implementations/MTEHatchSolidifier.java | 11 ++++-- 2 files changed, 47 insertions(+), 3 deletions(-) (limited to 'src/main/java') 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; diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchSolidifier.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchSolidifier.java index c714f8a5ac..941bec9698 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchSolidifier.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchSolidifier.java @@ -9,6 +9,7 @@ import com.gtnewhorizons.modularui.api.screen.UIBuildContext; import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; import com.gtnewhorizons.modularui.common.widget.SlotWidget; +import ggfab.GGItemList; import gregtech.api.enums.ItemList; import gregtech.api.gui.modularui.GTUITextures; import gregtech.api.interfaces.ITexture; @@ -30,7 +31,12 @@ public class MTEHatchSolidifier extends MTEHatchInput { ItemList.Shape_Mold_Turbine_Blade.get(1), ItemList.Shape_Mold_Pipe_Tiny.get(1), ItemList.Shape_Mold_Pipe_Small.get(1), ItemList.Shape_Mold_Pipe_Medium.get(1), ItemList.Shape_Mold_Pipe_Large.get(1), ItemList.Shape_Mold_Pipe_Huge.get(1), - ItemList.Shape_Mold_ToolHeadDrill.get(1) }; + ItemList.Shape_Mold_ToolHeadDrill.get(1), + + GGItemList.Shape_One_Use_craftingToolFile.get(1), GGItemList.Shape_One_Use_craftingToolWrench.get(1), + GGItemList.Shape_One_Use_craftingToolCrowbar.get(1), GGItemList.Shape_One_Use_craftingToolWireCutter.get(1), + GGItemList.Shape_One_Use_craftingToolHardHammer.get(1), GGItemList.Shape_One_Use_craftingToolSoftHammer.get(1), + GGItemList.Shape_One_Use_craftingToolScrewdriver.get(1), GGItemList.Shape_One_Use_craftingToolSaw.get(1) }; public MTEHatchSolidifier(int aID, String aName, String aNameRegional, int aTier) { super(aID, aName, aNameRegional, aTier); @@ -94,7 +100,8 @@ public class MTEHatchSolidifier extends MTEHatchInput { public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { super.addUIWidgets(builder, buildContext); builder.widget( - new SlotWidget(new MoldSlot(inventoryHandler, moldSlot)).setPos(125, 35) + new SlotWidget(new MoldSlot(inventoryHandler, moldSlot)).setShiftClickPriority(-1) + .setPos(125, 35) .setBackground(getGUITextureSet().getItemSlot(), GTUITextures.OVERLAY_SLOT_MOLD) .setSize(18, 18)); } -- cgit