- 205
- 1
Доброго времени суток! В общем у меня возникла необходимость сделать блок со своим баком(для воды, но это не важно). Ну в принципе работает, но что то явно пошло не так.
В итоге жидкость заполняет хранилище, но FuelCapacity.getFluid() дает результат 0, получение id жидкости null. Что делаю не так?
Код:
public FluidTank FuelCapacity;
public int MaxFuelLevel = FluidContainerRegistry.BUCKET_VOLUME * 10;
public int fuelLevel;
public TileEntityTest(){
super();
this.FuelCapacity = new FluidTank(FluidRegistry.WATER,fuelLevel,MaxFuelLevel);
}
Код:
@Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
int fill = super.fill(from, resource, doFill);
/***
if (canFill(from, resource.getFluid())) {
return FuelCapacity.fill(resource, doFill);
}
return 0;
***/
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
markDirty();
return fill;
}
@Override
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
if ((resource == null) || (!resource.isFluidEqual(FuelCapacity.getFluid()))) {
return null;
}
if (!canDrain(from, resource.getFluid())) {
return null;
}
return FuelCapacity.drain(resource.amount, doDrain);
}
@Override
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) {
//if(maxDrain != 0){
return FuelCapacity.drain(maxDrain, doDrain);
}
@Override
public boolean canFill(ForgeDirection from, Fluid fluid) {
if (FluidRegistry.WATER.getID() == fluid.getID()){
return true;
}
return false;
}
@Override
public boolean canDrain(ForgeDirection from, Fluid fluid) {
return FluidRegistry.WATER.getID() == fluid.getID();
}
@Override
public FluidTankInfo[] getTankInfo(ForgeDirection from) {
return new FluidTankInfo[] { FuelCapacity.getInfo() };
}