aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdiel Kavash <19243993+AbdielKavash@users.noreply.github.com>2024-11-07 17:11:59 -0600
committerGitHub <noreply@github.com>2024-11-07 23:11:59 +0000
commit1a168f9f00cfc3827c78c9ad91c21130509875d5 (patch)
tree9038b02fd609b69c179f593230af3bbdf6ccb9b3
parentd42811f069353e51938ca6481da3f93d61aef652 (diff)
downloadGT5-Unofficial-1a168f9f00cfc3827c78c9ad91c21130509875d5.tar.gz
GT5-Unofficial-1a168f9f00cfc3827c78c9ad91c21130509875d5.tar.bz2
GT5-Unofficial-1a168f9f00cfc3827c78c9ad91c21130509875d5.zip
Add Tool Casting support to the Fluid Shaper multiblock. (#3454)
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java39
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchSolidifier.java11
2 files changed, 47 insertions, 3 deletions
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<MTEMultiS
@Override
protected MultiblockTooltipBuilder createTooltip() {
MultiblockTooltipBuilder tt = new MultiblockTooltipBuilder();
- tt.addMachineType("Fluid Solidifier")
+ tt.addMachineType("Fluid Solidifier, Tool Casting Machine")
+ .addInfo(
+ "Can use " + EnumChatFormatting.YELLOW
+ + "Solidifier Hatches"
+ + EnumChatFormatting.GRAY
+ + " to hold different molds")
.addInfo("Speeds up to a maximum of 200% faster than singleblock machines while running")
.addInfo("Decays at double the Rate that it Speeds up at")
.addInfo("Only uses 80% of the EU/t normally required")
@@ -275,6 +283,30 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase<MTEMultiS
protected ProcessingLogic createProcessingLogic() {
return new ProcessingLogic() {
+ RecipeMap<?> 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) {
@@ -311,6 +343,11 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase<MTEMultiS
}
@Override
+ public @NotNull Collection<RecipeMap<?>> 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));
}