ERRORS, Working on Abstracting NodeTank in order to convert it to scala easier

This commit is contained in:
Robert S 2014-09-25 20:30:03 -04:00
parent 58715f9f07
commit b297a059f4
3 changed files with 7 additions and 164 deletions

View file

@ -1,32 +0,0 @@
package resonantinduction.core.prefab
import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids._
/**
* Multipart Trait
* @author Calclavia
*/
trait TFluidHandler extends IFluidHandler
{
var fluidTank: FluidTank = new FluidTank(FluidContainerRegistry.BUCKET_VOLUME)
override def fill(from: ForgeDirection, resource: FluidStack, doFill: Boolean): Int = fluidTank.fill(resource, doFill)
override def drain(from: ForgeDirection, resource: FluidStack, doDrain: Boolean): FluidStack =
{
if (resource != null && resource.isFluidEqual(fluidTank.getFluid))
{
return drain(from, resource.amount, doDrain)
}
return null
}
override def drain(from: ForgeDirection, maxDrain: Int, doDrain: Boolean): FluidStack = fluidTank.drain(maxDrain, doDrain)
override def canFill(from: ForgeDirection, fluid: Fluid): Boolean = true
override def canDrain(from: ForgeDirection, fluid: Fluid): Boolean = true
override def getTankInfo(from: ForgeDirection): Array[FluidTankInfo] = Array[FluidTankInfo](fluidTank.getInfo)
}

View file

@ -11,6 +11,7 @@ import resonant.lib.network.discriminator.PacketTile;
import resonant.lib.network.discriminator.PacketType;
import resonant.lib.network.handle.IPacketIDReceiver;
import resonant.lib.prefab.fluid.LimitedTank;
import resonant.lib.prefab.fluid.NodeFluidHandler;
import resonant.lib.utility.WorldUtility;
import universalelectricity.api.core.grid.INodeProvider;
import universalelectricity.api.core.grid.ISave;
@ -21,10 +22,9 @@ import universalelectricity.core.grid.node.NodeConnector;
*
* @author Darkguardsman
*/
public class NodeTank extends NodeConnector implements IFluidTank, IFluidHandler, ISave, IPacketIDReceiver
public class NodeTank extends NodeFluidHandler implements ISave, IPacketIDReceiver
{
static final int PACKET_DESCRIPTION = 100, PACKET_TANK = 101;
LimitedTank tank;
int renderSides = 0;
public NodeTank(INodeProvider parent)
@ -34,115 +34,19 @@ public class NodeTank extends NodeConnector implements IFluidTank, IFluidHandler
public NodeTank(INodeProvider parent, int buckets)
{
super(parent);
tank = new LimitedTank(buckets * FluidContainerRegistry.BUCKET_VOLUME);
}
@Override
public boolean isValidConnection(Object object)
{
return super.isValidConnection(object);
}
@Override
public FluidStack getFluid()
{
return tank.getFluid();
}
@Override
public int getFluidAmount()
{
return tank.getFluidAmount();
}
@Override
public int getCapacity()
{
return tank.getCapacity();
}
public void setCapacity(int capacity)
{
tank.setCapacity(capacity);
}
@Override
public FluidTankInfo getInfo()
{
return tank.getInfo();
}
@Override
public int fill(FluidStack resource, boolean doFill)
{
return tank.fill(resource, doFill);
}
@Override
public FluidStack drain(int maxDrain, boolean doDrain)
{
return tank.drain(maxDrain, doDrain);
}
@Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
{
if (canConnect(from))
{
return fill(resource, doFill);
}
return 0;
}
@Override
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain)
{
if (canConnect(from) && resource != null && resource.isFluidEqual(getFluid()))
{
return drain(resource.amount, doDrain);
}
return null;
}
@Override
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain)
{
if (canConnect(from))
{
return drain(maxDrain, doDrain);
}
return null;
}
@Override
public boolean canFill(ForgeDirection from, Fluid fluid)
{
return canConnect(from);
}
@Override
public boolean canDrain(ForgeDirection from, Fluid fluid)
{
return canConnect(from);
}
@Override
public FluidTankInfo[] getTankInfo(ForgeDirection from)
{
return new FluidTankInfo[] { getInfo() };
super(parent, new LimitedTank(buckets * FluidContainerRegistry.BUCKET_VOLUME));
}
@Override
public void load(NBTTagCompound nbt)
{
tank.readFromNBT(nbt.getCompoundTag("tank"));
getPrimaryTank().readFromNBT(nbt.getCompoundTag("tank"));
}
@Override
public void save(NBTTagCompound nbt)
{
nbt.setTag("tank", tank.writeToNBT(new NBTTagCompound()));
nbt.setTag("tank", getPrimaryTank().writeToNBT(new NBTTagCompound()));
}
@Override
@ -154,7 +58,7 @@ public class NodeTank extends NodeConnector implements IFluidTank, IFluidHandler
this.load(ByteBufUtils.readTag(buf));
break;
case PACKET_TANK:
this.tank.readFromNBT(ByteBufUtils.readTag(buf));
getPrimaryTank().readFromNBT(ByteBufUtils.readTag(buf));
break;
}
return false;
@ -162,14 +66,7 @@ public class NodeTank extends NodeConnector implements IFluidTank, IFluidHandler
public void sendTank()
{
ResonantEngine.instance.packetHandler.sendToAllAround(new PacketTile((int) x(), (int) y(), (int) z(), PACKET_TANK, tank.writeToNBT(new NBTTagCompound())), this, 64);
}
public void sendUpdate()
{
NBTTagCompound tag = new NBTTagCompound();
save(tag);
ResonantEngine.instance.packetHandler.sendToAllAround(new PacketTile((int) x(), (int) y(), (int) z(), PACKET_DESCRIPTION, tag), this, 64);
//ResonantEngine.instance.packetHandler.sendToAllAround(new PacketTile((int) x(), (int) y(), (int) z(), PACKET_TANK, getPrimaryTank().writeToNBT(new NBTTagCompound())), 64);
}
@Override
@ -194,16 +91,6 @@ public class NodeTank extends NodeConnector implements IFluidTank, IFluidHandler
return false;
}
public int maxInput()
{
return tank.maxInput;
}
public int maxOutput()
{
return tank.maxOutput;
}
public int getRenderSides()
{
return renderSides;

View file

@ -1,12 +0,0 @@
package resonantinduction.core.prefab.node
import resonantinduction.core.prefab.TFluidHandler
import universalelectricity.api.core.grid.INodeProvider
/**
* Created by robert on 8/14/2014.
*/
trait TFluidNode extends TFluidHandler with INodeProvider
{
}