diff --git a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java index 506fe668..c20797fc 100644 --- a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java +++ b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java @@ -34,7 +34,8 @@ public class DriverDualFluidInterface implements SidedBlock { @Override public ManagedEnvironment createEnvironment(World world, int x, int y, int z, ForgeDirection side) { - return null; + TileEntity te = world.getTileEntity(x, y, z); + return new DriverDualFluidInterface.Environment(getInterface(te, side)); } public static class Environment extends ManagedTileEntityEnvironment implements NamedBlock { @@ -110,6 +111,18 @@ public class DriverDualFluidInterface implements SidedBlock { return false; } + private static DualityFluidInterface getInterface(TileEntity te, ForgeDirection face) { + if (te != null) { + if (te instanceof TileFluidInterface) { + return ((TileFluidInterface) te).getDualityFluid(); + } + if (te instanceof IPartHost && ((IPartHost) te).getPart(face) instanceof PartFluidInterface) { + return ((PartFluidInterface) ((IPartHost) te).getPart(face)).getDualityFluid(); + } + } + return null; + } + public static class Provider implements EnvironmentProvider { Provider() { }