diff options
author | BlueWeabo <ilia.iliev2005@gmail.com> | 2023-02-08 07:07:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-07 21:07:27 -0800 |
commit | 2556dfb92a7c7c73a72caa7d72129cef47b017ea (patch) | |
tree | fd1a90d04e5b64ca5eb6a7434bdd5e0f6c04e952 /src/main/java/gregtech/api/multitileentity/machine | |
parent | 6ea8fe534145b64866e4da79816b25262174d16f (diff) | |
download | GT5-Unofficial-2556dfb92a7c7c73a72caa7d72129cef47b017ea.tar.gz GT5-Unofficial-2556dfb92a7c7c73a72caa7d72129cef47b017ea.tar.bz2 GT5-Unofficial-2556dfb92a7c7c73a72caa7d72129cef47b017ea.zip |
Mte inventory block (#1692)
MTE Inventory Upgrade
* inventories saved to nbt in controller
* bump up ModularUI to fix labels
* inventory renaming
* fix inventories not syncing
* more nbt saving and loading
* unregister inventory on block break
* example of a block being made from the same class
* clear UpgradeCasing list every structure check
* fix inventory halving to 0
* sync inventory name for upgrade block
* switch to its own method of sending client data
---------
Co-authored-by: Jason Mitchell <mitchej+github@gmail.com>
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)); } } |