Got tanks almost working
This commit is contained in:
parent
ff0dbfe5ad
commit
c90d509d5e
8 changed files with 180 additions and 312 deletions
|
@ -4,14 +4,16 @@ import net.minecraftforge.fluids.FluidTank;
|
|||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
import universalelectricity.api.net.IConnector;
|
||||
|
||||
/** Generic interface for any tile that acts as part of a fluid network. Generally network assume
|
||||
/**
|
||||
* Generic interface for any tile that acts as part of a fluid network. Generally network assume
|
||||
* that each part can only support one fluid tank internally
|
||||
*
|
||||
* @author DarkGuardsman */
|
||||
* @author DarkGuardsman
|
||||
*/
|
||||
public interface IFluidConnector extends IConnector<IFluidNetwork>, IFluidHandler
|
||||
{
|
||||
/** FluidTank that the network will have access to fill or drain */
|
||||
public FluidTank getInternalTank();
|
||||
|
||||
public void onFluidChanged();
|
||||
/** FluidTank that the network will have access to fill or drain */
|
||||
public FluidTank getInternalTank();
|
||||
|
||||
public void onFluidChanged();
|
||||
}
|
||||
|
|
|
@ -13,140 +13,140 @@ import calclavia.lib.render.ColorCode.IColorCoded;
|
|||
|
||||
public class TilePipe extends TileFluidNetwork implements IColorCoded, IFluidPipe
|
||||
{
|
||||
/** gets the current color mark of the pipe */
|
||||
@Override
|
||||
public ColorCode getColor()
|
||||
{
|
||||
return EnumPipeType.getColorCode(this.colorID);
|
||||
}
|
||||
/** gets the current color mark of the pipe */
|
||||
@Override
|
||||
public ColorCode getColor()
|
||||
{
|
||||
return EnumPipeType.getColorCode(this.colorID);
|
||||
}
|
||||
|
||||
/** sets the current color mark of the pipe */
|
||||
@Override
|
||||
public boolean setColor(Object cc)
|
||||
{
|
||||
if (!worldObj.isRemote)
|
||||
{
|
||||
int p = this.colorID;
|
||||
this.colorID = EnumPipeType.getUpdatedID(colorID, ColorCode.get(cc));
|
||||
return p != this.colorID;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/** sets the current color mark of the pipe */
|
||||
@Override
|
||||
public boolean setColor(Object cc)
|
||||
{
|
||||
if (!worldObj.isRemote)
|
||||
{
|
||||
int p = this.colorID;
|
||||
this.colorID = EnumPipeType.getUpdatedID(colorID, ColorCode.get(cc));
|
||||
return p != this.colorID;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validateConnectionSide(TileEntity tileEntity, ForgeDirection side)
|
||||
{
|
||||
int meta = new Vector3(this).getBlockMetadata(this.worldObj);
|
||||
if (meta < FluidContainerMaterial.values().length)
|
||||
{
|
||||
FluidContainerMaterial pipeMat = FluidContainerMaterial.values()[meta];
|
||||
if (pipeMat == FluidContainerMaterial.WOOD || pipeMat == FluidContainerMaterial.STONE)
|
||||
{
|
||||
if (side == ForgeDirection.UP)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (tileEntity instanceof TilePipe)
|
||||
{
|
||||
int metaOther = new Vector3(tileEntity).getBlockMetadata(this.worldObj);
|
||||
if (meta < FluidContainerMaterial.values().length && metaOther < FluidContainerMaterial.values().length)
|
||||
{
|
||||
FluidContainerMaterial pipeMat = FluidContainerMaterial.values()[meta];
|
||||
FluidContainerMaterial pipeMatOther = FluidContainerMaterial.values()[metaOther];
|
||||
// Same pipe types can connect
|
||||
if (pipeMat == pipeMatOther)
|
||||
{
|
||||
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
||||
connectedBlocks[side.ordinal()] = tileEntity;
|
||||
setRenderSide(side, true);
|
||||
}
|
||||
else if ((pipeMat == FluidContainerMaterial.WOOD || pipeMat == FluidContainerMaterial.STONE) && (pipeMatOther == FluidContainerMaterial.WOOD || pipeMatOther == FluidContainerMaterial.STONE))
|
||||
{
|
||||
// Wood and stone pipes can connect to each other but not other pipe types since
|
||||
// they are more like a trough than a pipe
|
||||
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
||||
connectedBlocks[side.ordinal()] = tileEntity;
|
||||
setRenderSide(side, true);
|
||||
}
|
||||
else if (pipeMat != FluidContainerMaterial.WOOD && pipeMat != FluidContainerMaterial.STONE && pipeMatOther != FluidContainerMaterial.WOOD && pipeMatOther != FluidContainerMaterial.STONE && pipeMat != FluidContainerMaterial.GLASS && pipeMatOther != FluidContainerMaterial.GLASS)
|
||||
{
|
||||
/*
|
||||
* Any other pipe can connect to each other as long as the color matches except
|
||||
* for glass which only works with itself at the moment
|
||||
*/
|
||||
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
||||
connectedBlocks[side.ordinal()] = tileEntity;
|
||||
setRenderSide(side, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (tileEntity instanceof IFluidHandler)
|
||||
{
|
||||
connectedBlocks[side.ordinal()] = tileEntity;
|
||||
setRenderSide(side, true);
|
||||
}
|
||||
@Override
|
||||
public void validateConnectionSide(TileEntity tileEntity, ForgeDirection side)
|
||||
{
|
||||
int meta = new Vector3(this).getBlockMetadata(this.worldObj);
|
||||
if (meta < FluidContainerMaterial.values().length)
|
||||
{
|
||||
FluidContainerMaterial pipeMat = FluidContainerMaterial.values()[meta];
|
||||
if (pipeMat == FluidContainerMaterial.WOOD || pipeMat == FluidContainerMaterial.STONE)
|
||||
{
|
||||
if (side == ForgeDirection.UP)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (tileEntity instanceof TilePipe)
|
||||
{
|
||||
int metaOther = new Vector3(tileEntity).getBlockMetadata(this.worldObj);
|
||||
if (meta < FluidContainerMaterial.values().length && metaOther < FluidContainerMaterial.values().length)
|
||||
{
|
||||
FluidContainerMaterial pipeMat = FluidContainerMaterial.values()[meta];
|
||||
FluidContainerMaterial pipeMatOther = FluidContainerMaterial.values()[metaOther];
|
||||
// Same pipe types can connect
|
||||
if (pipeMat == pipeMatOther)
|
||||
{
|
||||
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
||||
connectedBlocks[side.ordinal()] = tileEntity;
|
||||
setRenderSide(side, true);
|
||||
}
|
||||
else if ((pipeMat == FluidContainerMaterial.WOOD || pipeMat == FluidContainerMaterial.STONE) && (pipeMatOther == FluidContainerMaterial.WOOD || pipeMatOther == FluidContainerMaterial.STONE))
|
||||
{
|
||||
// Wood and stone pipes can connect to each other but not other pipe types since
|
||||
// they are more like a trough than a pipe
|
||||
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
||||
connectedBlocks[side.ordinal()] = tileEntity;
|
||||
setRenderSide(side, true);
|
||||
}
|
||||
else if (pipeMat != FluidContainerMaterial.WOOD && pipeMat != FluidContainerMaterial.STONE && pipeMatOther != FluidContainerMaterial.WOOD && pipeMatOther != FluidContainerMaterial.STONE && pipeMat != FluidContainerMaterial.GLASS && pipeMatOther != FluidContainerMaterial.GLASS)
|
||||
{
|
||||
/*
|
||||
* Any other pipe can connect to each other as long as the color matches except
|
||||
* for glass which only works with itself at the moment
|
||||
*/
|
||||
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
||||
connectedBlocks[side.ordinal()] = tileEntity;
|
||||
setRenderSide(side, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (tileEntity instanceof IFluidHandler)
|
||||
{
|
||||
connectedBlocks[side.ordinal()] = tileEntity;
|
||||
setRenderSide(side, true);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public PipeNetwork getNetwork()
|
||||
{
|
||||
if (this.network == null)
|
||||
{
|
||||
this.network = new PipeNetwork();
|
||||
this.network.addConnector(this);
|
||||
}
|
||||
return (PipeNetwork) this.network;
|
||||
}
|
||||
@Override
|
||||
public IFluidNetwork getNetwork()
|
||||
{
|
||||
if (this.network == null)
|
||||
{
|
||||
this.network = new PipeNetwork();
|
||||
this.network.addConnector(this);
|
||||
}
|
||||
return this.network;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNetwork(IFluidNetwork network)
|
||||
{
|
||||
if (network instanceof PipeNetwork)
|
||||
{
|
||||
this.network = (PipeNetwork) network;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void setNetwork(IFluidNetwork network)
|
||||
{
|
||||
if (network instanceof PipeNetwork)
|
||||
{
|
||||
this.network = (PipeNetwork) network;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendTankUpdate()
|
||||
{
|
||||
if (this.getBlockMetadata() == FluidContainerMaterial.WOOD.ordinal() || this.getBlockMetadata() == FluidContainerMaterial.STONE.ordinal())
|
||||
{
|
||||
super.sendTankUpdate();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void sendTankUpdate()
|
||||
{
|
||||
if (this.getBlockMetadata() == FluidContainerMaterial.WOOD.ordinal() || this.getBlockMetadata() == FluidContainerMaterial.STONE.ordinal())
|
||||
{
|
||||
super.sendTankUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canDrain(ForgeDirection from, Fluid fluid)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean canDrain(ForgeDirection from, Fluid fluid)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPressureIn(ForgeDirection side)
|
||||
{
|
||||
return this.getMaxPressure();
|
||||
}
|
||||
@Override
|
||||
public int getPressureIn(ForgeDirection side)
|
||||
{
|
||||
return this.getMaxPressure();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWrongPressure(ForgeDirection side, int pressure)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
@Override
|
||||
public void onWrongPressure(ForgeDirection side, int pressure)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxPressure()
|
||||
{
|
||||
return 10000;
|
||||
}
|
||||
@Override
|
||||
public int getMaxPressure()
|
||||
{
|
||||
return 10000;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxFlowRate()
|
||||
{
|
||||
return 1000;
|
||||
}
|
||||
@Override
|
||||
public int getMaxFlowRate()
|
||||
{
|
||||
return 1000;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
package resonantinduction.mechanical.fluid.prefab;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import resonantinduction.core.tilenetwork.prefab.NetworkTileEntities;
|
||||
import calclavia.lib.prefab.tile.TileAdvanced;
|
||||
|
||||
public abstract class TileEntityFluidDevice extends TileAdvanced
|
||||
{
|
||||
public Random random = new Random();
|
||||
|
||||
@Override
|
||||
public void invalidate()
|
||||
{
|
||||
super.invalidate();
|
||||
NetworkTileEntities.invalidate(this);
|
||||
}
|
||||
}
|
|
@ -1,116 +0,0 @@
|
|||
package resonantinduction.mechanical.fluid.prefab;
|
||||
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTank;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
import calclavia.lib.render.ColorCode.IColorCoded;
|
||||
import calclavia.lib.utility.FluidUtility;
|
||||
|
||||
public abstract class TileEntityFluidStorage extends TileEntityFluidDevice implements IFluidHandler, IColorCoded
|
||||
{
|
||||
|
||||
public FluidTank fluidTank;
|
||||
|
||||
|
||||
@Override
|
||||
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
|
||||
{
|
||||
if (resource == null || resource.getFluid() == null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else if (this.getTank().getFluid() != null && !resource.isFluidEqual(this.getTank().getFluid()))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return this.getTank().fill(resource, doFill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain)
|
||||
{
|
||||
if (this.getTank().getFluid() == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
FluidStack stack = this.getTank().getFluid();
|
||||
if (maxDrain < stack.amount)
|
||||
{
|
||||
stack = FluidUtility.getStack(stack, maxDrain);
|
||||
}
|
||||
return this.getTank().drain(maxDrain, doDrain);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidTankInfo[] getTankInfo(ForgeDirection from)
|
||||
{
|
||||
if (this.getTank() != null)
|
||||
{
|
||||
return new FluidTankInfo[] { new FluidTankInfo(this.getTank()) };
|
||||
}
|
||||
return new FluidTankInfo[1];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt)
|
||||
{
|
||||
super.readFromNBT(nbt);
|
||||
if (nbt.hasKey("stored"))
|
||||
{
|
||||
NBTTagCompound tag = nbt.getCompoundTag("stored");
|
||||
String name = tag.getString("LiquidName");
|
||||
int amount = nbt.getInteger("Amount");
|
||||
Fluid fluid = FluidRegistry.getFluid(name);
|
||||
if (fluid != null)
|
||||
{
|
||||
FluidStack liquid = new FluidStack(fluid, amount);
|
||||
getTank().setFluid(liquid);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// System.out.println("Loading fluid tank");
|
||||
getTank().readFromNBT(nbt.getCompoundTag("FluidTank"));
|
||||
// System.out.println("Tank: "+ (getTank().getFluid() != null ?
|
||||
// getTank().getFluid().fluidID +"@"+getTank().getFluid().amount+"mb" : "Empty"));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt)
|
||||
{
|
||||
super.writeToNBT(nbt);
|
||||
if (this.getTank() != null)
|
||||
{
|
||||
// System.out.println("Saving fluid tank");
|
||||
// System.out.println("Tank: "+ (getTank().getFluid() != null ?
|
||||
// getTank().getFluid().fluidID +"@"+getTank().getFluid().amount+"mb" : "Empty"));
|
||||
nbt.setCompoundTag("FluidTank", this.getTank().writeToNBT(new NBTTagCompound()));
|
||||
}
|
||||
}
|
||||
|
||||
/** Is the internal tank full */
|
||||
public boolean isFull()
|
||||
{
|
||||
return this.getTank().getFluidAmount() >= this.getTank().getCapacity();
|
||||
}
|
||||
|
||||
public FluidTank getTank()
|
||||
{
|
||||
if (this.fluidTank == null)
|
||||
{
|
||||
this.fluidTank = new FluidTank(this.getTankSize());
|
||||
}
|
||||
return this.fluidTank;
|
||||
}
|
||||
|
||||
/** gets the max storage limit of the tank */
|
||||
public abstract int getTankSize();
|
||||
|
||||
}
|
|
@ -13,14 +13,14 @@ import net.minecraftforge.fluids.FluidStack;
|
|||
import net.minecraftforge.fluids.FluidTank;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import resonantinduction.api.IReadOut;
|
||||
import resonantinduction.api.fluid.IFluidNetwork;
|
||||
import resonantinduction.api.fluid.IFluidConnector;
|
||||
import resonantinduction.api.fluid.IFluidNetwork;
|
||||
import resonantinduction.core.ResonantInduction;
|
||||
import resonantinduction.mechanical.Mechanical;
|
||||
import resonantinduction.mechanical.fluid.network.FluidNetwork;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
import calclavia.lib.network.IPacketReceiverWithID;
|
||||
import calclavia.lib.network.PacketHandler;
|
||||
import calclavia.lib.prefab.tile.TileAdvanced;
|
||||
import calclavia.lib.utility.FluidUtility;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
@ -34,9 +34,8 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||
* @author DarkCow
|
||||
*
|
||||
*/
|
||||
public abstract class TileFluidNetwork<N extends FluidNetwork> extends TileEntityFluidDevice implements IFluidConnector, IPacketReceiverWithID, IReadOut
|
||||
public abstract class TileFluidNetwork extends TileAdvanced implements IFluidConnector, IPacketReceiverWithID, IReadOut
|
||||
{
|
||||
public static int refreshRate = 10;
|
||||
protected FluidTank tank = new FluidTank(1 * FluidContainerRegistry.BUCKET_VOLUME);
|
||||
protected Object[] connectedBlocks = new Object[6];
|
||||
protected int colorID = 0;
|
||||
|
@ -45,7 +44,7 @@ public abstract class TileFluidNetwork<N extends FluidNetwork> extends TileEntit
|
|||
protected FluidStack prevStack = null;
|
||||
|
||||
/** Network used to link all parts together */
|
||||
protected N network;
|
||||
protected IFluidNetwork network;
|
||||
|
||||
public static final int PACKET_DESCRIPTION = Mechanical.contentRegistry.getNextPacketID();
|
||||
public static final int PACKET_RENDER = Mechanical.contentRegistry.getNextPacketID();
|
||||
|
@ -61,7 +60,8 @@ public abstract class TileFluidNetwork<N extends FluidNetwork> extends TileEntit
|
|||
public void initiate()
|
||||
{
|
||||
super.initiate();
|
||||
this.refresh();
|
||||
refresh();
|
||||
getNetwork().reconstruct();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -71,7 +71,7 @@ public abstract class TileFluidNetwork<N extends FluidNetwork> extends TileEntit
|
|||
|
||||
if (!worldObj.isRemote)
|
||||
{
|
||||
if (this.updateFluidRender && ticks % TileFluidNetwork.refreshRate == 0)
|
||||
if (this.updateFluidRender)
|
||||
{
|
||||
if (!FluidUtility.matchExact(prevStack, this.getInternalTank().getFluid()))
|
||||
{
|
||||
|
|
|
@ -15,13 +15,13 @@ import net.minecraftforge.fluids.FluidTank;
|
|||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
import resonantinduction.api.fluid.IDrain;
|
||||
import resonantinduction.mechanical.fluid.prefab.TileEntityFluidDevice;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
import calclavia.lib.prefab.tile.TileAdvanced;
|
||||
import calclavia.lib.utility.FluidUtility;
|
||||
|
||||
import com.builtbroken.common.Pair;
|
||||
|
||||
public class TileGrate extends TileEntityFluidDevice implements IFluidHandler, IDrain
|
||||
public class TileGrate extends TileAdvanced implements IFluidHandler, IDrain
|
||||
{
|
||||
/* MAX BLOCKS DRAINED PER 1/2 SECOND */
|
||||
public static int MAX_WORLD_EDITS_PER_PROCESS = 50;
|
||||
|
|
|
@ -3,51 +3,51 @@ package resonantinduction.mechanical.fluid.tank;
|
|||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||
import resonantinduction.api.fluid.IFluidNetwork;
|
||||
import resonantinduction.api.fluid.IFluidConnector;
|
||||
import resonantinduction.api.fluid.IFluidNetwork;
|
||||
import resonantinduction.mechanical.fluid.prefab.TileFluidNetwork;
|
||||
|
||||
public class TileTank extends TileFluidNetwork
|
||||
{
|
||||
public static final int VOLUME = 16;
|
||||
public static final int VOLUME = 16;
|
||||
|
||||
public TileTank()
|
||||
{
|
||||
this.getInternalTank().setCapacity(VOLUME * FluidContainerRegistry.BUCKET_VOLUME);
|
||||
}
|
||||
public TileTank()
|
||||
{
|
||||
this.getInternalTank().setCapacity(VOLUME * FluidContainerRegistry.BUCKET_VOLUME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TankNetwork getNetwork()
|
||||
{
|
||||
if (this.network == null)
|
||||
{
|
||||
this.network = new TankNetwork();
|
||||
this.network.addConnector(this);
|
||||
}
|
||||
return (TankNetwork) this.network;
|
||||
}
|
||||
@Override
|
||||
public IFluidNetwork getNetwork()
|
||||
{
|
||||
if (this.network == null)
|
||||
{
|
||||
this.network = new TankNetwork();
|
||||
this.network.addConnector(this);
|
||||
}
|
||||
return this.network;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNetwork(IFluidNetwork network)
|
||||
{
|
||||
if (network instanceof TankNetwork)
|
||||
{
|
||||
this.network = (TankNetwork) network;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void setNetwork(IFluidNetwork network)
|
||||
{
|
||||
if (network instanceof TankNetwork)
|
||||
{
|
||||
this.network = (TankNetwork) network;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validateConnectionSide(TileEntity tileEntity, ForgeDirection side)
|
||||
{
|
||||
if (!this.worldObj.isRemote)
|
||||
{
|
||||
if (tileEntity instanceof TileTank)
|
||||
{
|
||||
this.getNetwork().merge(((IFluidConnector) tileEntity).getNetwork());
|
||||
this.setRenderSide(side, true);
|
||||
connectedBlocks[side.ordinal()] = tileEntity;
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void validateConnectionSide(TileEntity tileEntity, ForgeDirection side)
|
||||
{
|
||||
if (!this.worldObj.isRemote)
|
||||
{
|
||||
if (tileEntity instanceof TileTank)
|
||||
{
|
||||
this.getNetwork().merge(((IFluidConnector) tileEntity).getNetwork());
|
||||
this.setRenderSide(side, true);
|
||||
connectedBlocks[side.ordinal()] = tileEntity;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -9,10 +9,10 @@ import net.minecraftforge.fluids.IFluidHandler;
|
|||
import resonantinduction.api.IReadOut;
|
||||
import resonantinduction.api.fluid.IFluidPipe;
|
||||
import resonantinduction.core.tilenetwork.ITileConnector;
|
||||
import resonantinduction.mechanical.fluid.prefab.TileEntityFluidDevice;
|
||||
import resonantinduction.mechanical.fluid.pipe.TilePipe;
|
||||
import calclavia.lib.utility.WorldUtility;
|
||||
|
||||
public class TileReleaseValve extends TileEntityFluidDevice implements ITileConnector, IReadOut
|
||||
public class TileReleaseValve extends TilePipe implements ITileConnector, IReadOut
|
||||
{
|
||||
public TileEntity[] connected = new TileEntity[6];
|
||||
|
||||
|
|
Loading…
Reference in a new issue