diff options
author | Quetz4l <aizektro@gmail.com> | 2024-06-30 16:50:20 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-30 15:50:20 +0200 |
commit | 2504fe536ed2aab6edec22c1879288fd53ea137c (patch) | |
tree | 8a0bbca45d809695fe1bb6f466e9dcc979b8d51f /src/main/java/gtPlusPlus/xmod/gregtech/api | |
parent | a32ec899c5809ac3b071b2c091e05e1b3e5d16b4 (diff) | |
download | GT5-Unofficial-2504fe536ed2aab6edec22c1879288fd53ea137c.tar.gz GT5-Unofficial-2504fe536ed2aab6edec22c1879288fd53ea137c.tar.bz2 GT5-Unofficial-2504fe536ed2aab6edec22c1879288fd53ea137c.zip |
add mold check for solidifier hatch (#2679)
* add mold check for solidifier hatch
* code improvement for Solidifier hatch
---------
Co-authored-by: Zereff06 <Zereff06@gmail.com>
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/api')
-rw-r--r-- | src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Solidifier.java | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Solidifier.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Solidifier.java index 94c28877d8..2f8c704cad 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Solidifier.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Solidifier.java @@ -3,10 +3,14 @@ package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; import com.gtnewhorizons.modularui.common.widget.SlotWidget; +import gregtech.api.enums.ItemList; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -16,6 +20,17 @@ import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_Hatch_Solidifier extends GT_MetaTileEntity_Hatch_Input { static final int moldSlot = 2; + static final ItemStack[] solidifierMolds = { ItemList.Shape_Mold_Bottle.get(1), ItemList.Shape_Mold_Plate.get(1), + ItemList.Shape_Mold_Ingot.get(1), ItemList.Shape_Mold_Casing.get(1), ItemList.Shape_Mold_Gear.get(1), + ItemList.Shape_Mold_Gear_Small.get(1), ItemList.Shape_Mold_Credit.get(1), ItemList.Shape_Mold_Nugget.get(1), + ItemList.Shape_Mold_Block.get(1), ItemList.Shape_Mold_Ball.get(1), ItemList.Shape_Mold_Cylinder.get(1), + ItemList.Shape_Mold_Anvil.get(1), ItemList.Shape_Mold_Arrow.get(1), ItemList.Shape_Mold_Rod.get(1), + ItemList.Shape_Mold_Bolt.get(1), ItemList.Shape_Mold_Round.get(1), ItemList.Shape_Mold_Screw.get(1), + ItemList.Shape_Mold_Ring.get(1), ItemList.Shape_Mold_Rod_Long.get(1), ItemList.Shape_Mold_Rotor.get(1), + 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) }; public GT_MetaTileEntity_Hatch_Solidifier(int aID, String aName, String aNameRegional, int aTier) { super(aID, aName, aNameRegional, aTier); @@ -41,6 +56,34 @@ public class GT_MetaTileEntity_Hatch_Solidifier extends GT_MetaTileEntity_Hatch_ super(aName, getSlots(aTier), aTier, aDescription, aTextures); } + private class MoldSlot extends BaseSlot { + + public MoldSlot(IItemHandlerModifiable inventory, int index) { + super(inventory, index); + } + + @Override + public boolean isItemValidPhantom(ItemStack stack) { + return super.isItemValidPhantom(stack) && getBaseMetaTileEntity().isItemValidForSlot(getSlotIndex(), stack); + } + + } + + @Override + public boolean isItemValidForSlot(int aIndex, ItemStack aStack) { + if (aIndex == moldSlot && aStack != null) { + for (final ItemStack itemStack : solidifierMolds) { + if (GT_Utility.areStacksEqual(itemStack, aStack, true)) { + return true; + } + } + } else if (aIndex != moldSlot) { + return super.isItemValidForSlot(aIndex, aStack); + } + + return false; + } + @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_Hatch_Solidifier(mName, mTier, mDescriptionArray, mTextures); @@ -54,7 +97,8 @@ public class GT_MetaTileEntity_Hatch_Solidifier extends GT_MetaTileEntity_Hatch_ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { super.addUIWidgets(builder, buildContext); builder.widget( - new SlotWidget(inventoryHandler, moldSlot).setPos(125, 35) + new SlotWidget(new MoldSlot(inventoryHandler, moldSlot)).setPos(125, 35) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_MOLD) .setSize(18, 18)); } |