diff options
author | Martin Robertz <dream-master@gmx.net> | 2021-11-12 22:59:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-12 22:59:23 +0100 |
commit | cdf93f39cfa317ff971e697f21bba313bd250c04 (patch) | |
tree | 7727bf1186d1b15d66fb289f4b3e0d311ef67993 /src/main/java | |
parent | dd327a0df3d763730eab8c1e0f3f0d5a61e21ac7 (diff) | |
parent | d4dedcdfd2eda01084a2ad53ebe8d58f524762d9 (diff) | |
download | GT5-Unofficial-cdf93f39cfa317ff971e697f21bba313bd250c04.tar.gz GT5-Unofficial-cdf93f39cfa317ff971e697f21bba313bd250c04.tar.bz2 GT5-Unofficial-cdf93f39cfa317ff971e697f21bba313bd250c04.zip |
Merge pull request #726 from GTNewHorizons/draknyte1-patch-1
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java | 36 | ||||
-rw-r--r-- | src/main/java/gregtech/api/util/GT_ModHandler.java | 2 |
2 files changed, 31 insertions, 7 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java index 9067f5bb7b..88506d928e 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java @@ -16,12 +16,16 @@ import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import ic2.core.IHasGui; +import ic2.core.Ic2Items; +import ic2.core.item.ItemToolbox; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import java.util.HashSet; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE_GLOW; @@ -218,17 +222,37 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch public void onToolClick(ItemStack aStack, EntityLivingBase aPlayer) { if (aStack == null || aPlayer == null) return; - if (GT_Utility.isStackInList(aStack, GregTech_API.sWrenchList) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) + + // Allow IC2 Toolbox with tools to function for maint issues. + if (aStack.getItem() instanceof ItemToolbox && aPlayer instanceof EntityPlayer) { + EntityPlayer aPlayerEntity = (EntityPlayer) aPlayer; + ItemToolbox aToolbox = (ItemToolbox) aStack.getItem(); + IHasGui aToolboxGUI = aToolbox.getInventory(aPlayerEntity, aStack); + HashSet<ItemStack> aToolboxContents = new HashSet<ItemStack>(); + for (int i=0; i<aToolboxGUI.getSizeInventory(); i++) { + ItemStack aTemp = aToolboxGUI.getStackInSlot(i); + if (aTemp != null) { + aToolboxContents.add(aTemp); + } + } + if (!aToolboxContents.isEmpty()) { + for (ItemStack aTool : aToolboxContents) { + onToolClick(aTool, aPlayer); + } + } + } + + if (GT_Utility.isStackInList(aStack, GregTech_API.sWrenchList) && !mWrench && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) mWrench = true; - if (GT_Utility.isStackInList(aStack, GregTech_API.sScrewdriverList) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) + if (GT_Utility.isStackInList(aStack, GregTech_API.sScrewdriverList) && !mScrewdriver && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) mScrewdriver = true; - if (GT_Utility.isStackInList(aStack, GregTech_API.sSoftHammerList) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) + if (GT_Utility.isStackInList(aStack, GregTech_API.sSoftHammerList) && !mSoftHammer && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) mSoftHammer = true; - if (GT_Utility.isStackInList(aStack, GregTech_API.sHardHammerList) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) + if (GT_Utility.isStackInList(aStack, GregTech_API.sHardHammerList) && !mHardHammer && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) mHardHammer = true; - if (GT_Utility.isStackInList(aStack, GregTech_API.sCrowbarList) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) + if (GT_Utility.isStackInList(aStack, GregTech_API.sCrowbarList) && !mCrowbar && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) mCrowbar = true; - if (GT_ModHandler.useSolderingIron(aStack, aPlayer)) mSolderingTool = true; + if (!mSolderingTool && GT_ModHandler.useSolderingIron(aStack, aPlayer)) mSolderingTool = true; if (GT_OreDictUnificator.isItemStackInstanceOf(aStack, "craftingDuctTape")) { mWrench = mScrewdriver = mSoftHammer = mHardHammer = mCrowbar = mSolderingTool = true; getBaseMetaTileEntity().setActive(false); diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java index a910723069..810a204c40 100644 --- a/src/main/java/gregtech/api/util/GT_ModHandler.java +++ b/src/main/java/gregtech/api/util/GT_ModHandler.java @@ -91,7 +91,7 @@ public class GT_ModHandler { public static volatile int VERSION = 509; public static Collection<String> sNativeRecipeClasses = new HashSet<>(), sSpecialRecipeClasses = new HashSet<>(); public static GT_HashSet<GT_ItemStack> sNonReplaceableItems = new GT_HashSet<>(); - public static Object sBoxableWrapper = GT_Utility.callConstructor("gregtechmod.api.util.GT_IBoxableWrapper", 0, null, false); + public static Object sBoxableWrapper = new GT_IBoxableWrapper(); private static final Map<IRecipeInput, RecipeOutput> sExtractorRecipes = new HashMap<>(); private static final Map<IRecipeInput, RecipeOutput> sMaceratorRecipes = new HashMap<>(); private static final Map<IRecipeInput, RecipeOutput> sCompressorRecipes = new HashMap<>(); |