diff options
Diffstat (limited to 'src/main/java/kekztech/MultiFluidHandler.java')
-rw-r--r-- | src/main/java/kekztech/MultiFluidHandler.java | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java index 2565ede1dc..f131cfbb0d 100644 --- a/src/main/java/kekztech/MultiFluidHandler.java +++ b/src/main/java/kekztech/MultiFluidHandler.java @@ -12,10 +12,14 @@ public class MultiFluidHandler { public static final int MAX_DISTINCT_FLUIDS = 25; private final List<FluidStack> fluids = new ArrayList<>(MAX_DISTINCT_FLUIDS); - private final int capacityPerFluid; + private int capacityPerFluid; private boolean locked = true; + public MultiFluidHandler() { + + } + public MultiFluidHandler(int capacityPerFluid) { this.capacityPerFluid = capacityPerFluid; } @@ -52,15 +56,35 @@ public class MultiFluidHandler { ? fluids.get(slot) : null; } - public NBTTagCompound getAsNBTTag(NBTTagCompound nbt) { + public NBTTagCompound saveNBTData(NBTTagCompound nbt) { + System.out.println("Saving a multi hatch!"); nbt = (nbt == null) ? new NBTTagCompound() : nbt; + + nbt.setInteger("capacityPerFluid", getCapacity()); int c = 0; for(FluidStack f : fluids) { nbt.setTag("" + c, f.writeToNBT(new NBTTagCompound())); + c++; } return nbt; } + public void loadNBTData(NBTTagCompound nbt) { + nbt = (nbt == null) ? new NBTTagCompound() : nbt; + + capacityPerFluid = nbt.getInteger("capacityPerFluid"); + + fluids.clear(); + final NBTTagCompound fluidsTag = (NBTTagCompound) nbt.getTag("fluids"); + for(int i = 0; i < MultiFluidHandler.MAX_DISTINCT_FLUIDS; i++) { + final NBTTagCompound fnbt = (NBTTagCompound) fluidsTag.getTag("" + i); + if(fnbt == null) { + break; + } + fluids.add(FluidStack.loadFluidStackFromNBT(fnbt)); + } + } + public ArrayList<String> getInfoData() { final ArrayList<String> lines = new ArrayList<>(fluids.size()); lines.add(EnumChatFormatting.YELLOW + "Stored Fluids:" + EnumChatFormatting.RESET); |