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;
    }
  }