From c2f31485f0db4f10f173710cf9f8c8f8605b5665 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 3 Feb 2016 19:51:51 +0100 Subject: [PATCH] support multiple inventories in InventoryUtils --- .../storagecraft/tile/TileConstructor.java | 4 ++-- .../java/storagecraft/tile/TileDetector.java | 4 ++-- src/main/java/storagecraft/tile/TileDrive.java | 4 ++-- .../java/storagecraft/tile/TileExporter.java | 4 ++-- .../storagecraft/tile/TileExternalStorage.java | 4 ++-- src/main/java/storagecraft/tile/TileGrid.java | 18 +++++++++--------- .../java/storagecraft/tile/TileImporter.java | 4 ++-- .../java/storagecraft/tile/TileSolderer.java | 4 ++-- .../java/storagecraft/tile/TileStorage.java | 4 ++-- .../tile/TileWirelessTransmitter.java | 4 ++-- .../java/storagecraft/util/InventoryUtils.java | 16 ++++++++-------- 11 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/main/java/storagecraft/tile/TileConstructor.java b/src/main/java/storagecraft/tile/TileConstructor.java index ba6a805e9..4b94a124b 100644 --- a/src/main/java/storagecraft/tile/TileConstructor.java +++ b/src/main/java/storagecraft/tile/TileConstructor.java @@ -67,7 +67,7 @@ public class TileConstructor extends TileMachine implements ICompareSetting compare = nbt.getInteger(NBT_COMPARE); } - InventoryUtils.restoreInventory(inventory, nbt); + InventoryUtils.restoreInventory(inventory, 0, nbt); } @Override @@ -77,7 +77,7 @@ public class TileConstructor extends TileMachine implements ICompareSetting nbt.setInteger(NBT_COMPARE, compare); - InventoryUtils.saveInventory(inventory, nbt); + InventoryUtils.saveInventory(inventory, 0, nbt); } @Override diff --git a/src/main/java/storagecraft/tile/TileDetector.java b/src/main/java/storagecraft/tile/TileDetector.java index bf3e8ec86..a4439dc79 100644 --- a/src/main/java/storagecraft/tile/TileDetector.java +++ b/src/main/java/storagecraft/tile/TileDetector.java @@ -174,7 +174,7 @@ public class TileDetector extends TileMachine implements ICompareSetting amount = nbt.getInteger(NBT_AMOUNT); } - InventoryUtils.restoreInventory(inventory, nbt); + InventoryUtils.restoreInventory(inventory, 0, nbt); } @Override @@ -186,7 +186,7 @@ public class TileDetector extends TileMachine implements ICompareSetting nbt.setInteger(NBT_MODE, mode); nbt.setInteger(NBT_AMOUNT, amount); - InventoryUtils.saveInventory(inventory, nbt); + InventoryUtils.saveInventory(inventory, 0, nbt); } @Override diff --git a/src/main/java/storagecraft/tile/TileDrive.java b/src/main/java/storagecraft/tile/TileDrive.java index 0cb1a2ba2..ab0afca6c 100644 --- a/src/main/java/storagecraft/tile/TileDrive.java +++ b/src/main/java/storagecraft/tile/TileDrive.java @@ -59,7 +59,7 @@ public class TileDrive extends TileMachine implements IInventory, IStorageProvid { super.readFromNBT(nbt); - InventoryUtils.restoreInventory(this, nbt); + InventoryUtils.restoreInventory(this, 0, nbt); if (nbt.hasKey(NBT_PRIORITY)) { @@ -72,7 +72,7 @@ public class TileDrive extends TileMachine implements IInventory, IStorageProvid { super.writeToNBT(nbt); - InventoryUtils.saveInventory(this, nbt); + InventoryUtils.saveInventory(this, 0, nbt); nbt.setInteger(NBT_PRIORITY, priority); } diff --git a/src/main/java/storagecraft/tile/TileExporter.java b/src/main/java/storagecraft/tile/TileExporter.java index 06880fbc9..60824dbd6 100644 --- a/src/main/java/storagecraft/tile/TileExporter.java +++ b/src/main/java/storagecraft/tile/TileExporter.java @@ -111,7 +111,7 @@ public class TileExporter extends TileMachine implements ICompareSetting compare = nbt.getInteger(NBT_COMPARE); } - InventoryUtils.restoreInventory(inventory, nbt); + InventoryUtils.restoreInventory(inventory, 0, nbt); } @Override @@ -121,7 +121,7 @@ public class TileExporter extends TileMachine implements ICompareSetting nbt.setInteger(NBT_COMPARE, compare); - InventoryUtils.saveInventory(inventory, nbt); + InventoryUtils.saveInventory(inventory, 0, nbt); } @Override diff --git a/src/main/java/storagecraft/tile/TileExternalStorage.java b/src/main/java/storagecraft/tile/TileExternalStorage.java index dc916de6d..2719d9fc0 100644 --- a/src/main/java/storagecraft/tile/TileExternalStorage.java +++ b/src/main/java/storagecraft/tile/TileExternalStorage.java @@ -169,7 +169,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider { super.readFromNBT(nbt); - InventoryUtils.restoreInventory(inventory, nbt); + InventoryUtils.restoreInventory(inventory, 0, nbt); if (nbt.hasKey(NBT_PRIORITY)) { @@ -192,7 +192,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider { super.writeToNBT(nbt); - InventoryUtils.saveInventory(inventory, nbt); + InventoryUtils.saveInventory(inventory, 0, nbt); nbt.setInteger(NBT_PRIORITY, priority); nbt.setInteger(NBT_COMPARE, compare); diff --git a/src/main/java/storagecraft/tile/TileGrid.java b/src/main/java/storagecraft/tile/TileGrid.java index 611026f41..07d213bc5 100644 --- a/src/main/java/storagecraft/tile/TileGrid.java +++ b/src/main/java/storagecraft/tile/TileGrid.java @@ -60,7 +60,7 @@ public class TileGrid extends TileMachine } }; private InventoryCrafting patternCraftingInventory = new InventoryCrafting(patternCraftingContainer, 3, 3); - private InventorySimple patternCraftingResultInventory = new InventorySimple("pattern_crafting_result", 1, this); + private InventorySimple patternCraftingResultInventory = new InventorySimple("pattern_crafting_result", 1); private InventorySimple patternInventory = new InventorySimple("pattern", 2, this); private int sortingDirection = 0; @@ -181,10 +181,10 @@ public class TileGrid extends TileMachine { super.readFromNBT(nbt); - InventoryUtils.restoreInventory(craftingInventory, nbt); - InventoryUtils.restoreInventory(patternCraftingInventory, nbt); - InventoryUtils.restoreInventory(patternCraftingResultInventory, nbt); - InventoryUtils.restoreInventory(patternInventory, nbt); + InventoryUtils.restoreInventory(craftingInventory, 0, nbt); + + InventoryUtils.restoreInventory(patternCraftingInventory, 1, nbt); + InventoryUtils.restoreInventory(patternInventory, 2, nbt); if (nbt.hasKey(NBT_SORTING_DIRECTION)) { @@ -202,10 +202,10 @@ public class TileGrid extends TileMachine { super.writeToNBT(nbt); - InventoryUtils.saveInventory(craftingInventory, nbt); - InventoryUtils.saveInventory(patternCraftingInventory, nbt); - InventoryUtils.saveInventory(patternCraftingResultInventory, nbt); - InventoryUtils.saveInventory(patternInventory, nbt); + InventoryUtils.saveInventory(craftingInventory, 0, nbt); + + InventoryUtils.saveInventory(patternCraftingInventory, 1, nbt); + InventoryUtils.saveInventory(patternInventory, 2, nbt); nbt.setInteger(NBT_SORTING_DIRECTION, sortingDirection); nbt.setInteger(NBT_SORTING_TYPE, sortingType); diff --git a/src/main/java/storagecraft/tile/TileImporter.java b/src/main/java/storagecraft/tile/TileImporter.java index d21df34b7..54a8eb3ae 100644 --- a/src/main/java/storagecraft/tile/TileImporter.java +++ b/src/main/java/storagecraft/tile/TileImporter.java @@ -175,7 +175,7 @@ public class TileImporter extends TileMachine implements ICompareSetting, IModeS mode = nbt.getInteger(NBT_MODE); } - InventoryUtils.restoreInventory(inventory, nbt); + InventoryUtils.restoreInventory(inventory, 0, nbt); } @Override @@ -186,7 +186,7 @@ public class TileImporter extends TileMachine implements ICompareSetting, IModeS nbt.setInteger(NBT_COMPARE, compare); nbt.setInteger(NBT_MODE, mode); - InventoryUtils.saveInventory(inventory, nbt); + InventoryUtils.saveInventory(inventory, 0, nbt); } @Override diff --git a/src/main/java/storagecraft/tile/TileSolderer.java b/src/main/java/storagecraft/tile/TileSolderer.java index ec9478e39..c81c1cee8 100644 --- a/src/main/java/storagecraft/tile/TileSolderer.java +++ b/src/main/java/storagecraft/tile/TileSolderer.java @@ -95,7 +95,7 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven { super.readFromNBT(nbt); - InventoryUtils.restoreInventory(this, nbt); + InventoryUtils.restoreInventory(this, 0, nbt); recipe = SoldererRegistry.getRecipe(inventory); @@ -115,7 +115,7 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven { super.writeToNBT(nbt); - InventoryUtils.saveInventory(this, nbt); + InventoryUtils.saveInventory(this, 0, nbt); nbt.setBoolean(NBT_WORKING, working); nbt.setInteger(NBT_PROGRESS, progress); diff --git a/src/main/java/storagecraft/tile/TileStorage.java b/src/main/java/storagecraft/tile/TileStorage.java index c48f91923..3c3dd7080 100644 --- a/src/main/java/storagecraft/tile/TileStorage.java +++ b/src/main/java/storagecraft/tile/TileStorage.java @@ -62,7 +62,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora { super.readFromNBT(nbt); - InventoryUtils.restoreInventory(inventory, nbt); + InventoryUtils.restoreInventory(inventory, 0, nbt); if (nbt.hasKey(NBT_STORAGE)) { @@ -90,7 +90,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora { super.writeToNBT(nbt); - InventoryUtils.saveInventory(inventory, nbt); + InventoryUtils.saveInventory(inventory, 0, nbt); nbt.setTag(NBT_STORAGE, tag); nbt.setInteger(NBT_PRIORITY, priority); diff --git a/src/main/java/storagecraft/tile/TileWirelessTransmitter.java b/src/main/java/storagecraft/tile/TileWirelessTransmitter.java index 8092fe499..e201ce940 100644 --- a/src/main/java/storagecraft/tile/TileWirelessTransmitter.java +++ b/src/main/java/storagecraft/tile/TileWirelessTransmitter.java @@ -118,7 +118,7 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory { super.readFromNBT(nbt); - InventoryUtils.restoreInventory(this, nbt); + InventoryUtils.restoreInventory(this, 0, nbt); if (nbt.hasKey(NBT_WORKING)) { @@ -136,7 +136,7 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory { super.writeToNBT(nbt); - InventoryUtils.saveInventory(this, nbt); + InventoryUtils.saveInventory(this, 0, nbt); nbt.setBoolean(NBT_WORKING, working); nbt.setInteger(NBT_PROGRESS, progress); diff --git a/src/main/java/storagecraft/util/InventoryUtils.java b/src/main/java/storagecraft/util/InventoryUtils.java index 63a01f4e7..fa5245c48 100644 --- a/src/main/java/storagecraft/util/InventoryUtils.java +++ b/src/main/java/storagecraft/util/InventoryUtils.java @@ -10,15 +10,14 @@ import net.minecraftforge.common.util.Constants; public class InventoryUtils { - public static final String NBT_INVENTORY = "Inventory"; + public static final String NBT_INVENTORY = "Inventory_%d"; public static final String NBT_SLOT = "Slot"; public static final int COMPARE_DAMAGE = 1; public static final int COMPARE_NBT = 2; public static final int COMPARE_QUANTITY = 4; - // @TODO: Save multiple inventories - public static void saveInventory(IInventory inventory, NBTTagCompound nbt) + public static void saveInventory(IInventory inventory, int id, NBTTagCompound nbt) { NBTTagList tagList = new NBTTagList(); @@ -36,15 +35,16 @@ public class InventoryUtils } } - nbt.setTag(NBT_INVENTORY, tagList); + nbt.setTag(String.format(NBT_INVENTORY, id), tagList); } - // @TODO: Restore multiple inventories - public static void restoreInventory(IInventory inventory, NBTTagCompound nbt) + public static void restoreInventory(IInventory inventory, int id, NBTTagCompound nbt) { - if (nbt.hasKey(NBT_INVENTORY)) + String name = String.format(NBT_INVENTORY, id); + + if (nbt.hasKey(name)) { - NBTTagList tagList = nbt.getTagList(NBT_INVENTORY, Constants.NBT.TAG_COMPOUND); + NBTTagList tagList = nbt.getTagList(name, Constants.NBT.TAG_COMPOUND); for (int i = 0; i < tagList.tagCount(); i++) {