generated from tilera/1710mod
76 lines
2.6 KiB
Java
76 lines
2.6 KiB
Java
package covers1624.powerconverters.tile.steam;
|
|
|
|
import covers1624.powerconverters.PowerConverters;
|
|
import covers1624.powerconverters.handler.ConfigurationHandler;
|
|
import covers1624.powerconverters.init.PowerSystems;
|
|
import covers1624.powerconverters.tile.main.TileEntityEnergyConsumer;
|
|
import net.minecraftforge.common.util.ForgeDirection;
|
|
import net.minecraftforge.fluids.Fluid;
|
|
import net.minecraftforge.fluids.FluidStack;
|
|
import net.minecraftforge.fluids.FluidTank;
|
|
import net.minecraftforge.fluids.FluidTankInfo;
|
|
import net.minecraftforge.fluids.IFluidHandler;
|
|
|
|
public class TileEntitySteamConsumer
|
|
extends TileEntityEnergyConsumer implements IFluidHandler {
|
|
private FluidTank _steamTank = new FluidTank(10000);
|
|
private int _mBLastTick;
|
|
|
|
public TileEntitySteamConsumer() {
|
|
super(PowerSystems.powerSystemSteam, 0, IFluidHandler.class);
|
|
}
|
|
|
|
public void updateEntity() {
|
|
super.updateEntity();
|
|
if (this._steamTank != null && this._steamTank.getFluid() != null) {
|
|
int amount = this._steamTank.getFluid().amount;
|
|
double energy
|
|
= (double) (amount * PowerSystems.powerSystemSteam.getScaleAmmount());
|
|
energy = this.storeEnergy(energy, false);
|
|
int toDrain = amount
|
|
- (int) (energy / (double) PowerSystems.powerSystemSteam.getScaleAmmount()
|
|
);
|
|
this._steamTank.drain(toDrain, true);
|
|
this._mBLastTick = toDrain;
|
|
} else {
|
|
this._mBLastTick = 0;
|
|
}
|
|
}
|
|
|
|
public int getVoltageIndex() {
|
|
return 0;
|
|
}
|
|
|
|
public double getInputRate() {
|
|
return (double) this._mBLastTick;
|
|
}
|
|
|
|
public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
|
|
return resource != null && resource.getFluidID() == PowerConverters.steamId
|
|
&& PowerConverters.steamId != -1
|
|
? this._steamTank.fill(resource, doFill)
|
|
: 0;
|
|
}
|
|
|
|
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
|
|
return null;
|
|
}
|
|
|
|
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) {
|
|
return null;
|
|
}
|
|
|
|
public boolean canFill(ForgeDirection from, Fluid fluid) {
|
|
return fluid != null && fluid.getID() == PowerConverters.steamId
|
|
&& !ConfigurationHandler.dissableSteamConsumer;
|
|
}
|
|
|
|
public boolean canDrain(ForgeDirection from, Fluid fluid) {
|
|
return false;
|
|
}
|
|
|
|
public FluidTankInfo[] getTankInfo(ForgeDirection from) {
|
|
return new FluidTankInfo[] { this._steamTank.getInfo() };
|
|
}
|
|
}
|