aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/multitileentity/machine
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/multitileentity/machine')
-rw-r--r--src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java27
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));
}
}