From a41b858395633ea1fcec4d2faac4d0fe701ab6ec Mon Sep 17 00:00:00 2001 From: Alexandre Tardif Date: Wed, 27 Jul 2022 23:26:57 -0400 Subject: Prevent internal ender tank to shift thier fluid by saving them by name instead of by ID --- .../mechanics/enderStorage/EnderFluidContainer.java | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java b/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java index 1a5ad6a69c..7db66225ac 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java +++ b/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java @@ -1,5 +1,6 @@ package com.github.technus.tectech.mechanics.enderStorage; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; @@ -10,27 +11,18 @@ import java.io.Serializable; public class EnderFluidContainer implements IFluidHandler, Serializable { private static final int CAPACITY = 64000; - private int fluidID = -1; - private int fluidQuantity = 0; + private NBTTagCompound fluid; public EnderFluidContainer() { } private FluidStack getFluidStack() { - FluidStack fluidStack = null; - if (fluidID >= 0) { - fluidStack = new FluidStack(fluidID, fluidQuantity); - } - return fluidStack; + return FluidStack.loadFluidStackFromNBT(fluid); } private void setFluidStack(FluidStack fluidStack) { - if (fluidStack != null && fluidStack.amount != 0) { - fluidID = fluidStack.getFluidID(); - fluidQuantity = fluidStack.amount; - } else { - fluidID = -1; - fluidQuantity = 0; + if (fluidStack != null) { + fluid = fluidStack.writeToNBT(new NBTTagCompound()); } } -- cgit From 1f8999879f84d7dfa152e7072b8df7ef59673ac0 Mon Sep 17 00:00:00 2001 From: Alexandre Tardif Date: Wed, 27 Jul 2022 23:52:29 -0400 Subject: Fix when FluidStack is null --- .../tectech/mechanics/enderStorage/EnderFluidContainer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java b/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java index 7db66225ac..a1b14cd062 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java +++ b/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java @@ -17,12 +17,18 @@ public class EnderFluidContainer implements IFluidHandler, Serializable { } private FluidStack getFluidStack() { - return FluidStack.loadFluidStackFromNBT(fluid); + FluidStack fluidStack = null; + if (fluid != null) { + fluidStack = FluidStack.loadFluidStackFromNBT(fluid); + } + return fluidStack; } private void setFluidStack(FluidStack fluidStack) { if (fluidStack != null) { fluid = fluidStack.writeToNBT(new NBTTagCompound()); + } else { + fluid = null; } } -- cgit From a48a61b298e2a45d1afa0d513ae348ee054adb21 Mon Sep 17 00:00:00 2001 From: Alexandre Tardif Date: Sun, 31 Jul 2022 09:30:31 -0400 Subject: Transform old stored fluids --- .../tectech/mechanics/enderStorage/EnderFluidContainer.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java b/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java index a1b14cd062..ca1d872ed1 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java +++ b/src/main/java/com/github/technus/tectech/mechanics/enderStorage/EnderFluidContainer.java @@ -11,6 +11,10 @@ import java.io.Serializable; public class EnderFluidContainer implements IFluidHandler, Serializable { private static final int CAPACITY = 64000; + @Deprecated() + private int fluidID = -1; + @Deprecated() + private int fluidQuantity = 0; private NBTTagCompound fluid; public EnderFluidContainer() { @@ -18,8 +22,13 @@ public class EnderFluidContainer implements IFluidHandler, Serializable { private FluidStack getFluidStack() { FluidStack fluidStack = null; + if (fluidID >= 0) { + fluid = new FluidStack(fluidID, fluidQuantity).writeToNBT(new NBTTagCompound()); + fluidID = -1; + fluidQuantity = 0; + } if (fluid != null) { - fluidStack = FluidStack.loadFluidStackFromNBT(fluid); + fluidStack = FluidStack.loadFluidStackFromNBT(fluid); } return fluidStack; } -- cgit