aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java30
1 files changed, 22 insertions, 8 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 e29144f560..c29cc2c33a 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
@@ -1,6 +1,5 @@
package gregtech.api.metatileentity.implementations;
-import com.mojang.authlib.GameProfile;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enums.ItemList;
@@ -25,8 +24,6 @@ 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 net.minecraftforge.common.util.FakePlayer;
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE;
@@ -37,6 +34,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_DUCTTAPE;
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_MAINTENANCE;
public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch {
+ private static ItemStack[] sAutoMaintenanceInputs;
public boolean mWrench = false, mScrewdriver = false, mSoftHammer = false, mHardHammer = false, mSolderingTool = false, mCrowbar = false, mAuto;
public GT_MetaTileEntity_Hatch_Maintenance(int aID, String aName, String aNameRegional, int aTier) {
@@ -59,6 +57,17 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch
mAuto = aAuto;
}
+ private static ItemStack[] getAutoMaintenanceInputs() {
+ if (sAutoMaintenanceInputs == null)
+ sAutoMaintenanceInputs = new ItemStack[]{
+ ItemList.Duct_Tape.get(4),
+ GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Lubricant, 2),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4),
+ GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2)
+ };
+ return sAutoMaintenanceInputs;
+ }
+
@Override
public String[] getDescription() {
if (mAuto) {
@@ -178,10 +187,7 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch
}
public boolean isRecipeInputEqual(boolean aDecreaseStacksizeBySuccess) {
- ItemStack[] mInputs= {ItemList.Duct_Tape.get(4),
- GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Lubricant, 2),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4),
- GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2)};
+ ItemStack[] mInputs= getAutoMaintenanceInputs();
int amt;
@@ -279,6 +285,14 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch
@Override
public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
- return mAuto && GT_Mod.gregtechproxy.mAMHInteraction;
+ if (mAuto && GT_Mod.gregtechproxy.mAMHInteraction) {
+ for (int i = 0; i < getSizeInventory(); i++)
+ if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(false, aStack), GT_OreDictUnificator.get(false, getStackInSlot(i))))
+ return i == aIndex;
+ for (ItemStack tInput : getAutoMaintenanceInputs())
+ if (GT_Utility.areUnificationsEqual(tInput, aStack, true) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(false, aStack), tInput, true))
+ return true;
+ }
+ return false;
}
}