aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/tectech/mechanics/enderStorage/EnderLinkTank.java
diff options
context:
space:
mode:
authorRecursivePineapple <recursive_pineapple@proton.me>2024-10-17 06:24:12 -0400
committerGitHub <noreply@github.com>2024-10-17 10:24:12 +0000
commit7ad32098ac5d941f32fff792fc9a11af1097b310 (patch)
tree203faa4fb671f0d072d7a62e57de3ce5f6ed4e5a /src/main/java/tectech/mechanics/enderStorage/EnderLinkTank.java
parent55a4816242fc945ae367360bb4002cbb4294816d (diff)
downloadGT5-Unofficial-7ad32098ac5d941f32fff792fc9a11af1097b310.tar.gz
GT5-Unofficial-7ad32098ac5d941f32fff792fc9a11af1097b310.tar.bz2
GT5-Unofficial-7ad32098ac5d941f32fff792fc9a11af1097b310.zip
Fix several issues with ender tank covers (#3377)
Co-authored-by: Martin Robertz <dream-master@gmx.net> Co-authored-by: Ethryan <3237986+Ethryan@users.noreply.github.com>
Diffstat (limited to 'src/main/java/tectech/mechanics/enderStorage/EnderLinkTank.java')
-rw-r--r--src/main/java/tectech/mechanics/enderStorage/EnderLinkTank.java45
1 files changed, 40 insertions, 5 deletions
diff --git a/src/main/java/tectech/mechanics/enderStorage/EnderLinkTank.java b/src/main/java/tectech/mechanics/enderStorage/EnderLinkTank.java
index 1b14c1371a..fe363b2058 100644
--- a/src/main/java/tectech/mechanics/enderStorage/EnderLinkTank.java
+++ b/src/main/java/tectech/mechanics/enderStorage/EnderLinkTank.java
@@ -2,11 +2,14 @@ package tectech.mechanics.enderStorage;
import java.io.Serializable;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.fluids.IFluidHandler;
import com.google.common.base.Objects;
+import com.gtnewhorizon.gtnhlib.util.CoordinatePacker;
public class EnderLinkTank implements Serializable {
@@ -24,12 +27,24 @@ public class EnderLinkTank implements Serializable {
D = tile.getWorldObj().provider.dimensionId;
}
+ private EnderLinkTank(int x, int y, int z, int d) {
+ X = x;
+ Y = y;
+ Z = z;
+ D = d;
+ }
+
public IFluidHandler getFluidHandler() {
- IFluidHandler fluidHandler = null;
- TileEntity tile = DimensionManager.getWorld(D)
- .getTileEntity(X, Y, Z);
- if (tile instanceof IFluidHandler) fluidHandler = (IFluidHandler) tile;
- return fluidHandler;
+ World world = DimensionManager.getWorld(D);
+
+ if (world == null) return null;
+
+ TileEntity tile = world.getTileEntity(X, Y, Z);
+ if (tile instanceof IFluidHandler fluidHandler) {
+ return fluidHandler;
+ } else {
+ return null;
+ }
}
@Override
@@ -44,4 +59,24 @@ public class EnderLinkTank implements Serializable {
public int hashCode() {
return Objects.hashCode(X, Y, Z, D);
}
+
+ public NBTTagCompound save() {
+ NBTTagCompound data = new NBTTagCompound();
+
+ data.setLong("coords", CoordinatePacker.pack(X, Y, Z));
+ data.setInteger("dim", D);
+
+ return data;
+ }
+
+ public static EnderLinkTank load(NBTTagCompound data) {
+ long coords = data.getLong("coords");
+ int dim = data.getInteger("dim");
+
+ return new EnderLinkTank(
+ CoordinatePacker.unpackX(coords),
+ CoordinatePacker.unpackY(coords),
+ CoordinatePacker.unpackZ(coords),
+ dim);
+ }
}