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 net.minecraftforge.fluids.IFluidHandler;
|
||||||
import universalelectricity.api.net.IConnector;
|
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
|
* that each part can only support one fluid tank internally
|
||||||
*
|
*
|
||||||
* @author DarkGuardsman */
|
* @author DarkGuardsman
|
||||||
|
*/
|
||||||
public interface IFluidConnector extends IConnector<IFluidNetwork>, IFluidHandler
|
public interface IFluidConnector extends IConnector<IFluidNetwork>, IFluidHandler
|
||||||
{
|
{
|
||||||
/** FluidTank that the network will have access to fill or drain */
|
/** FluidTank that the network will have access to fill or drain */
|
||||||
public FluidTank getInternalTank();
|
public FluidTank getInternalTank();
|
||||||
|
|
||||||
public void onFluidChanged();
|
public void onFluidChanged();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,140 +13,140 @@ import calclavia.lib.render.ColorCode.IColorCoded;
|
||||||
|
|
||||||
public class TilePipe extends TileFluidNetwork implements IColorCoded, IFluidPipe
|
public class TilePipe extends TileFluidNetwork implements IColorCoded, IFluidPipe
|
||||||
{
|
{
|
||||||
/** gets the current color mark of the pipe */
|
/** gets the current color mark of the pipe */
|
||||||
@Override
|
@Override
|
||||||
public ColorCode getColor()
|
public ColorCode getColor()
|
||||||
{
|
{
|
||||||
return EnumPipeType.getColorCode(this.colorID);
|
return EnumPipeType.getColorCode(this.colorID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** sets the current color mark of the pipe */
|
/** sets the current color mark of the pipe */
|
||||||
@Override
|
@Override
|
||||||
public boolean setColor(Object cc)
|
public boolean setColor(Object cc)
|
||||||
{
|
{
|
||||||
if (!worldObj.isRemote)
|
if (!worldObj.isRemote)
|
||||||
{
|
{
|
||||||
int p = this.colorID;
|
int p = this.colorID;
|
||||||
this.colorID = EnumPipeType.getUpdatedID(colorID, ColorCode.get(cc));
|
this.colorID = EnumPipeType.getUpdatedID(colorID, ColorCode.get(cc));
|
||||||
return p != this.colorID;
|
return p != this.colorID;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void validateConnectionSide(TileEntity tileEntity, ForgeDirection side)
|
public void validateConnectionSide(TileEntity tileEntity, ForgeDirection side)
|
||||||
{
|
{
|
||||||
int meta = new Vector3(this).getBlockMetadata(this.worldObj);
|
int meta = new Vector3(this).getBlockMetadata(this.worldObj);
|
||||||
if (meta < FluidContainerMaterial.values().length)
|
if (meta < FluidContainerMaterial.values().length)
|
||||||
{
|
{
|
||||||
FluidContainerMaterial pipeMat = FluidContainerMaterial.values()[meta];
|
FluidContainerMaterial pipeMat = FluidContainerMaterial.values()[meta];
|
||||||
if (pipeMat == FluidContainerMaterial.WOOD || pipeMat == FluidContainerMaterial.STONE)
|
if (pipeMat == FluidContainerMaterial.WOOD || pipeMat == FluidContainerMaterial.STONE)
|
||||||
{
|
{
|
||||||
if (side == ForgeDirection.UP)
|
if (side == ForgeDirection.UP)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (tileEntity instanceof TilePipe)
|
if (tileEntity instanceof TilePipe)
|
||||||
{
|
{
|
||||||
int metaOther = new Vector3(tileEntity).getBlockMetadata(this.worldObj);
|
int metaOther = new Vector3(tileEntity).getBlockMetadata(this.worldObj);
|
||||||
if (meta < FluidContainerMaterial.values().length && metaOther < FluidContainerMaterial.values().length)
|
if (meta < FluidContainerMaterial.values().length && metaOther < FluidContainerMaterial.values().length)
|
||||||
{
|
{
|
||||||
FluidContainerMaterial pipeMat = FluidContainerMaterial.values()[meta];
|
FluidContainerMaterial pipeMat = FluidContainerMaterial.values()[meta];
|
||||||
FluidContainerMaterial pipeMatOther = FluidContainerMaterial.values()[metaOther];
|
FluidContainerMaterial pipeMatOther = FluidContainerMaterial.values()[metaOther];
|
||||||
// Same pipe types can connect
|
// Same pipe types can connect
|
||||||
if (pipeMat == pipeMatOther)
|
if (pipeMat == pipeMatOther)
|
||||||
{
|
{
|
||||||
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
||||||
connectedBlocks[side.ordinal()] = tileEntity;
|
connectedBlocks[side.ordinal()] = tileEntity;
|
||||||
setRenderSide(side, true);
|
setRenderSide(side, true);
|
||||||
}
|
}
|
||||||
else if ((pipeMat == FluidContainerMaterial.WOOD || pipeMat == FluidContainerMaterial.STONE) && (pipeMatOther == FluidContainerMaterial.WOOD || pipeMatOther == FluidContainerMaterial.STONE))
|
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
|
// Wood and stone pipes can connect to each other but not other pipe types since
|
||||||
// they are more like a trough than a pipe
|
// they are more like a trough than a pipe
|
||||||
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
||||||
connectedBlocks[side.ordinal()] = tileEntity;
|
connectedBlocks[side.ordinal()] = tileEntity;
|
||||||
setRenderSide(side, true);
|
setRenderSide(side, true);
|
||||||
}
|
}
|
||||||
else if (pipeMat != FluidContainerMaterial.WOOD && pipeMat != FluidContainerMaterial.STONE && pipeMatOther != FluidContainerMaterial.WOOD && pipeMatOther != FluidContainerMaterial.STONE && pipeMat != FluidContainerMaterial.GLASS && pipeMatOther != FluidContainerMaterial.GLASS)
|
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
|
* 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
|
* for glass which only works with itself at the moment
|
||||||
*/
|
*/
|
||||||
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
this.getNetwork().merge(((IFluidPipe) tileEntity).getNetwork());
|
||||||
connectedBlocks[side.ordinal()] = tileEntity;
|
connectedBlocks[side.ordinal()] = tileEntity;
|
||||||
setRenderSide(side, true);
|
setRenderSide(side, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (tileEntity instanceof IFluidHandler)
|
else if (tileEntity instanceof IFluidHandler)
|
||||||
{
|
{
|
||||||
connectedBlocks[side.ordinal()] = tileEntity;
|
connectedBlocks[side.ordinal()] = tileEntity;
|
||||||
setRenderSide(side, true);
|
setRenderSide(side, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PipeNetwork getNetwork()
|
public IFluidNetwork getNetwork()
|
||||||
{
|
{
|
||||||
if (this.network == null)
|
if (this.network == null)
|
||||||
{
|
{
|
||||||
this.network = new PipeNetwork();
|
this.network = new PipeNetwork();
|
||||||
this.network.addConnector(this);
|
this.network.addConnector(this);
|
||||||
}
|
}
|
||||||
return (PipeNetwork) this.network;
|
return this.network;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setNetwork(IFluidNetwork network)
|
public void setNetwork(IFluidNetwork network)
|
||||||
{
|
{
|
||||||
if (network instanceof PipeNetwork)
|
if (network instanceof PipeNetwork)
|
||||||
{
|
{
|
||||||
this.network = (PipeNetwork) network;
|
this.network = (PipeNetwork) network;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendTankUpdate()
|
public void sendTankUpdate()
|
||||||
{
|
{
|
||||||
if (this.getBlockMetadata() == FluidContainerMaterial.WOOD.ordinal() || this.getBlockMetadata() == FluidContainerMaterial.STONE.ordinal())
|
if (this.getBlockMetadata() == FluidContainerMaterial.WOOD.ordinal() || this.getBlockMetadata() == FluidContainerMaterial.STONE.ordinal())
|
||||||
{
|
{
|
||||||
super.sendTankUpdate();
|
super.sendTankUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canDrain(ForgeDirection from, Fluid fluid)
|
public boolean canDrain(ForgeDirection from, Fluid fluid)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getPressureIn(ForgeDirection side)
|
public int getPressureIn(ForgeDirection side)
|
||||||
{
|
{
|
||||||
return this.getMaxPressure();
|
return this.getMaxPressure();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onWrongPressure(ForgeDirection side, int pressure)
|
public void onWrongPressure(ForgeDirection side, int pressure)
|
||||||
{
|
{
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxPressure()
|
public int getMaxPressure()
|
||||||
{
|
{
|
||||||
return 10000;
|
return 10000;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxFlowRate()
|
public int getMaxFlowRate()
|
||||||
{
|
{
|
||||||
return 1000;
|
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.FluidTank;
|
||||||
import net.minecraftforge.fluids.FluidTankInfo;
|
import net.minecraftforge.fluids.FluidTankInfo;
|
||||||
import resonantinduction.api.IReadOut;
|
import resonantinduction.api.IReadOut;
|
||||||
import resonantinduction.api.fluid.IFluidNetwork;
|
|
||||||
import resonantinduction.api.fluid.IFluidConnector;
|
import resonantinduction.api.fluid.IFluidConnector;
|
||||||
|
import resonantinduction.api.fluid.IFluidNetwork;
|
||||||
import resonantinduction.core.ResonantInduction;
|
import resonantinduction.core.ResonantInduction;
|
||||||
import resonantinduction.mechanical.Mechanical;
|
import resonantinduction.mechanical.Mechanical;
|
||||||
import resonantinduction.mechanical.fluid.network.FluidNetwork;
|
|
||||||
import universalelectricity.api.vector.Vector3;
|
import universalelectricity.api.vector.Vector3;
|
||||||
import calclavia.lib.network.IPacketReceiverWithID;
|
import calclavia.lib.network.IPacketReceiverWithID;
|
||||||
import calclavia.lib.network.PacketHandler;
|
import calclavia.lib.network.PacketHandler;
|
||||||
|
import calclavia.lib.prefab.tile.TileAdvanced;
|
||||||
import calclavia.lib.utility.FluidUtility;
|
import calclavia.lib.utility.FluidUtility;
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
|
@ -34,9 +34,8 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
* @author DarkCow
|
* @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 FluidTank tank = new FluidTank(1 * FluidContainerRegistry.BUCKET_VOLUME);
|
||||||
protected Object[] connectedBlocks = new Object[6];
|
protected Object[] connectedBlocks = new Object[6];
|
||||||
protected int colorID = 0;
|
protected int colorID = 0;
|
||||||
|
@ -45,7 +44,7 @@ public abstract class TileFluidNetwork<N extends FluidNetwork> extends TileEntit
|
||||||
protected FluidStack prevStack = null;
|
protected FluidStack prevStack = null;
|
||||||
|
|
||||||
/** Network used to link all parts together */
|
/** 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_DESCRIPTION = Mechanical.contentRegistry.getNextPacketID();
|
||||||
public static final int PACKET_RENDER = 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()
|
public void initiate()
|
||||||
{
|
{
|
||||||
super.initiate();
|
super.initiate();
|
||||||
this.refresh();
|
refresh();
|
||||||
|
getNetwork().reconstruct();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -71,7 +71,7 @@ public abstract class TileFluidNetwork<N extends FluidNetwork> extends TileEntit
|
||||||
|
|
||||||
if (!worldObj.isRemote)
|
if (!worldObj.isRemote)
|
||||||
{
|
{
|
||||||
if (this.updateFluidRender && ticks % TileFluidNetwork.refreshRate == 0)
|
if (this.updateFluidRender)
|
||||||
{
|
{
|
||||||
if (!FluidUtility.matchExact(prevStack, this.getInternalTank().getFluid()))
|
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.FluidTankInfo;
|
||||||
import net.minecraftforge.fluids.IFluidHandler;
|
import net.minecraftforge.fluids.IFluidHandler;
|
||||||
import resonantinduction.api.fluid.IDrain;
|
import resonantinduction.api.fluid.IDrain;
|
||||||
import resonantinduction.mechanical.fluid.prefab.TileEntityFluidDevice;
|
|
||||||
import universalelectricity.api.vector.Vector3;
|
import universalelectricity.api.vector.Vector3;
|
||||||
|
import calclavia.lib.prefab.tile.TileAdvanced;
|
||||||
import calclavia.lib.utility.FluidUtility;
|
import calclavia.lib.utility.FluidUtility;
|
||||||
|
|
||||||
import com.builtbroken.common.Pair;
|
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 */
|
/* MAX BLOCKS DRAINED PER 1/2 SECOND */
|
||||||
public static int MAX_WORLD_EDITS_PER_PROCESS = 50;
|
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.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||||
import resonantinduction.api.fluid.IFluidNetwork;
|
|
||||||
import resonantinduction.api.fluid.IFluidConnector;
|
import resonantinduction.api.fluid.IFluidConnector;
|
||||||
|
import resonantinduction.api.fluid.IFluidNetwork;
|
||||||
import resonantinduction.mechanical.fluid.prefab.TileFluidNetwork;
|
import resonantinduction.mechanical.fluid.prefab.TileFluidNetwork;
|
||||||
|
|
||||||
public class TileTank extends TileFluidNetwork
|
public class TileTank extends TileFluidNetwork
|
||||||
{
|
{
|
||||||
public static final int VOLUME = 16;
|
public static final int VOLUME = 16;
|
||||||
|
|
||||||
public TileTank()
|
public TileTank()
|
||||||
{
|
{
|
||||||
this.getInternalTank().setCapacity(VOLUME * FluidContainerRegistry.BUCKET_VOLUME);
|
this.getInternalTank().setCapacity(VOLUME * FluidContainerRegistry.BUCKET_VOLUME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TankNetwork getNetwork()
|
public IFluidNetwork getNetwork()
|
||||||
{
|
{
|
||||||
if (this.network == null)
|
if (this.network == null)
|
||||||
{
|
{
|
||||||
this.network = new TankNetwork();
|
this.network = new TankNetwork();
|
||||||
this.network.addConnector(this);
|
this.network.addConnector(this);
|
||||||
}
|
}
|
||||||
return (TankNetwork) this.network;
|
return this.network;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setNetwork(IFluidNetwork network)
|
public void setNetwork(IFluidNetwork network)
|
||||||
{
|
{
|
||||||
if (network instanceof TankNetwork)
|
if (network instanceof TankNetwork)
|
||||||
{
|
{
|
||||||
this.network = (TankNetwork) network;
|
this.network = (TankNetwork) network;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void validateConnectionSide(TileEntity tileEntity, ForgeDirection side)
|
public void validateConnectionSide(TileEntity tileEntity, ForgeDirection side)
|
||||||
{
|
{
|
||||||
if (!this.worldObj.isRemote)
|
if (!this.worldObj.isRemote)
|
||||||
{
|
{
|
||||||
if (tileEntity instanceof TileTank)
|
if (tileEntity instanceof TileTank)
|
||||||
{
|
{
|
||||||
this.getNetwork().merge(((IFluidConnector) tileEntity).getNetwork());
|
this.getNetwork().merge(((IFluidConnector) tileEntity).getNetwork());
|
||||||
this.setRenderSide(side, true);
|
this.setRenderSide(side, true);
|
||||||
connectedBlocks[side.ordinal()] = tileEntity;
|
connectedBlocks[side.ordinal()] = tileEntity;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,10 +9,10 @@ import net.minecraftforge.fluids.IFluidHandler;
|
||||||
import resonantinduction.api.IReadOut;
|
import resonantinduction.api.IReadOut;
|
||||||
import resonantinduction.api.fluid.IFluidPipe;
|
import resonantinduction.api.fluid.IFluidPipe;
|
||||||
import resonantinduction.core.tilenetwork.ITileConnector;
|
import resonantinduction.core.tilenetwork.ITileConnector;
|
||||||
import resonantinduction.mechanical.fluid.prefab.TileEntityFluidDevice;
|
import resonantinduction.mechanical.fluid.pipe.TilePipe;
|
||||||
import calclavia.lib.utility.WorldUtility;
|
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];
|
public TileEntity[] connected = new TileEntity[6];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue