@Override
  public void readFromNBT(NBTTagCompound tag) {
    super.readFromNBT(tag);

    boolean formed = tag.getBoolean("formed");

    if (formed) {
      setReactor(new FusionReactor(this));
      getReactor().setPlasmaTemp(tag.getDouble("plasmaTemp"));
      getReactor().setCaseTemp(tag.getDouble("caseTemp"));
      getReactor().setInjectionRate(tag.getInteger("injectionRate"));
      getReactor().setBurning(tag.getBoolean("burning"));
      getReactor().updateTemperatures();
    }

    fuelTank.read(tag.getCompoundTag("fuelTank"));
    deuteriumTank.read(tag.getCompoundTag("deuteriumTank"));
    tritiumTank.read(tag.getCompoundTag("tritiumTank"));
    waterTank.readFromNBT(tag.getCompoundTag("waterTank"));
    steamTank.readFromNBT(tag.getCompoundTag("steamTank"));
  }