diff options
Diffstat (limited to 'src/main/java/gregtech/api/multitileentity/machine')
-rw-r--r-- | src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java b/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java index b3605d579b..3739854893 100644 --- a/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java +++ b/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java @@ -29,6 +29,8 @@ import gregtech.api.util.GT_Utility; public class MultiTileBasicMachine extends BaseTickableMultiTileEntity { + protected static final IItemHandlerModifiable EMPTY_INVENTORY = new ItemStackHandler(0); + private static final String TEXTURE_LOCATION = "multitileentity/machines/"; public IIconContainer[] mTexturesInactive = emptyIconContainerArray; public IIconContainer[] mTexturesActive = emptyIconContainerArray; @@ -39,8 +41,8 @@ public class MultiTileBasicMachine extends BaseTickableMultiTileEntity { protected FluidTankGT[] mTanksInput = GT_Values.emptyFluidTankGT, mTanksOutput = GT_Values.emptyFluidTankGT; protected FluidStack[] mOutputFluids = GT_Values.emptyFluidStack; - protected final IItemHandlerModifiable mInputInventory = new ItemStackHandler(17); - protected final IItemHandlerModifiable mOutputInventory = new ItemStackHandler(15); + protected IItemHandlerModifiable mInputInventory = EMPTY_INVENTORY; + protected IItemHandlerModifiable mOutputInventory = EMPTY_INVENTORY; protected boolean mOutputInventoryChanged = false; @Override @@ -99,8 +101,10 @@ public class MultiTileBasicMachine extends BaseTickableMultiTileEntity { if (aNBT.hasKey(NBT.ACTIVE)) mActive = aNBT.getBoolean(NBT.ACTIVE); /* Inventories */ - loadInventory(aNBT, NBT.INV_INPUT_SIZE, NBT.INV_INPUT_LIST); - loadInventory(aNBT, NBT.INV_OUTPUT_SIZE, NBT.INV_OUTPUT_LIST); + mInputInventory = new ItemStackHandler(Math.max(aNBT.getInteger(NBT.INV_INPUT_SIZE), 0)); + mOutputInventory = new ItemStackHandler(Math.max(aNBT.getInteger(NBT.INV_OUTPUT_SIZE), 0)); + loadInventory(aNBT, mInputInventory, NBT.INV_INPUT_LIST); + loadInventory(aNBT, mOutputInventory, NBT.INV_OUTPUT_LIST); /* Tanks */ long tCapacity = 1000; @@ -120,15 +124,12 @@ public class MultiTileBasicMachine extends BaseTickableMultiTileEntity { mOutputFluids[i] = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag(NBT.FLUID_OUT + "." + i)); } - protected void loadInventory(NBTTagCompound aNBT, String sizeTag, String invListTag) { - final IItemHandlerModifiable inv = mInputInventory; - if (inv != null) { - final NBTTagList tList = aNBT.getTagList(invListTag, 10); - for (int i = 0; i < tList.tagCount(); i++) { - final NBTTagCompound tNBT = tList.getCompoundTagAt(i); - final int tSlot = tNBT.getShort("s"); - if (tSlot >= 0 && tSlot < inv.getSlots()) inv.setStackInSlot(tSlot, GT_Utility.loadItem(tNBT)); - } + protected void loadInventory(NBTTagCompound aNBT, IItemHandlerModifiable inv, String invListTag) { + final NBTTagList tList = aNBT.getTagList(invListTag, 10); + for (int i = 0; i < tList.tagCount(); i++) { + final NBTTagCompound tNBT = tList.getCompoundTagAt(i); + final int tSlot = tNBT.getShort("s"); + if (tSlot >= 0 && tSlot < inv.getSlots()) inv.setStackInSlot(tSlot, GT_Utility.loadItem(tNBT)); } } |