aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/tectech/mechanics/enderStorage/EnderLinkTank.java
blob: 1b14c1371ac46dbc50bd377a59f0a90aa0c937f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package tectech.mechanics.enderStorage;

import java.io.Serializable;

import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.fluids.IFluidHandler;

import com.google.common.base.Objects;

public class EnderLinkTank implements Serializable {

    private static final long serialVersionUID = 1030297456736434221L;
    private final int X;
    private final int Y;
    private final int Z;
    private final int D;

    public EnderLinkTank(IFluidHandler fluidHandler) {
        TileEntity tile = (TileEntity) fluidHandler;
        X = tile.xCoord;
        Y = tile.yCoord;
        Z = tile.zCoord;
        D = tile.getWorldObj().provider.dimensionId;
    }

    public IFluidHandler getFluidHandler() {
        IFluidHandler fluidHandler = null;
        TileEntity tile = DimensionManager.getWorld(D)
            .getTileEntity(X, Y, Z);
        if (tile instanceof IFluidHandler) fluidHandler = (IFluidHandler) tile;
        return fluidHandler;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        EnderLinkTank that = (EnderLinkTank) o;
        return X == that.X && Y == that.Y && Z == that.Z && D == that.D;
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(X, Y, Z, D);
    }
}