73 lines
1.7 KiB
Java
73 lines
1.7 KiB
Java
|
|
||
|
package net.minecraftforge.fluids;
|
||
|
|
||
|
import net.minecraft.nbt.NBTTagCompound;
|
||
|
import net.minecraft.tileentity.TileEntity;
|
||
|
import net.minecraftforge.common.ForgeDirection;
|
||
|
|
||
|
/**
|
||
|
* Reference Tile Entity implementation of {@link IFluidHandler}. Use/extend this or write your own.
|
||
|
*
|
||
|
* @author King Lemming
|
||
|
*
|
||
|
*/
|
||
|
public class TileFluidHandler extends TileEntity implements IFluidHandler {
|
||
|
|
||
|
protected FluidTank tank = new FluidTank(FluidContainerRegistry.BUCKET_VOLUME);
|
||
|
|
||
|
@Override
|
||
|
public void readFromNBT(NBTTagCompound tag) {
|
||
|
|
||
|
super.readFromNBT(tag);
|
||
|
tank.writeToNBT(tag);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void writeToNBT(NBTTagCompound tag) {
|
||
|
|
||
|
super.writeToNBT(tag);
|
||
|
tank.readFromNBT(tag);
|
||
|
}
|
||
|
|
||
|
/* IFluidHandler */
|
||
|
@Override
|
||
|
public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
|
||
|
|
||
|
return tank.fill(resource, doFill);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
|
||
|
|
||
|
if (resource == null || !resource.isFluidEqual(tank.getFluid())) {
|
||
|
return null;
|
||
|
}
|
||
|
return tank.drain(resource.amount, doDrain);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) {
|
||
|
|
||
|
return tank.drain(maxDrain, doDrain);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean canFill(ForgeDirection from, Fluid fluid) {
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean canDrain(ForgeDirection from, Fluid fluid) {
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public FluidTankInfo[] getTankInfo(ForgeDirection from) {
|
||
|
|
||
|
return new FluidTankInfo[] { tank.getInfo() };
|
||
|
}
|
||
|
|
||
|
}
|