private void heatOperation(byte type) { ActiveLava fluid = (ActiveLava) tank[1].getFluid().getFluid(); int activeValue = fluid.getActiveValue(tank[1].getFluid()); if (activeValue < ActiveLava.MAX_ACTIVE_VALUE) { activeValue = Math.abs(activeValue); activeValue += type * 25; fluid.setActiveValue(tank[1].getFluid(), activeValue); if (Math.random() < 0.22) decrStackSize(1, 1); } }
private void normalOperation(byte type) { int amount = tank[1].getCapacity() - tank[1].getFluidAmount(); if (amount > FluidContainerRegistry.BUCKET_VOLUME / 10) amount = FluidContainerRegistry.BUCKET_VOLUME / 10; if (amount > 0) { FluidStack fluidStack; FluidStack activeLava; int activeValue; if (tank[0].getFluid().getFluid() == ModFluids.ActiveLava) { fluidStack = tank[0].drain(amount, true); activeLava = new FluidStack(ModFluids.ActiveLava, fluidStack.amount); activeValue = ((ActiveLava) activeLava.getFluid()).getActiveValue(fluidStack); } else { activeValue = tank[0].getFluid().getFluid().getTemperature(); fluidStack = tank[0].drain(amount * 2, true); activeLava = new FluidStack(ModFluids.ActiveLava, fluidStack.amount / 2); } ActiveLava fluid = (ActiveLava) tank[1].getFluid().getFluid(); // activeValue += fluid.getActiveValue(tank[1].getFluid()); activeValue += type * 6; activeValue = Math.abs(activeValue); ((ActiveLava) activeLava.getFluid()).setActiveValue(activeLava, activeValue); tank[1].fill(activeLava, true); if (Math.random() < 0.42) { fluid.increaseActiveValue(tank[1].getFluid()); if (Math.random() < 0.16) decrStackSize(1, 1); } } else { ActiveLava fluid = (ActiveLava) tank[1].getFluid().getFluid(); int activeValue = fluid.getActiveValue(tank[1].getFluid()); activeValue += type * 2; fluid.setActiveValue(tank[1].getFluid(), activeValue); if (Math.random() < 0.22) decrStackSize(1, 1); if (Math.random() < 0.27) heatOperation(type); } }
@Override public void updateEntity() { super.updateEntity(); if (_steamTank.getFluidAmount() > 0) { int amount = Math.min(_steamTank.getFluidAmount(), PowerConverterCore.throttleSteamConsumer); float energy = amount * PowerConverterCore.powerSystemSteam.getInternalEnergyPerInput(); energy = (int) storeEnergy(energy, false); int toDrain = (int) (amount - (energy / PowerConverterCore.powerSystemSteam.getInternalEnergyPerInput())); _steamTank.drain(toDrain, true); _mBLastTick = toDrain; } else { _mBLastTick = 0; } }