Jump to content

[1.7.10] Multiblock Tile Entity Losing Data on Unload


turbodiesel4598

Recommended Posts

Hey there,

 

I have been working on a multiblock reactor, where there are an indefinite number of 3*2*3 (x, y, z) size fusion chambers stacked on top of each other to make the total reactor. Each fusion chamber consists of one Fusion Reactor tile entity with 17 'dummy' tile entities above and around it.

 

My problem is that, unlike my other machines, whenever the player logs out of the world, the contents of the reactor's inventory disappear and the energy, heat etc. go back to 0. In other words, the reactor totally resets as if it had just been placed.

 

Tile Entity:

package com.nr.mod.blocks.tileentities;

import net.minecraft.init.Items;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyConnection;
import cofh.api.energy.IEnergyHandler;
import cofh.api.energy.IEnergyReceiver;

import com.nr.mod.NuclearRelativistics;
import com.nr.mod.blocks.NRBlocks;
import com.nr.mod.items.NRItems;

public class TileEntityFusionReactor extends TileEntityInventory implements IEnergyHandler, IEnergyConnection, ISidedInventory, IEnergyReceiver {

	public int size = 1;
	public boolean isMain = true;
	public int below = 0;

    public EnergyStorage storage = new EnergyStorage(10000000, 10000000);
    public int energy;
    public int EShown;
    
    public int pMult = NuclearRelativistics.fusionRF/5;
    
    public int HLevel;
    public int DLevel;
    public int TLevel;
    public int HeLevel;
    public int BLevel;
    public int Li6Level;
    public int Li7Level;
    public int HLevel2;
    public int DLevel2;
    public int TLevel2;
    public int HeLevel2;
    public int BLevel2;
    public int Li6Level2;
    public int Li7Level2;
    
    public double HOut;
    public double DOut;
    public double TOut;
    public double HE3Out;
    public double HE4Out;
    
    public int Max = 12096000;
    
    public int powerHH = 80*pMult;
    public int powerHD = 60*pMult;
    public int powerHT = 20*pMult;
    public int powerHHe = 20*pMult;
    public int powerHB = 80*pMult;
    public int powerHLi6 = 30*pMult;
    public int powerHLi7 = 120*pMult;
    
    public int powerDD = 180*pMult;
    public int powerDT = 200*pMult;
    public int powerDHe = 160*pMult;
    public int powerDB = 20*pMult;
    public int powerDLi6 = 130*pMult;
    public int powerDLi7 = 10*pMult;
    
    public int powerTT = 60*pMult;
    public int powerTHe = 40*pMult;
    public int powerTB = 10*pMult;
    public int powerTLi6 = 5*pMult;
    public int powerTLi7 = 10*pMult;
    
    public int powerHeHe = 120*pMult;
    public int powerHeB = 5*pMult;
    public int powerHeLi6 = 140*pMult;
    public int powerHeLi7 = 30*pMult;
    
    public int powerBB = 5*pMult;
    public int powerBLi6 = 5*pMult;
    public int powerBLi7 = 5*pMult;
    
    public int powerLi6Li6 = 5*pMult;
    public int powerLi6Li7 = 5*pMult;
    
    public int powerLi7Li7 = 5*pMult;
    
    public int requiredHH = 100;
    public int requiredHD = 100;
    public int requiredHT = 80;
    public int requiredHHe = 40;
    public int requiredHB = 4;
    public int requiredHLi6 = 10;
    public int requiredHLi7 = 20;

    public int requiredDD = 20;
    public int requiredDT = 25;
    public int requiredDHe = 10;
    public int requiredDB = 10;
    public int requiredDLi6 = 100;
    public int requiredDLi7 = 10;
    
    public int requiredTT = 20;
    public int requiredTHe = 16;
    public int requiredTB = 10;
    public int requiredTLi6 = 4;
    public int requiredTLi7 = 4;

    public int requiredHeHe = 25;
    public int requiredHeB = 8;
    public int requiredHeLi6 = 80;
    public int requiredHeLi7 = 20;

    public int requiredBB = 4;
    public int requiredBLi6 = 8;
    public int requiredBLi7 = 4;

    public int requiredLi6Li6 = 2;
    public int requiredLi6Li7 = 4;

    public int requiredLi7Li7 = 2;

    public double maxHeat = 20000;
    public double efficiency = 0;
    public double heatVar = 9;
    public double heat;

    public double heatHH = 8.87;
    public double heatHD = 8.43;
    public double heatHT = 9.65;
    public double heatHHe = 9.68;
    public double heatHB = 9.84;
    public double heatHLi6 = 9.62;
    public double heatHLi7 = 9.64;

    public double heatDD = 9.67;
    public double heatDT = 7.70;
    public double heatDHe = 8.97;
    public double heatDB = 9.89;
    public double heatDLi6 = 9.78;
    public double heatDLi7 = 10.10;

    public double heatTT = 9.46;
    public double heatTHe = 9.73;
    public double heatTB = 10.16;
    public double heatTLi6 = 10.08;
    public double heatTLi7 = 10.01;

    public double heatHeHe = 9.92;
    public double heatHeB = 10.13;
    public double heatHeLi6 = 10.16;
    public double heatHeLi7 = 10.02;

    public double heatBB = 10.12;
    public double heatBLi6 = 10.00;
    public double heatBLi7 = 10.17;

    public double heatLi6Li6 = 10.18;
    public double heatLi6Li7 = 10.16;

    public double heatLi7Li7 = 10.18;
    
    public boolean flag;
    public boolean flag1 = false;
    public int lastE;
    public int E;
    public int maxTransfer = 1000000;
    public String direction;
    
	private static final int[] slotsBottom = new int[] {0, 1};

    public TileEntityFusionReactor() {
        super.slots = new ItemStack[7];
        super.localizedName = "Fusion Reactor";
    }

    public void updateEntity() {
    	super.updateEntity();
    	if(!this.worldObj.isRemote) {
	    	getMain();
	    	setSize(worldObj, xCoord, yCoord, zCoord);
	    	isMain(worldObj, xCoord, yCoord, zCoord);
	    	getBelow(worldObj, xCoord, yCoord, zCoord);
	    	isMain();
	    	energy();
	    	addEnergy();
	    	fuel1();
	    	fuel2();
	    	efficiency();
	    	if (heat < 8 && storage.getEnergyStored() >= 50000) {
	    		this.storage.receiveEnergy(-50000, false);
	    		heat = heat+0.005;
	    	}
	    	if (heat < 0) {
	    		heat = 0;
	    	}
    	}
    	if (flag != flag1) { flag1 = flag; BlockFusionReactor.updateBlockState(worldObj, xCoord, yCoord, zCoord); }
    	markDirty();
    }
    
    public void efficiency() {
    	if (HLevel + DLevel + TLevel + HeLevel + BLevel + Li6Level + Li7Level <= 0 || HLevel2 + DLevel2 + TLevel2 + HeLevel2 + BLevel2 + Li6Level2 + Li7Level2 <= 0) {
    		efficiency = 0;
    	} else if (heat >=  {
    		efficiency = 100*(Math.exp(-Math.pow(Math.log(heat)-heatVar, 2)/2)/(Math.sqrt(2*Math.PI)*heat))/(Math.exp(0.5-heatVar)/(Math.sqrt(2*Math.PI)));
    	} else {
    		efficiency = 0;
    	}
    }
    
    public void setSize(World world, int x, int y, int z) {
    	int oldSize = size;
		size = 1;
		for (int yUp = 1; yUp < 128; ++yUp) {
			if (world.getBlock(x, y + 2*yUp, z) == NRBlocks.fusionReactor) {
				size++;
			} else break;
		}
		if (oldSize != size) {
			powerHH = 80*pMult*size;
		    powerHD = 60*pMult*size;
		    powerHT = 20*pMult*size;
		    powerHHe = 20*pMult*size;
		    powerHB = 80*pMult*size;
		    powerHLi6 = 30*pMult*size;
		    powerHLi7 = 120*pMult*size;
		    
		    powerDD = 180*pMult*size;
		    powerDT = 200*pMult*size;
		    powerDHe = 160*pMult*size;
		    powerDB = 20*pMult*size;
		    powerDLi6 = 130*pMult*size;
		    powerDLi7 = 10*pMult*size;
		    
		    powerTT = 60*pMult*size;
		    powerTHe = 40*pMult*size;
		    powerTB = 10*pMult*size;
		    powerTLi6 = 5*pMult*size;
		    powerTLi7 = 10*pMult*size;
		    
		    powerHeHe = 120*pMult*size;
		    powerHeB = 5*pMult*size;
		    powerHeLi6 = 140*pMult*size;
		    powerHeLi7 = 30*pMult*size;
		    
		    powerBB = 5*pMult*size;
		    powerBLi6 = 5*pMult*size;
		    powerBLi7 = 5*pMult*size;
		    
		    powerLi6Li6 = 5*pMult*size;
		    powerLi6Li7 = 5*pMult*size;
		    
		    powerLi7Li7 = 5*pMult*size;
		    
		    requiredHH = 100*size;
		    requiredHD = 100*size;
		    requiredHT = 80*size;
		    requiredHHe = 40*size;
		    requiredHB = 4*size;
		    requiredHLi6 = 10*size;
		    requiredHLi7 = 20*size;

		    requiredDD = 20*size;
		    requiredDT = 25*size;
		    requiredDHe = 10*size;
		    requiredDB = 10*size;
		    requiredDLi6 = 100*size;
		    requiredDLi7 = 10*size;
		    
		    requiredTT = 20*size;
		    requiredTHe = 16*size;
		    requiredTB = 10*size;
		    requiredTLi6 = 4*size;
		    requiredTLi7 = 4*size;

		    requiredHeHe = 25*size;
		    requiredHeB = 8*size;
		    requiredHeLi6 = 80*size;
		    requiredHeLi7 = 20*size;

		    requiredBB = 4*size;
		    requiredBLi6 = 8*size;
		    requiredBLi7 = 4*size;

		    requiredLi6Li6 = 2*size;
		    requiredLi6Li7 = 4*size;

		    requiredLi7Li7 = 2*size;
		}
	}
    
    public void isMain(World world, int x, int y, int z) {
    	if (world.getBlock(x, y - 2, z) == NRBlocks.fusionReactor) {
    		isMain = false;
    	} else {
    		isMain = true;
    	}
    }
    
    public void getBelow(World world, int x, int y, int z) {
		below = 0;
		for (int yDown = 1; yDown < 128; ++yDown) {
			if (world.getBlock(x, y - 2*yDown, z) == NRBlocks.fusionReactor) {
				below++;
			} else break;
		}
	}
    
    public TileEntityFusionReactor getMain() {
    	if (below != 0) {
    		TileEntityFusionReactor main = (TileEntityFusionReactor)worldObj.getTileEntity(xCoord, yCoord - 2*below, zCoord);
    		return main;
    	} else {
    		return (TileEntityFusionReactor)worldObj.getTileEntity(xCoord, yCoord, zCoord);
    	}
    }
    
    public boolean isMain() {
    	return getMain() != null ? isMain : false;
    }

    private void energy() {
    	int prevE = this.storage.getEnergyStored();
    	int newE;

    	if (!worldObj.isBlockIndirectlyGettingPowered(this.xCoord, this.yCoord, this.zCoord) && heat >= {
    	lastE = storage.getEnergyStored();
    	
    	if (this.HLevel > 0 && this.HLevel2 > 0) {
	    	if (this.HLevel >= (Math.sqrt(efficiency)/10)*this.requiredHH && this.HLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHH)
	    	{this.heatVar = this.heatHH; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHH/100), false); this.HLevel -= (Math.sqrt(efficiency)/10)*this.requiredHH; this.HLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHH; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	if (this.HLevel < (Math.sqrt(efficiency)/10)*this.requiredHH) {this.HLevel = 0;}
	    	if (this.HLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHH) {this.HLevel2 = 0;}
    	}
    	
    	else if (this.HLevel > 0 && this.DLevel2 > 0) {
	    	 if (this.HLevel >= (Math.sqrt(efficiency)/10)*this.requiredHD && this.DLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHD)
	    	{this.heatVar = this.heatHD; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHD/100), false); this.HLevel -= (Math.sqrt(efficiency)/10)*this.requiredHD; this.DLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHD; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HLevel < (Math.sqrt(efficiency)/10)*this.requiredHD) {this.HLevel = 0;}
	    	 if (this.DLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHD) {this.DLevel2 = 0;}
    	}
    	
    	else if (this.DLevel > 0 && this.HLevel2 > 0) {
	    	 if (this.DLevel >= (Math.sqrt(efficiency)/10)*this.requiredHD && this.HLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHD)
	    	{this.heatVar = this.heatHD; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHD/100), false); this.DLevel -= (Math.sqrt(efficiency)/10)*this.requiredHD; this.HLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHD; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.DLevel < (Math.sqrt(efficiency)/10)*this.requiredHD) {this.DLevel = 0;}
	    	 if (this.HLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHD) {this.HLevel2 = 0;}
    	}
	    
    	else if (this.HLevel > 0 && this.TLevel2 > 0) {
	    	 if (this.HLevel >= (Math.sqrt(efficiency)/10)*this.requiredHT && this.TLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHT)
	    	{this.heatVar = this.heatHT; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHT/100), false); this.HLevel -= (Math.sqrt(efficiency)/10)*this.requiredHT; this.TLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHT; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HLevel < (Math.sqrt(efficiency)/10)*this.requiredHT) {this.HLevel = 0;}
	    	 if (this.TLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHT) {this.TLevel2 = 0;}
    	}
	    
    	else if (this.TLevel > 0 && this.HLevel2 > 0) {
	    	 if (this.TLevel >= (Math.sqrt(efficiency)/10)*this.requiredHT && this.HLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHT)
	    	{this.heatVar = this.heatHT; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHT/100), false); this.TLevel -= (Math.sqrt(efficiency)/10)*this.requiredHT; this.HLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHT; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.TLevel < (Math.sqrt(efficiency)/10)*this.requiredHT) {this.TLevel = 0;}
	    	 if (this.HLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHT) {this.HLevel2 = 0;}
    	}
    	
    	else if (this.HLevel > 0 && this.HeLevel2 > 0) {
	    	 if (this.HLevel >= (Math.sqrt(efficiency)/10)*this.requiredHHe && this.HeLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHHe)
	    	{this.heatVar = this.heatHHe; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHHe/100), false); this.HLevel -= (Math.sqrt(efficiency)/10)*this.requiredHHe; this.HeLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHHe; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HLevel < (Math.sqrt(efficiency)/10)*this.requiredHHe) {this.HLevel = 0;}
	    	 if (this.HeLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHHe) {this.HeLevel2 = 0;}
    	}
    	
    	else if (this.HeLevel > 0 && this.HLevel2 > 0) {
	    	 if (this.HeLevel >= (Math.sqrt(efficiency)/10)*this.requiredHHe && this.HLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHHe)
	    	{this.heatVar = this.heatHHe; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHHe/100), false); this.HeLevel -= (Math.sqrt(efficiency)/10)*this.requiredHHe; this.HLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHHe; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HeLevel < (Math.sqrt(efficiency)/10)*this.requiredHHe) {this.HeLevel = 0;}
	    	 if (this.HLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHHe) {this.HLevel2 = 0;}
    	}
    	
    	else if (this.HLevel > 0 && this.BLevel2 > 0) {
	    	 if (this.HLevel >= (Math.sqrt(efficiency)/10)*this.requiredHB && this.BLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHB)
	    	{this.heatVar = this.heatHB; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHB/100), false); this.HLevel -= (Math.sqrt(efficiency)/10)*this.requiredHB; this.BLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHB; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HLevel < (Math.sqrt(efficiency)/10)*this.requiredHB) {this.HLevel = 0;}
	    	 if (this.BLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHB) {this.BLevel2 = 0;}
    	}
    	
    	else if (this.BLevel > 0 && this.HLevel2 > 0) {
	    	 if (this.BLevel >= (Math.sqrt(efficiency)/10)*this.requiredHB && this.HLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHB)
	    	{this.heatVar = this.heatHB; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHB/100), false); this.BLevel -= (Math.sqrt(efficiency)/10)*this.requiredHB; this.HLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHB; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.BLevel < (Math.sqrt(efficiency)/10)*this.requiredHB) {this.BLevel = 0;}
	    	 if (this.HLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHB) {this.HLevel2 = 0;}
    	}
    	
    	else if (this.HLevel > 0 && this.Li6Level2 > 0) {
	    	 if (this.HLevel >= (Math.sqrt(efficiency)/10)*this.requiredHLi6 && this.Li6Level2 >= (Math.sqrt(efficiency)/10)*this.requiredHLi6)
	    	{this.heatVar = this.heatHLi6; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHLi6/100), false); this.HLevel -= (Math.sqrt(efficiency)/10)*this.requiredHLi6; this.Li6Level2 -= (Math.sqrt(efficiency)/10)*this.requiredHLi6; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HLevel < (Math.sqrt(efficiency)/10)*this.requiredHLi6) {this.HLevel = 0;}
	    	 if (this.Li6Level2 < (Math.sqrt(efficiency)/10)*this.requiredHLi6) {this.Li6Level2 = 0;}
    	}
    	
    	else if (this.Li6Level > 0 && this.HLevel2 > 0) {
	    	 if (this.Li6Level >= (Math.sqrt(efficiency)/10)*this.requiredHLi6 && this.HLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHLi6)
	    	{this.heatVar = this.heatHLi6; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHLi6/100), false); this.Li6Level -= (Math.sqrt(efficiency)/10)*this.requiredHLi6; this.HLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHLi6; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li6Level < (Math.sqrt(efficiency)/10)*this.requiredHLi6) {this.Li6Level = 0;}
	    	 if (this.HLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHLi6) {this.HLevel2 = 0;}
    	}
    	
    	else if (this.HLevel > 0 && this.Li7Level2 > 0) {
	    	 if (this.HLevel >= (Math.sqrt(efficiency)/10)*this.requiredHLi7 && this.Li7Level2 >= (Math.sqrt(efficiency)/10)*this.requiredHLi7)
	    	{this.heatVar = this.heatHLi7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHLi7/100), false); this.HLevel -= (Math.sqrt(efficiency)/10)*this.requiredHLi7; this.Li7Level2 -= (Math.sqrt(efficiency)/10)*this.requiredHLi7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HLevel < (Math.sqrt(efficiency)/10)*this.requiredHH) {this.HLevel = 0;}
	    	 if (this.Li7Level2 < (Math.sqrt(efficiency)/10)*this.requiredHH) {this.Li7Level2 = 0;}
    	}
    	
    	else if (this.Li7Level > 0 && this.HLevel2 > 0) {
	    	 if (this.Li7Level >= (Math.sqrt(efficiency)/10)*this.requiredHLi7 && this.HLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHLi7)
	    	{this.heatVar = this.heatHLi7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHLi7/100), false); this.Li7Level -= (Math.sqrt(efficiency)/10)*this.requiredHLi7; this.HLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHLi7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li7Level < (Math.sqrt(efficiency)/10)*this.requiredHLi7) {this.Li7Level = 0;}
	    	 if (this.HLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHLi7) {this.HLevel2 = 0;}
    	}
    	
	    	//
	    	
    	else if (this.DLevel > 0 && this.DLevel2 > 0) {
	    	 if (this.DLevel >= (Math.sqrt(efficiency)/10)*this.requiredDD && this.DLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredDD)
	    	{this.heatVar = this.heatDD; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerDD/100), false); this.DLevel -= (Math.sqrt(efficiency)/10)*this.requiredDD; this.DLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredDD; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.DLevel < (Math.sqrt(efficiency)/10)*this.requiredHLi7) {this.DLevel = 0;}
	    	 if (this.DLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHLi7) {this.DLevel2 = 0;}
    	}
    	
    	else if (this.DLevel > 0 && this.TLevel2 > 0) {
	    	 if (this.DLevel >= (Math.sqrt(efficiency)/10)*this.requiredDT && this.TLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredDT)
	    	{this.heatVar = this.heatDT; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerDT/100), false); this.DLevel -= (Math.sqrt(efficiency)/10)*this.requiredDT; this.TLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredDT; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.DLevel < (Math.sqrt(efficiency)/10)*this.requiredDT) {this.DLevel = 0;}
	    	 if (this.TLevel2 < (Math.sqrt(efficiency)/10)*this.requiredDT) {this.TLevel2 = 0;}
    	}
    	
    	else if (this.TLevel > 0 && this.DLevel2 > 0) {
	    	 if (this.TLevel >= (Math.sqrt(efficiency)/10)*this.requiredDT && this.DLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredDT)
	    	{this.heatVar = this.heatDT; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerDT/100), false); this.TLevel -= (Math.sqrt(efficiency)/10)*this.requiredDT; this.DLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredDT; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.TLevel < (Math.sqrt(efficiency)/10)*this.requiredDT) {this.TLevel = 0;}
	    	 if (this.DLevel2 < (Math.sqrt(efficiency)/10)*this.requiredDT) {this.DLevel2 = 0;}
    	}
    	
    	else if (this.DLevel > 0 && this.HeLevel2 > 0) {
	    	 if (this.DLevel >= (Math.sqrt(efficiency)/10)*this.requiredDHe && this.HeLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredDHe)
	    	{this.heatVar = this.heatDHe; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerDHe/100), false); this.DLevel -= (Math.sqrt(efficiency)/10)*this.requiredDHe; this.HeLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredDHe; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.DLevel < (Math.sqrt(efficiency)/10)*this.requiredDHe) {this.DLevel = 0;}
	    	 if (this.HeLevel2 < (Math.sqrt(efficiency)/10)*this.requiredDHe) {this.HeLevel2 = 0;}
    	}
    	
    	else if (this.HeLevel > 0 && this.DLevel2 > 0) {
	    	 if (this.HeLevel >= (Math.sqrt(efficiency)/10)*this.requiredDHe && this.DLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredDHe)
	    	{this.heatVar = this.heatDHe; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerDHe/100), false); this.HeLevel -= (Math.sqrt(efficiency)/10)*this.requiredDHe; this.DLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredDHe; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HeLevel < (Math.sqrt(efficiency)/10)*this.requiredDHe) {this.HeLevel = 0;}
	    	 if (this.DLevel2 < (Math.sqrt(efficiency)/10)*this.requiredDHe) {this.DLevel2 = 0;}
    	}
    	
    	else if (this.DLevel > 0 && this.BLevel2 > 0) {
	    	 if (this.DLevel >= (Math.sqrt(efficiency)/10)*this.requiredDB && this.BLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredDB)
	    	{this.heatVar = this.heatDB; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerDB/100), false); this.DLevel -= (Math.sqrt(efficiency)/10)*this.requiredDB; this.BLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredDB; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.DLevel < (Math.sqrt(efficiency)/10)*this.requiredDB) {this.DLevel = 0;}
	    	 if (this.BLevel2 < (Math.sqrt(efficiency)/10)*this.requiredDB) {this.BLevel2 = 0;}
    	}
    	
    	else if (this.BLevel > 0 && this.DLevel2 > 0) {
	    	 if (this.BLevel >= (Math.sqrt(efficiency)/10)*this.requiredDB && this.DLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredDB)
	    	{this.heatVar = this.heatDB; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerDB/100), false); this.BLevel -= (Math.sqrt(efficiency)/10)*this.requiredDB; this.DLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredDB; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.BLevel < (Math.sqrt(efficiency)/10)*this.requiredDB) {this.BLevel = 0;}
	    	 if (this.DLevel2 < (Math.sqrt(efficiency)/10)*this.requiredDB) {this.DLevel2 = 0;}
    	}
    	
    	else if (this.DLevel > 0 && this.Li6Level2 > 0) {
	    	 if (this.DLevel >= (Math.sqrt(efficiency)/10)*this.requiredDLi6 && this.Li6Level2 >= (Math.sqrt(efficiency)/10)*this.requiredDLi6)
	    	{this.heatVar = this.heatDLi6; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerDLi6/100), false); this.DLevel -= (Math.sqrt(efficiency)/10)*this.requiredDLi6; this.Li6Level2 -= (Math.sqrt(efficiency)/10)*this.requiredDLi6; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.DLevel < (Math.sqrt(efficiency)/10)*this.requiredDLi6) {this.DLevel = 0;}
	    	 if (this.Li6Level2 < (Math.sqrt(efficiency)/10)*this.requiredDLi6) {this.Li6Level2 = 0;}
    	}
    	
    	else if (this.Li6Level > 0 && this.DLevel2 > 0) {
	    	 if (this.Li6Level >= (Math.sqrt(efficiency)/10)*this.requiredDLi6 && this.DLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredDLi6)
	    	{this.heatVar = this.heatDLi6; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerDLi6/100), false); this.Li6Level -= (Math.sqrt(efficiency)/10)*this.requiredDLi6; this.DLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredDLi6; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li6Level < (Math.sqrt(efficiency)/10)*this.requiredDLi6) {this.Li6Level = 0;}
	    	 if (this.DLevel2 < (Math.sqrt(efficiency)/10)*this.requiredDLi6) {this.DLevel2 = 0;}
    	}
    	
    	else if (this.DLevel > 0 && this.Li7Level2 > 0) {
	    	 if (this.DLevel >= (Math.sqrt(efficiency)/10)*this.requiredDLi7 && this.Li7Level2 >= (Math.sqrt(efficiency)/10)*this.requiredDLi7)
	    	{this.heatVar = this.heatDLi7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerDLi7/100), false); this.DLevel -= (Math.sqrt(efficiency)/10)*this.requiredDLi7; this.Li7Level2 -= (Math.sqrt(efficiency)/10)*this.requiredDLi7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.DLevel < (Math.sqrt(efficiency)/10)*this.requiredDLi7) {this.DLevel = 0;}
	    	 if (this.Li7Level2 < (Math.sqrt(efficiency)/10)*this.requiredDLi7) {this.Li7Level2 = 0;}
    	}
    	
    	else if (this.Li7Level > 0 && this.DLevel2 > 0) {
	    	 if (this.Li7Level >= (Math.sqrt(efficiency)/10)*this.requiredDLi7 && this.DLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredDLi7)
	    	{this.heatVar = this.heatDLi7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerDLi7/100), false); this.Li7Level -= (Math.sqrt(efficiency)/10)*this.requiredDLi7; this.DLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredDLi7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li7Level < (Math.sqrt(efficiency)/10)*this.requiredDLi7) {this.Li7Level = 0;}
	    	 if (this.DLevel2 < (Math.sqrt(efficiency)/10)*this.requiredDLi7) {this.DLevel2 = 0;}
    	}
    	
	    	//
	    	
    	else if (this.TLevel > 0 && this.TLevel2 > 0) {
	    	 if (this.TLevel >= (Math.sqrt(efficiency)/10)*this.requiredTT && this.TLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredTT)
	    	{this.heatVar = this.heatTT; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerTT/100), false); this.TLevel -= (Math.sqrt(efficiency)/10)*this.requiredTT; this.TLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredTT; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.TLevel < (Math.sqrt(efficiency)/10)*this.requiredTT) {this.TLevel = 0;}
	    	 if (this.TLevel2 < (Math.sqrt(efficiency)/10)*this.requiredTT) {this.TLevel2 = 0;}
    	}
    	
    	else if (this.TLevel > 0 && this.HeLevel2 > 0) {
	    	 if (this.TLevel >= (Math.sqrt(efficiency)/10)*this.requiredTHe && this.HeLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredTHe)
	    	{this.heatVar = this.heatTHe; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerTHe/100), false); this.TLevel -= (Math.sqrt(efficiency)/10)*this.requiredTHe; this.HeLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredTHe; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.TLevel < (Math.sqrt(efficiency)/10)*this.requiredTHe) {this.TLevel = 0;}
	    	 if (this.HeLevel2 < (Math.sqrt(efficiency)/10)*this.requiredTHe) {this.HeLevel2 = 0;}
    	}
    	
    	else if (this.HeLevel > 0 && this.TLevel2 > 0) {
	    	 if (this.HeLevel >= (Math.sqrt(efficiency)/10)*this.requiredTHe && this.TLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredTHe)
	    	{this.heatVar = this.heatTHe; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerTHe/100), false); this.HeLevel -= (Math.sqrt(efficiency)/10)*this.requiredTHe; this.TLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredTHe; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HeLevel < (Math.sqrt(efficiency)/10)*this.requiredTHe) {this.HeLevel = 0;}
	    	 if (this.TLevel2 < (Math.sqrt(efficiency)/10)*this.requiredTHe) {this.TLevel2 = 0;}
    	}
    	
    	else if (this.TLevel > 0 && this.BLevel2 > 0) {
	    	 if (this.TLevel >= (Math.sqrt(efficiency)/10)*this.requiredTB && this.BLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredTB)
	    	{this.heatVar = this.heatTB; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerTB/100), false); this.TLevel -= (Math.sqrt(efficiency)/10)*this.requiredTB; this.BLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredTB; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.TLevel < (Math.sqrt(efficiency)/10)*this.requiredTB) {this.TLevel = 0;}
	    	 if (this.BLevel2 < (Math.sqrt(efficiency)/10)*this.requiredTB) {this.BLevel2 = 0;}
    	}
    	
    	else if (this.BLevel > 0 && this.TLevel2 > 0) {
	    	 if (this.BLevel >= (Math.sqrt(efficiency)/10)*this.requiredTB && this.TLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredTB)
	    	{this.heatVar = this.heatTB; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerTB/100), false); this.BLevel -= (Math.sqrt(efficiency)/10)*this.requiredTB; this.TLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredTB; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.BLevel < (Math.sqrt(efficiency)/10)*this.requiredTB) {this.BLevel = 0;}
	    	 if (this.TLevel2 < (Math.sqrt(efficiency)/10)*this.requiredTB) {this.TLevel2 = 0;}
    	}
    	
    	else if (this.TLevel > 0 && this.Li6Level2 > 0) {
	    	 if (this.TLevel >= (Math.sqrt(efficiency)/10)*this.requiredTLi6 && this.Li6Level2 >= (Math.sqrt(efficiency)/10)*this.requiredTLi6)
	    	{this.heatVar = this.heatTLi6; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerTLi6/100), false); this.TLevel -= (Math.sqrt(efficiency)/10)*this.requiredTLi6; this.Li6Level2 -= (Math.sqrt(efficiency)/10)*this.requiredTLi6; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.TLevel < (Math.sqrt(efficiency)/10)*this.requiredTLi6) {this.TLevel = 0;}
	    	 if (this.Li6Level2 < (Math.sqrt(efficiency)/10)*this.requiredTLi6) {this.Li6Level2 = 0;}
    	}
    	
    	else if (this.Li6Level > 0 && this.TLevel2 > 0) {
	    	 if (this.Li6Level >= (Math.sqrt(efficiency)/10)*this.requiredTLi6 && this.TLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredTLi6)
	    	{this.heatVar = this.heatTLi6; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerTLi6/100), false); this.Li6Level -= (Math.sqrt(efficiency)/10)*this.requiredTLi6; this.TLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredTLi6; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li6Level < (Math.sqrt(efficiency)/10)*this.requiredTLi6) {this.Li6Level = 0;}
	    	 if (this.TLevel2 < (Math.sqrt(efficiency)/10)*this.requiredTLi6) {this.TLevel2 = 0;}
    	}
    	
    	else if (this.TLevel > 0 && this.Li7Level2 > 0) {
	    	 if (this.TLevel >= (Math.sqrt(efficiency)/10)*this.requiredTLi7 && this.Li7Level2 >= (Math.sqrt(efficiency)/10)*this.requiredTLi7)
	    	{this.heatVar = this.heatTLi7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerTLi7/100), false); this.TLevel -= (Math.sqrt(efficiency)/10)*this.requiredTLi7; this.Li7Level2 -= (Math.sqrt(efficiency)/10)*this.requiredTLi7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.TLevel < (Math.sqrt(efficiency)/10)*this.requiredTLi7) {this.TLevel = 0;}
	    	 if (this.Li7Level2 < (Math.sqrt(efficiency)/10)*this.requiredTLi7) {this.Li7Level2 = 0;}
    	}
    	
    	else if (this.Li7Level > 0 && this.TLevel2 > 0) {
	    	 if (this.Li7Level >= (Math.sqrt(efficiency)/10)*this.requiredTLi7 && this.TLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredTLi7)
	    	{this.heatVar = this.heatTLi7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerTLi7/100), false); this.Li7Level -= (Math.sqrt(efficiency)/10)*this.requiredTLi7; this.TLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredTLi7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li7Level < (Math.sqrt(efficiency)/10)*this.requiredTLi7) {this.Li7Level = 0;}
	    	 if (this.TLevel2 < (Math.sqrt(efficiency)/10)*this.requiredTLi7) {this.TLevel2 = 0;}
    	}
    	
	    	//
	    	
    	else if (this.HeLevel > 0 && this.HeLevel2 > 0) {
	    	 if (this.HeLevel >= (Math.sqrt(efficiency)/10)*this.requiredHeHe && this.HeLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHeHe)
	    	{this.heatVar = this.heatHeHe; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHeHe/100), false); this.HeLevel -= (Math.sqrt(efficiency)/10)*this.requiredHeHe; this.HeLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHeHe; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HeLevel < (Math.sqrt(efficiency)/10)*this.requiredHeHe) {this.HeLevel = 0;}
	    	 if (this.HeLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHeHe) {this.HeLevel2 = 0;}
    	}
    	
    	else if (this.HeLevel > 0 && this.BLevel2 > 0) {
	    	 if (this.HeLevel >= (Math.sqrt(efficiency)/10)*this.requiredHeB && this.BLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHeB)
	    	{this.heatVar = this.heatHeB; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHeB/100), false); this.HeLevel -= (Math.sqrt(efficiency)/10)*this.requiredHeB; this.BLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHeB; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HeLevel < (Math.sqrt(efficiency)/10)*this.requiredHeB) {this.HeLevel = 0;}
	    	 if (this.BLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHeB) {this.BLevel2 = 0;}
    	}
    	
    	else if (this.BLevel > 0 && this.HeLevel2 > 0) {
	    	 if (this.BLevel >= (Math.sqrt(efficiency)/10)*this.requiredHeB && this.HeLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHeB)
	    	{this.heatVar = this.heatHeB; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHeB/100), false); this.BLevel -= (Math.sqrt(efficiency)/10)*this.requiredHeB; this.HeLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHeB; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.BLevel < (Math.sqrt(efficiency)/10)*this.requiredHeB) {this.BLevel = 0;}
	    	 if (this.HeLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHeB) {this.HeLevel2 = 0;}
    	}
    	
    	else if (this.HeLevel > 0 && this.Li6Level2 > 0) {
	    	 if (this.HeLevel >= (Math.sqrt(efficiency)/10)*this.requiredHeLi6 && this.Li6Level2 >= (Math.sqrt(efficiency)/10)*this.requiredHeLi6)
	    	{this.heatVar = this.heatHeLi6; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHeLi6/100), false); this.HeLevel -= (Math.sqrt(efficiency)/10)*this.requiredHeLi6; this.Li6Level2 -= (Math.sqrt(efficiency)/10)*this.requiredHeLi6; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HeLevel < (Math.sqrt(efficiency)/10)*this.requiredHeLi6) {this.HeLevel = 0;}
	    	 if (this.Li6Level2 < (Math.sqrt(efficiency)/10)*this.requiredHeLi6) {this.Li6Level2 = 0;}
    	}
    	
    	else if (this.Li6Level > 0 && this.HeLevel2 > 0) {
	    	 if (this.Li6Level >= (Math.sqrt(efficiency)/10)*this.requiredHeLi6 && this.HeLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHeLi6)
	    	{this.heatVar = this.heatHeLi6; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHeLi6/100), false); this.Li6Level -= (Math.sqrt(efficiency)/10)*this.requiredHeLi6; this.HeLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHeLi6; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li6Level < (Math.sqrt(efficiency)/10)*this.requiredHeLi6) {this.Li6Level = 0;}
	    	 if (this.HeLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHeLi6) {this.HeLevel2 = 0;}
    	}
    	
    	else if (this.HeLevel > 0 && this.Li7Level2 > 0) {
	    	 if (this.HeLevel >= (Math.sqrt(efficiency)/10)*this.requiredHeLi7 && this.Li7Level2 >= (Math.sqrt(efficiency)/10)*this.requiredHeLi7)
	    	{this.heatVar = this.heatHeLi7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHeLi7/100), false); this.HeLevel -= (Math.sqrt(efficiency)/10)*this.requiredHeLi7; this.Li7Level2 -= (Math.sqrt(efficiency)/10)*this.requiredHeLi7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.HeLevel < (Math.sqrt(efficiency)/10)*this.requiredHeLi7) {this.HeLevel = 0;}
	    	 if (this.Li7Level2 < (Math.sqrt(efficiency)/10)*this.requiredHeLi7) {this.Li7Level2 = 0;}
    	}
    	
    	else if (this.Li7Level > 0 && this.HeLevel2 > 0) {
	    	 if (this.Li7Level >= (Math.sqrt(efficiency)/10)*this.requiredHeLi7 && this.HeLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredHeLi7)
	    	{this.heatVar = this.heatHeLi7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerHeLi7/100), false); this.Li7Level -= (Math.sqrt(efficiency)/10)*this.requiredHeLi7; this.HeLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredHeLi7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li7Level < (Math.sqrt(efficiency)/10)*this.requiredHeLi7) {this.Li7Level = 0;}
	    	 if (this.HeLevel2 < (Math.sqrt(efficiency)/10)*this.requiredHeLi7) {this.HeLevel2 = 0;}
    	}
    	
	    	//
	    	
    	else if (this.BLevel > 0 && this.BLevel2 > 0) {
	    	 if (this.BLevel >= (Math.sqrt(efficiency)/10)*this.requiredBB && this.BLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredBB)
	    	{this.heatVar = this.heatBB; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerBB/100), false); this.BLevel -= (Math.sqrt(efficiency)/10)*this.requiredBB; this.BLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredBB; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.BLevel < (Math.sqrt(efficiency)/10)*this.requiredBB) {this.BLevel = 0;}
	    	 if (this.BLevel2 < (Math.sqrt(efficiency)/10)*this.requiredBB) {this.BLevel2 = 0;}
    	}
    	
    	else if (this.BLevel > 0 && this.Li6Level2 > 0) {
	    	 if (this.BLevel >= (Math.sqrt(efficiency)/10)*this.requiredBLi6 && this.Li6Level2 >= (Math.sqrt(efficiency)/10)*this.requiredBLi6)
	    	{this.heatVar = this.heatBLi6; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerBLi6/100), false); this.BLevel -= (Math.sqrt(efficiency)/10)*this.requiredBLi6; this.Li6Level2 -= (Math.sqrt(efficiency)/10)*this.requiredBLi6; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.BLevel < (Math.sqrt(efficiency)/10)*this.requiredBLi6) {this.BLevel = 0;}
	    	 if (this.Li6Level2 < (Math.sqrt(efficiency)/10)*this.requiredBLi6) {this.Li6Level2 = 0;}
    	}
    	
    	else if (this.Li6Level > 0 && this.BLevel2 > 0) {
	    	 if (this.Li6Level >= (Math.sqrt(efficiency)/10)*this.requiredBLi6 && this.BLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredBLi6)
	    	{this.heatVar = this.heatBLi6; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerBLi6/100), false); this.Li6Level -= (Math.sqrt(efficiency)/10)*this.requiredBLi6; this.BLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredBLi6; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li6Level < (Math.sqrt(efficiency)/10)*this.requiredBLi6) {this.Li6Level = 0;}
	    	 if (this.BLevel2 < (Math.sqrt(efficiency)/10)*this.requiredBLi6) {this.BLevel2 = 0;}
    	}
    	
    	else if (this.BLevel > 0 && this.Li7Level2 > 0) {
	    	 if (this.BLevel >= (Math.sqrt(efficiency)/10)*this.requiredBLi7 && this.Li7Level2 >= (Math.sqrt(efficiency)/10)*this.requiredBLi7)
	    	{this.heatVar = this.heatBLi7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerBLi7/100), false); this.BLevel -= (Math.sqrt(efficiency)/10)*this.requiredBLi7; this.Li7Level2 -= (Math.sqrt(efficiency)/10)*this.requiredBLi7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.BLevel < (Math.sqrt(efficiency)/10)*this.requiredBLi7) {this.BLevel = 0;}
	    	 if (this.Li7Level2 < (Math.sqrt(efficiency)/10)*this.requiredBLi7) {this.Li7Level2 = 0;}
    	}
    	
    	else if (this.Li7Level > 0 && this.BLevel2 > 0) {
	    	 if (this.Li7Level >= (Math.sqrt(efficiency)/10)*this.requiredBLi7 && this.BLevel2 >= (Math.sqrt(efficiency)/10)*this.requiredBLi7)
	    	{this.heatVar = this.heatBLi7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerBLi7/100), false); this.Li7Level -= (Math.sqrt(efficiency)/10)*this.requiredBLi7; this.BLevel2 -= (Math.sqrt(efficiency)/10)*this.requiredBLi7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li7Level < (Math.sqrt(efficiency)/10)*this.requiredBLi7) {this.Li7Level = 0;}
	    	 if (this.BLevel2 < (Math.sqrt(efficiency)/10)*this.requiredBLi7) {this.BLevel2 = 0;}
    	}
    	
	    	//
	    	
    	else if (this.Li6Level > 0 && this.Li6Level2 > 0) {
	    	 if (this.Li6Level >= (Math.sqrt(efficiency)/10)*this.requiredLi6Li6 && this.Li6Level2 >= (Math.sqrt(efficiency)/10)*this.requiredLi6Li6)
	    	{this.heatVar = this.heatLi6Li6; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerLi6Li6/100), false); this.Li6Level -= (Math.sqrt(efficiency)/10)*this.requiredLi6Li6; this.Li6Level2 -= (Math.sqrt(efficiency)/10)*this.requiredLi6Li6; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li6Level < (Math.sqrt(efficiency)/10)*this.requiredLi6Li6) {this.Li6Level = 0;}
	    	 if (this.Li6Level2 < (Math.sqrt(efficiency)/10)*this.requiredLi6Li6) {this.Li6Level2 = 0;}
    	}
    	
    	else if (this.Li6Level > 0 && this.Li7Level2 > 0) {
	    	 if (this.Li6Level >= (Math.sqrt(efficiency)/10)*this.requiredLi6Li7 && this.Li7Level2 >= (Math.sqrt(efficiency)/10)*this.requiredLi6Li7)
	    	{this.heatVar = this.heatLi6Li7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerLi6Li7/100), false); this.Li6Level -= (Math.sqrt(efficiency)/10)*this.requiredLi6Li7; this.Li7Level2 -= (Math.sqrt(efficiency)/10)*this.requiredLi6Li7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li6Level < (Math.sqrt(efficiency)/10)*this.requiredLi6Li7) {this.Li6Level = 0;}
	    	 if (this.Li7Level2 < (Math.sqrt(efficiency)/10)*this.requiredLi6Li7) {this.Li7Level2 = 0;}
    	}
    	
    	else if (this.Li7Level > 0 && this.Li6Level2 > 0) {
	    	 if (this.Li7Level >= (Math.sqrt(efficiency)/10)*this.requiredLi6Li7 && this.Li6Level2 >= (Math.sqrt(efficiency)/10)*this.requiredLi6Li7)
	    	{this.heatVar = this.heatLi6Li7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerLi6Li7/100), false); this.Li7Level -= (Math.sqrt(efficiency)/10)*this.requiredLi6Li7; this.Li6Level2 -= (Math.sqrt(efficiency)/10)*this.requiredLi6Li7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li7Level < (Math.sqrt(efficiency)/10)*this.requiredLi6Li7) {this.Li7Level = 0;}
	    	 if (this.Li6Level2 < (Math.sqrt(efficiency)/10)*this.requiredLi6Li7) {this.Li6Level2 = 0;}
    	}
    	
	    	//
	    	
    	else if (this.Li7Level > 0 && this.Li7Level2 > 0) {
	    	 if (this.Li7Level >= (Math.sqrt(efficiency)/10)*this.requiredLi7Li7 && this.Li7Level2 >= (Math.sqrt(efficiency)/10)*this.requiredLi7Li7)
	    	{this.heatVar = this.heatLi7Li7; this.storage.receiveEnergy((int) (Math.cbrt(efficiency+1)*efficiency*this.powerLi7Li7/100), false); this.Li7Level -= (Math.sqrt(efficiency)/10)*this.requiredLi7Li7; this.Li7Level2 -= (Math.sqrt(efficiency)/10)*this.requiredLi7Li7; heat += (100-(efficiency*(heat/20000)))/2000; flag = true;}
	    	 if (this.Li7Level < (Math.sqrt(efficiency)/10)*this.requiredLi7Li7) {this.Li7Level = 0;}
	    	 if (this.Li7Level2 < (Math.sqrt(efficiency)/10)*this.requiredLi7Li7) {this.Li7Level2 = 0;}
    	}
    	
	    	//
    	
    	else {
    		flag = false;
    		if (heat >= 8 && heat >= (0.0003*heat*Math.log10(heat+1))) {
    			heat = heat-(0.0003*heat*Math.log10(heat+1));
    		}
    	}
    	E = storage.getEnergyStored();
    	if (E != lastE) { BlockFusionReactor.updateBlockState(this.worldObj, this.xCoord, this.yCoord, this.zCoord); }
    	
    	} else {
    		if (heat >= 8 && heat >= (0.0003*heat*Math.log10(heat+1))) {
    			heat = heat-(0.0003*heat*Math.log10(heat+1));
    		}
    	}
    	
    	newE = this.storage.getEnergyStored();
          	EShown = newE-prevE;
          	prevE = newE;
          	
          	if (HLevel + DLevel + TLevel + HeLevel + BLevel + Li6Level + Li7Level == 0 || HLevel2 + DLevel2 + TLevel2 + HeLevel2 + BLevel2 + Li6Level2 + Li7Level2 == 0) {EShown = 0;}
          	
          	if (HLevel + DLevel + TLevel + HeLevel + BLevel + Li6Level + Li7Level <= 0) {HLevel=0; DLevel=0; TLevel=0; HeLevel=0; BLevel=0; Li6Level=0; Li7Level=0;}
          	if (HLevel2 + DLevel2 + TLevel2 + HeLevel2 + BLevel2 + Li6Level2 + Li7Level2 <= 0) {HLevel2=0; DLevel2=0; TLevel2=0; HeLevel2=0; BLevel2=0; Li6Level2=0; Li7Level2=0;}
    }

	private void addEnergy() {
			lastE = storage.getEnergyStored();
			if (heat >=  {
			for (ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) {
				for (int x = -1; x < 2; ++x) {
					for (int y = (0 - 2*below); y < (2 + 2*(size-1)); ++y) {
						for (int z = -1; z < 2; ++z) {

							TileEntity tile = this.worldObj.getTileEntity(xCoord + side.offsetX + x, yCoord + side.offsetY + y, zCoord + side.offsetZ + z);

							if (!(tile instanceof TileEntityFissionReactorGraphite) && !(tile instanceof TileEntityReactionGenerator) && !(tile instanceof TileEntityRTG) && !(tile instanceof TileEntityFusionReactor))
							{
								if ((tile instanceof IEnergyHandler)) {
									storage.extractEnergy(((IEnergyHandler)tile).receiveEnergy(side.getOpposite(), storage.extractEnergy(storage.getMaxEnergyStored(), true), false), false);
								}
							}
						}
					}
				}
			}}
			E = storage.getEnergyStored();
			if (E != lastE) {
				BlockFusionReactor.updateBlockState(this.worldObj, this.xCoord, this.yCoord, this.zCoord);
			}
	}

    @SuppressWarnings("unused")
	private boolean canAddEnergy()
    {
        return getMain() != null ? (isMain() ? (this.storage.getEnergyStored() == 0 ? false : this.direction != "none") : getMain().canAddEnergy()) : false;
    }
    
    public String getInventoryName()
	{
		return "Fusion Reactor";
	}

	public boolean isInventoryNameLocalized()
	{
		return false;
	}

    private void fuel1() {
    	if (getMain() != null) {
    	if (isMain()) {
        ItemStack stack = this.getStackInSlot(1);
        if (stack != null && isHFuel(stack) && this.HLevel() + HFuelValue(stack) <= this.Max && this.DLevel() <= 0 && this.TLevel() <= 0 && this.HeLevel() <= 0 && this.BLevel() <= 0 && this.Li6Level() <= 0 && this.Li7Level() <= 0)
        {
            this.addH(fuelValue(stack)); --this.slots[1].stackSize;
            if (this.slots[1].stackSize <= 0) {this.slots[1] = null;}
        }
        else if (stack != null && isDFuel(stack) && this.DLevel() + DFuelValue(stack) <= this.Max && this.HLevel() <= 0 && this.TLevel() <= 0 && this.HeLevel() <= 0 && this.BLevel() <= 0 && this.Li6Level() <= 0 && this.Li7Level() <= 0)
        {
            this.addD(fuelValue(stack)); --this.slots[1].stackSize;
            if (this.slots[1].stackSize <= 0) {this.slots[1] = null;}
        }
        else if (stack != null && isTFuel(stack) && this.TLevel() + TFuelValue(stack) <= this.Max && this.HLevel() <= 0 && this.DLevel() <= 0 && this.HeLevel() <= 0 && this.BLevel() <= 0 && this.Li6Level() <= 0 && this.Li7Level() <= 0)
        {
            this.addT(fuelValue(stack)); --this.slots[1].stackSize;
            if (this.slots[1].stackSize <= 0) {this.slots[1] = null;}
        }
        else if (stack != null && isHeFuel(stack) && this.HeLevel() + HeFuelValue(stack) <= this.Max && this.HLevel() <= 0 && this.DLevel() <= 0 && this.TLevel() <= 0 && this.BLevel() <= 0 && this.Li6Level() <= 0 && this.Li7Level() <= 0)
        {
            this.addHe(fuelValue(stack)); --this.slots[1].stackSize;
            if (this.slots[1].stackSize <= 0) {this.slots[1] = null;}
        }
        else if (stack != null && isBFuel(stack) && this.BLevel() + BFuelValue(stack) <= this.Max && this.HLevel() <= 0 && this.DLevel() <= 0 && this.TLevel() <= 0 && this.HeLevel() <= 0 && this.Li6Level() <= 0 && this.Li7Level() <= 0)
        {
            this.addB(fuelValue(stack)); --this.slots[1].stackSize;
            if (this.slots[1].stackSize <= 0) {this.slots[1] = null;}
        }
        else if (stack != null && isLi6Fuel(stack) && this.Li6Level() + Li6FuelValue(stack) <= this.Max && this.HLevel() <= 0 && this.DLevel() <= 0 && this.TLevel() <= 0 && this.HeLevel() <= 0 && this.BLevel() <= 0 && this.Li7Level() <= 0)
        {
            this.addLi6(fuelValue(stack)); --this.slots[1].stackSize;
            if (this.slots[1].stackSize <= 0) {this.slots[1] = null;}
        }
        else if (stack != null && isLi7Fuel(stack) && this.Li7Level() + Li7FuelValue(stack) <= this.Max && this.HLevel() <= 0 && this.DLevel() <= 0 && this.TLevel() <= 0 && this.HeLevel() <= 0 && this.BLevel() <= 0 && this.Li6Level() <= 0)
        {
            this.addLi7(fuelValue(stack)); --this.slots[1].stackSize;
            if (this.slots[1].stackSize <= 0) {this.slots[1] = null;}
        }
    	} else {
    		getMain().fuel1();
    	}
    	} else {
    		
    	}
    }
    
    private void fuel2() {
    	if (getMain() != null) {
    	if (isMain()) {
        ItemStack stack = this.getStackInSlot(0);
        if (stack != null && isHFuel(stack) && this.HLevel2() + HFuelValue(stack) <= this.Max && this.DLevel2() <= 0 && this.TLevel2() <= 0 && this.HeLevel2() <= 0 && this.BLevel2() <= 0 && this.Li6Level2() <= 0 && this.Li7Level2() <= 0)
        {
            this.addH2(fuelValue(stack)); --this.slots[0].stackSize;
            if (this.slots[0].stackSize <= 0) {this.slots[0] = null;}
        }
        else if (stack != null && isDFuel(stack) && this.DLevel2() + DFuelValue(stack) <= this.Max && this.HLevel2() <= 0 && this.TLevel2() <= 0 && this.HeLevel2() <= 0 && this.BLevel2() <= 0 && this.Li6Level2() <= 0 && this.Li7Level2() <= 0)
        {
            this.addD2(fuelValue(stack)); --this.slots[0].stackSize;
            if (this.slots[0].stackSize <= 0) {this.slots[0] = null;}
        }
        else if (stack != null && isTFuel(stack) && this.TLevel2() + TFuelValue(stack) <= this.Max && this.HLevel2() <= 0 && this.DLevel2() <= 0 && this.HeLevel2() <= 0 && this.BLevel2() <= 0 && this.Li6Level2() <= 0 && this.Li7Level2() <= 0)
        {
            this.addT2(fuelValue(stack)); --this.slots[0].stackSize;
            if (this.slots[0].stackSize <= 0) {this.slots[0] = null;}
        }
        else if (stack != null && isHeFuel(stack) && this.HeLevel2() + HeFuelValue(stack) <= this.Max && this.HLevel2() <= 0 && this.DLevel2() <= 0 && this.TLevel2() <= 0 && this.BLevel2() <= 0 && this.Li6Level2() <= 0 && this.Li7Level2() <= 0)
        {
            this.addHe2(fuelValue(stack)); --this.slots[0].stackSize;
            if (this.slots[0].stackSize <= 0) {this.slots[0] = null;}
        }
        else if (stack != null && isBFuel(stack) && this.BLevel2() + BFuelValue(stack) <= this.Max && this.HLevel2() <= 0 && this.DLevel2() <= 0 && this.TLevel2() <= 0 && this.HeLevel2() <= 0 && this.Li6Level2() <= 0 && this.Li7Level2() <= 0)
        {
            this.addB2(fuelValue(stack)); --this.slots[0].stackSize;
            if (this.slots[0].stackSize <= 0) {this.slots[0] = null;}
        }
        else if (stack != null && isLi6Fuel(stack) && this.Li6Level2() + Li6FuelValue(stack) <= this.Max && this.HLevel2() <= 0 && this.DLevel2() <= 0 && this.TLevel2() <= 0 && this.HeLevel2() <= 0 && this.BLevel2() <= 0 && this.Li7Level2() <= 0)
        {
            this.addLi62(fuelValue(stack)); --this.slots[0].stackSize;
            if (this.slots[0].stackSize <= 0) {this.slots[0] = null;}
        }
        else if (stack != null && isLi7Fuel(stack) && this.Li7Level2() + Li7FuelValue(stack) <= this.Max && this.HLevel2() <= 0 && this.DLevel2() <= 0 && this.TLevel2() <= 0 && this.HeLevel2() <= 0 && this.BLevel2() <= 0 && this.Li6Level2() <= 0)
        {
            this.addLi72(fuelValue(stack)); --this.slots[0].stackSize;
            if (this.slots[0].stackSize <= 0) {this.slots[0] = null;}
        }
    	} else {
    		getMain().fuel2();
    	}
    	} else {
    		
    	}
    }
    
    public static int fuelValue(ItemStack stack)
    {
    	if (stack == null) {return 0;}
    	else {
    		Item i = stack.getItem();
    			if(i == new ItemStack (NRItems.fuel, 1, 36).getItem() && i.getDamage(stack) == 36)
    			{
    				return 336000;
    			}
    			else if(i == new ItemStack (NRItems.fuel, 1, 37).getItem() && i.getDamage(stack) == 37)
    			{
    				return 336000;
    			}
    			else if(i == new ItemStack (NRItems.fuel, 1, 38).getItem() && i.getDamage(stack) == 38)
    			{
    				return 336000;
    			}
    			else if(i == new ItemStack (NRItems.fuel, 1, 39).getItem() && i.getDamage(stack) == 39)
    			{
    				return 336000;
    			}
    			else if(i == new ItemStack (NRItems.fuel, 1, 44).getItem() && i.getDamage(stack) == 44)
    			{
    				return 336000;
    			}
    			else if(i == new ItemStack (NRItems.fuel, 1, 41).getItem() && i.getDamage(stack) == 41)
    			{
    				return 336000;
    			}	
    			else if(i == new ItemStack (NRItems.fuel, 1, 42).getItem() && i.getDamage(stack) == 42)
    			{
    				return 336000;
    			}
        }
        return 0;
    }

    public static boolean isAnyFuel(ItemStack stack)
    {
        return fuelValue(stack) > 0;
    }

    public static int HFuelValue(ItemStack stack) {
    	if (stack == null) {return 0;} else { Item i = stack.getItem();
    		if(i == new ItemStack (NRItems.fuel, 1, 36).getItem() && i.getDamage(stack) == 36) {return 336000;}}
        return 0;
    }
    
    public static int DFuelValue(ItemStack stack) {
    	if (stack == null) {return 0;} else { Item i = stack.getItem();
    		if(i == new ItemStack (NRItems.fuel, 1, 37).getItem() && i.getDamage(stack) == 37) {return 336000;}}
        return 0;
    }
    
    public static int TFuelValue(ItemStack stack) {
    	if (stack == null) {return 0;} else { Item i = stack.getItem();
    		if(i == new ItemStack (NRItems.fuel, 1, 38).getItem() && i.getDamage(stack) == 38) {return 336000;}}
        return 0;
    }
    
    public static int HeFuelValue(ItemStack stack) {
    	if (stack == null) {return 0;} else { Item i = stack.getItem();
    		if(i == new ItemStack (NRItems.fuel, 1, 39).getItem() && i.getDamage(stack) == 39) {return 336000;}}
        return 0;
    }
    
    public static int BFuelValue(ItemStack stack) {
    	if (stack == null) {return 0;} else { Item i = stack.getItem();
    		if(i == new ItemStack (NRItems.fuel, 1, 44).getItem() && i.getDamage(stack) == 44) {return 336000;}}
        return 0;
    }
    
    public static int Li6FuelValue(ItemStack stack) {
    	if (stack == null) {return 0;} else { Item i = stack.getItem();
    		if(i == new ItemStack (NRItems.fuel, 1, 41).getItem() && i.getDamage(stack) == 41) {return 336000;}}
        return 0;
    }
    
    public static int Li7FuelValue(ItemStack stack) {
    	if (stack == null) {return 0;} else { Item i = stack.getItem();
    		if(i == new ItemStack (NRItems.fuel, 1, 42).getItem() && i.getDamage(stack) == 42) {return 336000;}}
        return 0;
    }
    
    public static boolean isHFuel(ItemStack stack) {return HFuelValue(stack) > 0;}
    public static boolean isDFuel(ItemStack stack) {return DFuelValue(stack) > 0;}
    public static boolean isTFuel(ItemStack stack) {return TFuelValue(stack) > 0;}
    public static boolean isHeFuel(ItemStack stack) {return HeFuelValue(stack) > 0;}
    public static boolean isBFuel(ItemStack stack) {return BFuelValue(stack) > 0;}
    public static boolean isLi6Fuel(ItemStack stack) {return Li6FuelValue(stack) > 0;}
    public static boolean isLi7Fuel(ItemStack stack) {return Li7FuelValue(stack) > 0;}

    public void readFromNBT(NBTTagCompound nbt)
    {
        super.readFromNBT(nbt);

        if (nbt.hasKey("storage"))
        {
            this.storage.readFromNBT(nbt.getCompoundTag("storage"));
        }
        this.EShown = nbt.getInteger("EShown");

        this.direction = nbt.getString("facing");
        this.HLevel = nbt.getInteger("HLevel");
        this.DLevel = nbt.getInteger("DLevel");
        this.TLevel = nbt.getInteger("TLevel");
        this.HeLevel = nbt.getInteger("HeLevel");
        this.BLevel = nbt.getInteger("BLevel");
        this.Li6Level = nbt.getInteger("Li6Level");
        this.Li7Level = nbt.getInteger("Li7Level");
        this.HLevel2 = nbt.getInteger("HLevel2");
        this.DLevel2 = nbt.getInteger("DLevel2");
        this.TLevel2 = nbt.getInteger("TLevel2");
        this.HeLevel2 = nbt.getInteger("HeLevel2");
        this.BLevel2 = nbt.getInteger("BLevel2");
        this.Li6Level2 = nbt.getInteger("Li6Level2");
        this.Li7Level2 = nbt.getInteger("Li7Level2");
        
        this.HOut = nbt.getDouble("HOut");
        this.DOut = nbt.getDouble("DOut");
        this.TOut = nbt.getDouble("TOut");
        this.HE3Out = nbt.getDouble("HE3Out");
        this.HE4Out = nbt.getDouble("HE4Out");
        
        this.powerHH = nbt.getInteger("PowerHH");
        this.powerHD = nbt.getInteger("PowerHD");
        this.powerHT = nbt.getInteger("PowerHT");
        this.powerHHe = nbt.getInteger("PowerHHe");
        this.powerHB = nbt.getInteger("PowerHB");
        this.powerHLi6 = nbt.getInteger("PowerHLi6");
        this.powerHLi7 = nbt.getInteger("PowerHLi7");

        this.powerDD = nbt.getInteger("PowerDD");
        this.powerDT = nbt.getInteger("PowerDT");
        this.powerDHe = nbt.getInteger("PowerDHe");
        this.powerDB = nbt.getInteger("PowerDB");
        this.powerDLi6 = nbt.getInteger("PowerDLi6");
        this.powerDLi7 = nbt.getInteger("PowerDLi7");

        this.powerTT = nbt.getInteger("PowerTT");
        this.powerTHe = nbt.getInteger("PowerTHe");
        this.powerTB = nbt.getInteger("PowerTB");
        this.powerTLi6 = nbt.getInteger("PowerTLi6");
        this.powerTLi7 = nbt.getInteger("PowerTLi7");

        this.powerHeHe = nbt.getInteger("PowerHeHe");
        this.powerHeB = nbt.getInteger("PowerHeB");
        this.powerHeLi6 = nbt.getInteger("PowerHeLi6");
        this.powerHeLi7 = nbt.getInteger("PowerHeLi7");
        
        this.powerBB = nbt.getInteger("PowerBB");
        this.powerBLi6 = nbt.getInteger("PowerBLi6");
        this.powerBLi7 = nbt.getInteger("PowerBLi7");

        this.powerLi6Li6 = nbt.getInteger("PowerLi6Li6");
        this.powerLi6Li7 = nbt.getInteger("PowerLi6Li7");
        
        this.powerLi7Li7 = nbt.getInteger("PowerLi7Li7");
        
        this.size = nbt.getInteger("size");
        this.isMain = nbt.getBoolean("isMain");
        this.below = nbt.getInteger("below");
        this.pMult = nbt.getInteger("pMult");
        
        this.efficiency = nbt.getDouble("efficiency");
        this.heat = nbt.getDouble("heat");
        this.heatVar = nbt.getDouble("heatVar");
        
        this.flag = nbt.getBoolean("flag");
        this.flag1 = nbt.getBoolean("flag1");
        this.lastE = nbt.getInteger("lE");
        this.E = nbt.getInteger("E");
        
        NBTTagList list = nbt.getTagList("Items", 10);
        this.slots = new ItemStack[this.getSizeInventory()];

        for (int i = 0; i < list.tagCount(); ++i)
        {
            NBTTagCompound compound = list.getCompoundTagAt(i);
            byte b = compound.getByte("Slot");

            if (b >= 0 && b < this.slots.length)
            {
                this.slots[b] = ItemStack.loadItemStackFromNBT(compound);
            }
        }
    }

    public void writeToNBT(NBTTagCompound nbt)
    {
        super.writeToNBT(nbt);
        
        NBTTagCompound energyTag = new NBTTagCompound();
        this.storage.writeToNBT(energyTag);
        nbt.setTag("storage", energyTag);
        nbt.setInteger("EShown", this.EShown);
        
        nbt.setInteger("HLevel", this.HLevel);
        nbt.setInteger("DLevel", this.DLevel);
        nbt.setInteger("TLevel", this.TLevel);
        nbt.setInteger("HeLevel", this.HeLevel);
        nbt.setInteger("BLevel", this.BLevel);
        nbt.setInteger("Li6Level", this.Li6Level);
        nbt.setInteger("Li7Level", this.Li7Level);
        nbt.setInteger("HLevel2", this.HLevel2);
        nbt.setInteger("DLevel2", this.DLevel2);
        nbt.setInteger("TLevel2", this.TLevel2);
        nbt.setInteger("HeLevel2", this.HeLevel2);
        nbt.setInteger("BLevel2", this.BLevel2);
        nbt.setInteger("Li6Level2", this.Li6Level2);
        nbt.setInteger("Li7Level2", this.Li7Level2);
        
        nbt.setDouble("HOut", this.HOut);
        nbt.setDouble("DOut", this.DOut);
        nbt.setDouble("TOut", this.TOut);
        nbt.setDouble("HE3Out", this.HE3Out);
        nbt.setDouble("HE4Out", this.HE4Out);
        
        nbt.setInteger("PowerHH", this.powerHH);
        nbt.setInteger("PowerHD", this.powerHD);
        nbt.setInteger("PowerHT", this.powerHT);
        nbt.setInteger("PowerHHe", this.powerHHe);
        nbt.setInteger("PowerHB", this.powerHB);
        nbt.setInteger("PowerHLi6", this.powerHLi6);
        nbt.setInteger("PowerHLi7", this.powerHLi7);

        nbt.setInteger("PowerDD", this.powerDD);
        nbt.setInteger("PowerDT", this.powerDT);
        nbt.setInteger("PowerDHe", this.powerDHe);
        nbt.setInteger("PowerDB", this.powerDB);
        nbt.setInteger("PowerDLi6", this.powerDLi6);
        nbt.setInteger("PowerDLi7", this.powerDLi7);

        nbt.setInteger("PowerTT", this.powerTT);
        nbt.setInteger("PowerTHe", this.powerTHe);
        nbt.setInteger("PowerTB", this.powerTB);
        nbt.setInteger("PowerTLi6", this.powerTLi6);
        nbt.setInteger("PowerTLi7", this.powerTLi7);

        nbt.setInteger("PowerHeHe", this.powerHeHe);
        nbt.setInteger("PowerHeB", this.powerHeB);
        nbt.setInteger("PowerHeLi6", this.powerHeLi6);
        nbt.setInteger("PowerHeLi7", this.powerHeLi7);
        
        nbt.setInteger("PowerBB", this.powerBB);
        nbt.setInteger("PowerBLi6", this.powerBLi6);
        nbt.setInteger("PowerBLi7", this.powerBLi7);

        nbt.setInteger("PowerLi6Li6", this.powerLi6Li6);
        nbt.setInteger("PowerLi6Li7", this.powerLi6Li7);
        
        nbt.setInteger("PowerLi7Li7", this.powerLi7Li7);
        
        nbt.setInteger("size", this.size);
        nbt.setBoolean("isMain", this.isMain);
        nbt.setInteger("below", this.below);
        nbt.setInteger("pMult", this.pMult);
        
        nbt.setDouble("efficiency", this.efficiency);
        nbt.setDouble("heat", this.heat);
        nbt.setDouble("heatVar", this.heatVar);
        
        nbt.setBoolean("flag", this.flag);
        nbt.setBoolean("flag1", this.flag1);
        nbt.setInteger("lE", this.lastE);
        nbt.setInteger("E", this.E);
        NBTTagList list = new NBTTagList();

        for (int i = 0; i < this.slots.length; ++i)
        {
            if (this.slots[i] != null)
            {
                NBTTagCompound compound = new NBTTagCompound();
                compound.setByte("Slot", (byte)i);
                this.slots[i].writeToNBT(compound);
                list.appendTag(compound);
            }
        }

        nbt.setTag("Items", list);
        
        if(this.isInventoryNameLocalized())
		{
			nbt.setString("CustomName", this.localizedName);
		}
    }

    /**
     * Overriden in a sign to provide the text.
     */
    public Packet getDescriptionPacket()
    {
        NBTTagCompound nbtTag = new NBTTagCompound();
        nbtTag.setInteger("Energy", this.storage.getEnergyStored());
        this.energy = nbtTag.getInteger("Energy");
        this.writeToNBT(nbtTag);
        return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbtTag);
    }

    public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet)
    {
    	super.onDataPacket(net, packet);
        this.readFromNBT(packet.func_148857_g());
    }

    public void addH(int add) {if (isMain()) {this.HLevel += add;} else {getMain().addH(add);}}
    public void addD(int add) {if (isMain()) {this.DLevel += add;} else {getMain().addD(add);}}
    public void addT(int add) {if (isMain()) {this.TLevel += add;} else {getMain().addT(add);}}
    public void addHe(int add) {if (isMain()) {this.HeLevel += add;} else {getMain().addHe(add);}}
    public void addB(int add) {if (isMain()) {this.BLevel += add;} else {getMain().addB(add);}}
    public void addLi6(int add) {if (isMain()) {this.Li6Level += add;} else {getMain().addLi6(add);}}
    public void addLi7(int add) {if (isMain()) {this.Li7Level += add;} else {getMain().addLi7(add);}}
    
    public void addH2(int add) {if (isMain()) {this.HLevel2 += add;} else {getMain().addH2(add);}}
    public void addD2(int add) {if (isMain()) {this.DLevel2 += add;} else {getMain().addD2(add);}}
    public void addT2(int add) {if (isMain()) {this.TLevel2 += add;} else {getMain().addT2(add);}}
    public void addHe2(int add) {if (isMain()) {this.HeLevel2 += add;} else {getMain().addHe2(add);}}
    public void addB2(int add) {if (isMain()) {this.BLevel2 += add;} else {getMain().addB2(add);}}
    public void addLi62(int add) {if (isMain()) {this.Li6Level2 += add;} else {getMain().addLi62(add);}}
    public void addLi72(int add) {if (isMain()) {this.Li7Level2 += add;} else {getMain().addLi72(add);}}
    
    public void removeH(int remove) {if (isMain()) {this.HLevel -= remove;} else {getMain().removeH(remove);}}
    public void removeD(int remove) {if (isMain()) {this.DLevel -= remove;} else {getMain().removeD(remove);}}
    public void removeT(int remove) {if (isMain()) {this.TLevel -= remove;} else {getMain().removeT(remove);}}
    public void removeHe(int remove) {if (isMain()) {this.HeLevel -= remove;} else {getMain().removeHe(remove);}}
    public void removeB(int remove) {if (isMain()) {this.BLevel -= remove;} else {getMain().removeB(remove);}}
    public void removeLi6(int remove) {if (isMain()) {this.Li6Level -= remove;} else {getMain().removeLi6(remove);}}
    public void removeLi7(int remove) {if (isMain()) {this.Li7Level -= remove;} else {getMain().removeLi7(remove);}}
    
    public void removeH2(int remove) {if (isMain()) {this.HLevel2 -= remove;} else {getMain().removeH2(remove);}}
    public void removeD2(int remove) {if (isMain()) {this.DLevel2 -= remove;} else {getMain().removeD2(remove);}}
    public void removeT2(int remove) {if (isMain()) {this.TLevel2 -= remove;} else {getMain().removeT2(remove);}}
    public void removeHe2(int remove) {if (isMain()) {this.HeLevel2 -= remove;} else {getMain().removeHe2(remove);}}
    public void removeB2(int remove) {if (isMain()) {this.BLevel2 -= remove;} else {getMain().removeB2(remove);}}
    public void removeLi62(int remove) {if (isMain()) {this.Li6Level2 -= remove;} else {getMain().removeLi62(remove);}}
    public void removeLi72(int remove) {if (isMain()) {this.Li7Level2 -= remove;} else {getMain().removeLi72(remove);}}
    
    public int HLevel() {if (isMain()) {return HLevel;} else {getMain().HLevel();} return HLevel;}
    public int DLevel() {if (isMain()) {return DLevel;} else {getMain().DLevel();} return DLevel;}
    public int TLevel() {if (isMain()) {return TLevel;} else {getMain().TLevel();} return TLevel;}
    public int HeLevel() {if (isMain()) {return HeLevel;} else {getMain().HeLevel();} return HeLevel;}
    public int BLevel() {if (isMain()) {return BLevel;} else {getMain().BLevel();} return BLevel;}
    public int Li6Level() {if (isMain()) {return Li6Level;} else {getMain().Li6Level();} return Li6Level;}
    public int Li7Level() {if (isMain()) {return Li7Level;} else {getMain().Li7Level();} return Li7Level;}
    
    public int HLevel2() {if (isMain()) {return HLevel2;} else {getMain().HLevel2();} return HLevel2;}
    public int DLevel2() {if (isMain()) {return DLevel2;} else {getMain().DLevel2();} return DLevel2;}
    public int TLevel2() {if (isMain()) {return TLevel2;} else {getMain().TLevel2();} return TLevel2;}
    public int HeLevel2() {if (isMain()) {return HeLevel2;} else {getMain().HeLevel2();} return HeLevel2;}
    public int BLevel2() {if (isMain()) {return BLevel2;} else {getMain().BLevel2();} return BLevel2;}
    public int Li6Level2() {if (isMain()) {return Li6Level2;} else {getMain().Li6Level2();} return Li6Level2;}
    public int Li7Level2() {if (isMain()) {return Li7Level2;} else {getMain().Li7Level2();} return Li7Level2;}
    
    public boolean canConnectEnergy(ForgeDirection from)
    {
        return true;
    }

    public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate)
    {
    	if (heat <  {
    		return getMain() != null ? (isMain() ? this.storage.receiveEnergy(maxReceive, simulate) : getMain().storage.receiveEnergy(maxReceive, simulate)) : 0;
    	}
    	else return 0;
    }

    public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate)
    {
    	return 0;
    }

    public int getEnergyStored(ForgeDirection paramForgeDirection)
    {
        return getMain() != null ? (isMain() ? this.storage.getEnergyStored() : getMain().getEnergyStored(paramForgeDirection)) : 0;
    }

    public int getMaxEnergyStored(ForgeDirection paramForgeDirection)
    {
        return getMain() != null ? (isMain() ? this.storage.getMaxEnergyStored() : getMain().getMaxEnergyStored(paramForgeDirection)) : 0;
    }

    /**
     * Returns true if automation is allowed to insert the given stack (ignoring stack size) into the given slot.
     */
    public boolean isItemValidForSlot(int slot, ItemStack stack)
    {
        if (slot == 0)
        {
            isAnyFuel(stack);
            return true;
        }
        else if (slot == 1)
        {
        	isAnyFuel(stack);
            return true;
        }
        else
        {
            return false;
        }
    }

    /**
     * Returns an array containing the indices of the slots that can be accessed by automation on the given side of this
     * block.
     */
    public int[] getAccessibleSlotsFromSide(int slot) {
        return getMain() != null ? (isMain() ? slotsBottom : getMain().getAccessibleSlotsFromSide(slot)) : null;
    }

    /**
     * Returns true if automation can insert the given item in the given slot from the given side. Args: Slot, item,
     * side
     */
    public boolean canInsertItem(int slot, ItemStack stack, int par) {
    	return getMain() != null ? (isMain() ? this.isItemValidForSlot(slot, stack) : getMain().canInsertItem(slot, stack, par)) : false;
    }

    /**
     * Returns true if automation can extract the given item in the given slot from the given side. Args: Slot, item,
     * side
     */
    public boolean canExtractItem(int slot, ItemStack stack, int slots) {
        return getMain() != null ? (isMain() ? (slots != 0 || slot != 1 || stack.getItem() == Items.bucket) : getMain().canExtractItem(slot, stack, slots)) : false;
    }

    public ItemStack getStackInSlot(int var1) {
    	return getMain() != null ? (isMain() ? slots[var1] : getMain().slots[var1]) : null;
	}
    
    public int getSizeInventory()
    {
        return getMain() != null ? (isMain() ? this.slots.length : getMain().getSizeInventory()) : null;
    }
    
    public void setInventorySlotContents(int i, ItemStack itemstack)
    {
    	if (getMain() != null) {
    	if (isMain()) {
        this.slots[i] = itemstack;

        if (itemstack != null && itemstack.stackSize > this.getInventoryStackLimit())
        {
            itemstack.stackSize = this.getInventoryStackLimit();
        } markDirty();
    	} else {
    		getMain().setInventorySlotContents(i, itemstack);
    	}
    	} else {
    		
    	}
    }
}

 

Any help would be appreciated - thanks in advance ;)

Link to comment
Share on other sites

This is a lot of code so I wont be reading all of it..

So just some common mistakes, maybe urs is in here.

1. Did you double check ur write and read NBT methods?

2. Are u syncing server and client? I guess u are seeing the "0" values in a gui, which might be the case because the client isnt synced with the server (welcome to the world of packets)

Link to comment
Share on other sites

Yeh, sorry that is a lot of code. Perhaps having only the NBT related methods will help:

 

public void readFromNBT(NBTTagCompound nbt)
    {
        super.readFromNBT(nbt);

        if (nbt.hasKey("storage"))
        {
            this.storage.readFromNBT(nbt.getCompoundTag("storage"));
        }
        this.EShown = nbt.getInteger("EShown");

        this.direction = nbt.getString("facing");
        this.HLevel = nbt.getInteger("HLevel");
        this.DLevel = nbt.getInteger("DLevel");
        this.TLevel = nbt.getInteger("TLevel");
        this.HeLevel = nbt.getInteger("HeLevel");
        this.BLevel = nbt.getInteger("BLevel");
        this.Li6Level = nbt.getInteger("Li6Level");
        this.Li7Level = nbt.getInteger("Li7Level");
        this.HLevel2 = nbt.getInteger("HLevel2");
        this.DLevel2 = nbt.getInteger("DLevel2");
        this.TLevel2 = nbt.getInteger("TLevel2");
        this.HeLevel2 = nbt.getInteger("HeLevel2");
        this.BLevel2 = nbt.getInteger("BLevel2");
        this.Li6Level2 = nbt.getInteger("Li6Level2");
        this.Li7Level2 = nbt.getInteger("Li7Level2");
        
        this.HOut = nbt.getDouble("HOut");
        this.DOut = nbt.getDouble("DOut");
        this.TOut = nbt.getDouble("TOut");
        this.HE3Out = nbt.getDouble("HE3Out");
        this.HE4Out = nbt.getDouble("HE4Out");
        
        this.powerHH = nbt.getInteger("PowerHH");
        this.powerHD = nbt.getInteger("PowerHD");
        this.powerHT = nbt.getInteger("PowerHT");
        this.powerHHe = nbt.getInteger("PowerHHe");
        this.powerHB = nbt.getInteger("PowerHB");
        this.powerHLi6 = nbt.getInteger("PowerHLi6");
        this.powerHLi7 = nbt.getInteger("PowerHLi7");

        this.powerDD = nbt.getInteger("PowerDD");
        this.powerDT = nbt.getInteger("PowerDT");
        this.powerDHe = nbt.getInteger("PowerDHe");
        this.powerDB = nbt.getInteger("PowerDB");
        this.powerDLi6 = nbt.getInteger("PowerDLi6");
        this.powerDLi7 = nbt.getInteger("PowerDLi7");

        this.powerTT = nbt.getInteger("PowerTT");
        this.powerTHe = nbt.getInteger("PowerTHe");
        this.powerTB = nbt.getInteger("PowerTB");
        this.powerTLi6 = nbt.getInteger("PowerTLi6");
        this.powerTLi7 = nbt.getInteger("PowerTLi7");

        this.powerHeHe = nbt.getInteger("PowerHeHe");
        this.powerHeB = nbt.getInteger("PowerHeB");
        this.powerHeLi6 = nbt.getInteger("PowerHeLi6");
        this.powerHeLi7 = nbt.getInteger("PowerHeLi7");
        
        this.powerBB = nbt.getInteger("PowerBB");
        this.powerBLi6 = nbt.getInteger("PowerBLi6");
        this.powerBLi7 = nbt.getInteger("PowerBLi7");

        this.powerLi6Li6 = nbt.getInteger("PowerLi6Li6");
        this.powerLi6Li7 = nbt.getInteger("PowerLi6Li7");
        
        this.powerLi7Li7 = nbt.getInteger("PowerLi7Li7");
        
        this.size = nbt.getInteger("size");
        this.isMain = nbt.getBoolean("isMain");
        this.below = nbt.getInteger("below");
        this.pMult = nbt.getInteger("pMult");
        
        this.efficiency = nbt.getDouble("efficiency");
        this.heat = nbt.getDouble("heat");
        this.heatVar = nbt.getDouble("heatVar");
        
        this.flag = nbt.getBoolean("flag");
        this.flag1 = nbt.getBoolean("flag1");
        this.lastE = nbt.getInteger("lE");
        this.E = nbt.getInteger("E");
        
        NBTTagList list = nbt.getTagList("Items", 10);
        this.slots = new ItemStack[this.getSizeInventory()];

        for (int i = 0; i < list.tagCount(); ++i)
        {
            NBTTagCompound compound = list.getCompoundTagAt(i);
            byte b = compound.getByte("Slot");

            if (b >= 0 && b < this.slots.length)
            {
                this.slots[b] = ItemStack.loadItemStackFromNBT(compound);
            }
        }
    }

    public void writeToNBT(NBTTagCompound nbt)
    {
        super.writeToNBT(nbt);
        
        NBTTagCompound energyTag = new NBTTagCompound();
        this.storage.writeToNBT(energyTag);
        nbt.setTag("storage", energyTag);
        nbt.setInteger("EShown", this.EShown);
        
        nbt.setInteger("HLevel", this.HLevel);
        nbt.setInteger("DLevel", this.DLevel);
        nbt.setInteger("TLevel", this.TLevel);
        nbt.setInteger("HeLevel", this.HeLevel);
        nbt.setInteger("BLevel", this.BLevel);
        nbt.setInteger("Li6Level", this.Li6Level);
        nbt.setInteger("Li7Level", this.Li7Level);
        nbt.setInteger("HLevel2", this.HLevel2);
        nbt.setInteger("DLevel2", this.DLevel2);
        nbt.setInteger("TLevel2", this.TLevel2);
        nbt.setInteger("HeLevel2", this.HeLevel2);
        nbt.setInteger("BLevel2", this.BLevel2);
        nbt.setInteger("Li6Level2", this.Li6Level2);
        nbt.setInteger("Li7Level2", this.Li7Level2);
        
        nbt.setDouble("HOut", this.HOut);
        nbt.setDouble("DOut", this.DOut);
        nbt.setDouble("TOut", this.TOut);
        nbt.setDouble("HE3Out", this.HE3Out);
        nbt.setDouble("HE4Out", this.HE4Out);
        
        nbt.setInteger("PowerHH", this.powerHH);
        nbt.setInteger("PowerHD", this.powerHD);
        nbt.setInteger("PowerHT", this.powerHT);
        nbt.setInteger("PowerHHe", this.powerHHe);
        nbt.setInteger("PowerHB", this.powerHB);
        nbt.setInteger("PowerHLi6", this.powerHLi6);
        nbt.setInteger("PowerHLi7", this.powerHLi7);

        nbt.setInteger("PowerDD", this.powerDD);
        nbt.setInteger("PowerDT", this.powerDT);
        nbt.setInteger("PowerDHe", this.powerDHe);
        nbt.setInteger("PowerDB", this.powerDB);
        nbt.setInteger("PowerDLi6", this.powerDLi6);
        nbt.setInteger("PowerDLi7", this.powerDLi7);

        nbt.setInteger("PowerTT", this.powerTT);
        nbt.setInteger("PowerTHe", this.powerTHe);
        nbt.setInteger("PowerTB", this.powerTB);
        nbt.setInteger("PowerTLi6", this.powerTLi6);
        nbt.setInteger("PowerTLi7", this.powerTLi7);

        nbt.setInteger("PowerHeHe", this.powerHeHe);
        nbt.setInteger("PowerHeB", this.powerHeB);
        nbt.setInteger("PowerHeLi6", this.powerHeLi6);
        nbt.setInteger("PowerHeLi7", this.powerHeLi7);
        
        nbt.setInteger("PowerBB", this.powerBB);
        nbt.setInteger("PowerBLi6", this.powerBLi6);
        nbt.setInteger("PowerBLi7", this.powerBLi7);

        nbt.setInteger("PowerLi6Li6", this.powerLi6Li6);
        nbt.setInteger("PowerLi6Li7", this.powerLi6Li7);
        
        nbt.setInteger("PowerLi7Li7", this.powerLi7Li7);
        
        nbt.setInteger("size", this.size);
        nbt.setBoolean("isMain", this.isMain);
        nbt.setInteger("below", this.below);
        nbt.setInteger("pMult", this.pMult);
        
        nbt.setDouble("efficiency", this.efficiency);
        nbt.setDouble("heat", this.heat);
        nbt.setDouble("heatVar", this.heatVar);
        
        nbt.setBoolean("flag", this.flag);
        nbt.setBoolean("flag1", this.flag1);
        nbt.setInteger("lE", this.lastE);
        nbt.setInteger("E", this.E);
        NBTTagList list = new NBTTagList();

        for (int i = 0; i < this.slots.length; ++i)
        {
            if (this.slots[i] != null)
            {
                NBTTagCompound compound = new NBTTagCompound();
                compound.setByte("Slot", (byte)i);
                this.slots[i].writeToNBT(compound);
                list.appendTag(compound);
            }
        }

        nbt.setTag("Items", list);
        
        if(this.isInventoryNameLocalized())
		{
			nbt.setString("CustomName", this.localizedName);
		}
    }

    public Packet getDescriptionPacket()
    {
        NBTTagCompound nbtTag = new NBTTagCompound();
        nbtTag.setInteger("Energy", this.storage.getEnergyStored());
        this.energy = nbtTag.getInteger("Energy");
        this.writeToNBT(nbtTag);
        return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbtTag);
    }

    public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet)
    {
    	super.onDataPacket(net, packet);
        this.readFromNBT(packet.func_148857_g());
    }

 

Otherwise,

1. I'm using the same NBT-related code as I am for other machines, and they work, and

2. I believe they are synced, yes

Link to comment
Share on other sites

My only thought is that there is something wrong with methods such as these:

 

public ItemStack getStackInSlot(int var1) {
    	return getMain() != null ? (isMain() ? slots[var1] : getMain().slots[var1]) : null;
	}

 

public int getEnergyStored(ForgeDirection paramForgeDirection) {
        return getMain() != null ? (isMain() ? this.storage.getEnergyStored() : getMain().getEnergyStored(paramForgeDirection)) : 0;
    }

 

If so, then there may be an issue with this method:

public TileEntityFusionReactor getMain() {
    	if (below != 0) {
    		TileEntityFusionReactor main = (TileEntityFusionReactor)worldObj.getTileEntity(xCoord, yCoord - 2*below, zCoord);
    		return main;
    	} else {
    		return (TileEntityFusionReactor)worldObj.getTileEntity(xCoord, yCoord, zCoord);
    	}
    }

 

This is the method which sets the 'below' integer:

public void getBelow(World world, int x, int y, int z) {
		below = 0;
		for (int yDown = 1; yDown < 128; ++yDown) {
			if (world.getBlock(x, y - 2*yDown, z) == NRBlocks.fusionReactor) {
				below++;
			} else break;
		}
	}

Link to comment
Share on other sites

This is what I have for that:

 

public Packet getDescriptionPacket()
    {
        NBTTagCompound nbtTag = new NBTTagCompound();
        nbtTag.setInteger("Energy", this.storage.getEnergyStored());
        this.energy = nbtTag.getInteger("Energy");
        this.writeToNBT(nbtTag);
        return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbtTag);
    }

    public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet)
    {
    	super.onDataPacket(net, packet);
        this.readFromNBT(packet.func_148857_g());
    }

 

Is there a problem in either of those methods? It must be the fact that it is a multiblock that this bug exists, as all of my other machines load their inventories, energy, etc. fine.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Every single time I start a mod pack it brings me to the launcher and then I play the game it opens up the game with the red screen and then eventually it crashes. It worked earlier this morning and I don't know why this is happening because I thought it was just one modpack but now nothing will open, it will just get to red screen loading everything and then eventually it crashes.
    • ---- Minecraft Crash Report ---- // Uh... Did I do that? Time: 2024-04-24 17:16:01 Description: mouseClicked event handler java.lang.IllegalStateException: Failed to load registries due to above errors     at net.minecraft.resources.RegistryDataLoader.m_247207_(RegistryDataLoader.java:77) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_246152_(WorldLoader.java:54) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_245736_(WorldLoader.java:58) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_214362_(WorldLoader.java:31) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.m_232896_(CreateWorldScreen.java:125) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.worldselection.WorldSelectionList.m_233213_(WorldSelectionList.java:167) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.worldselection.WorldSelectionList.<init>(WorldSelectionList.java:93) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.worldselection.SelectWorldScreen.m_7856_(SelectWorldScreen.java:54) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.client.gui.screens.Screen.m_6575_(Screen.java:321) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.blur.json:MixinScreen,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.GuiScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91152_(Minecraft.java:1007) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.TitleScreen.m_279796_(TitleScreen.java:159) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:client.TitleScreenMixin,pl:mixin:APP:aether.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiMainMenu,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.Button.m_5691_(Button.java:38) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.AbstractButton.m_5716_(AbstractButton.java:55) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.AbstractWidget.m_6375_(AbstractWidget.java:175) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.events.ContainerEventHandler.m_6375_(ContainerEventHandler.java:38) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:computing_frames,re:mixin,re:classloading}     at net.minecraft.client.gui.screens.TitleScreen.m_6375_(TitleScreen.java:294) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:client.TitleScreenMixin,pl:mixin:APP:aether.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiMainMenu,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168084_(MouseHandler.java:92) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.Screen.m_96579_(Screen.java:437) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.blur.json:MixinScreen,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.GuiScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_91530_(MouseHandler.java:89) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168091_(MouseHandler.java:189) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:102) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin,pl:mixin:APP:mixins.essential.json:client.Mixin_ThreadTaskExecutor,pl:mixin:A}     at net.minecraft.client.MouseHandler.m_91565_(MouseHandler.java:188) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {}     at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.3.1.jar%23153!/:build 7] {}     at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3403) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {re:mixin}     at com.mojang.blaze3d.systems.RenderSystem.pollEvents(RenderSystem.java:201) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A}     at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:212) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A}     at com.mojang.blaze3d.platform.Window.m_85435_(Window.java:274) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1170) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[1.20.1-forge-47.1.29-wrapper.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:67) ~[?:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at net.minecraft.resources.RegistryDataLoader.m_247207_(RegistryDataLoader.java:77) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_246152_(WorldLoader.java:54) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_245736_(WorldLoader.java:58) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_214362_(WorldLoader.java:31) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.m_232896_(CreateWorldScreen.java:125) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.worldselection.WorldSelectionList.m_233213_(WorldSelectionList.java:167) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.worldselection.WorldSelectionList.<init>(WorldSelectionList.java:93) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.worldselection.SelectWorldScreen.m_7856_(SelectWorldScreen.java:54) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.client.gui.screens.Screen.m_6575_(Screen.java:321) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.blur.json:MixinScreen,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.GuiScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91152_(Minecraft.java:1007) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.TitleScreen.m_279796_(TitleScreen.java:159) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:client.TitleScreenMixin,pl:mixin:APP:aether.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiMainMenu,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.Button.m_5691_(Button.java:38) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.AbstractButton.m_5716_(AbstractButton.java:55) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.AbstractWidget.m_6375_(AbstractWidget.java:175) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.events.ContainerEventHandler.m_6375_(ContainerEventHandler.java:38) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:computing_frames,re:mixin,re:classloading}     at net.minecraft.client.gui.screens.TitleScreen.m_6375_(TitleScreen.java:294) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:client.TitleScreenMixin,pl:mixin:APP:aether.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiMainMenu,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168084_(MouseHandler.java:92) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.Screen.m_96579_(Screen.java:437) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.blur.json:MixinScreen,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.GuiScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_91530_(MouseHandler.java:89) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168091_(MouseHandler.java:189) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:102) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin,pl:mixin:APP:mixins.essential.json:client.Mixin_ThreadTaskExecutor,pl:mixin:A}     at net.minecraft.client.MouseHandler.m_91565_(MouseHandler.java:188) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {}     at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.3.1.jar%23153!/:build 7] {}     at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3403) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {re:mixin}     at com.mojang.blaze3d.systems.RenderSystem.pollEvents(RenderSystem.java:201) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A}     at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:212) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A} -- Affected screen -- Details:     Screen name: net.minecraft.client.gui.screens.TitleScreen Stacktrace:     at net.minecraft.client.gui.screens.Screen.m_96579_(Screen.java:437) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.blur.json:MixinScreen,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.GuiScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_91530_(MouseHandler.java:89) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168091_(MouseHandler.java:189) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:102) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin,pl:mixin:APP:mixins.essential.json:client.Mixin_ThreadTaskExecutor,pl:mixin:A}     at net.minecraft.client.MouseHandler.m_91565_(MouseHandler.java:188) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {}     at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.3.1.jar%23153!/:build 7] {}     at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3403) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {re:mixin}     at com.mojang.blaze3d.systems.RenderSystem.pollEvents(RenderSystem.java:201) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A}     at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:212) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A}     at com.mojang.blaze3d.platform.Window.m_85435_(Window.java:274) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1170) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[1.20.1-forge-47.1.29-wrapper.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:67) ~[?:?] {} -- Last reload -- Details:     Reload number: 1     Reload reason: initial     Finished: Yes     Packs: vanilla, mod_resources, essential Stacktrace:     at net.minecraft.client.ResourceLoadStateTracker.m_168562_(ResourceLoadStateTracker.java:49) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.client.Minecraft.m_91354_(Minecraft.java:2326) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:735) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[1.20.1-forge-47.1.29-wrapper.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:67) ~[?:?] {} -- System Details -- Details:     Minecraft Version: 1.20.1     Minecraft Version ID: 1.20.1     Operating System: Windows 11 (amd64) version 10.0     Java Version: 17.0.8, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 3035115104 bytes (2894 MiB) / 4664066048 bytes (4448 MiB) up to 15032385536 bytes (14336 MiB)     CPUs: 16     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 7 5800H with Radeon Graphics              Identifier: AuthenticAMD Family 25 Model 80 Stepping 0     Microarchitecture: Zen 3     Frequency (GHz): 3.19     Number of physical packages: 1     Number of physical CPUs: 8     Number of logical CPUs: 16     Graphics card #0 name: AMD Radeon(TM) Graphics     Graphics card #0 vendor: Advanced Micro Devices, Inc. (0x1002)     Graphics card #0 VRAM (MB): 512.00     Graphics card #0 deviceId: 0x1638     Graphics card #0 versionInfo: DriverVersion=31.0.21024.5     Graphics card #1 name: NVIDIA GeForce RTX 3050 Ti Laptop GPU     Graphics card #1 vendor: NVIDIA (0x10de)     Graphics card #1 VRAM (MB): 4095.00     Graphics card #1 deviceId: 0x25a0     Graphics card #1 versionInfo: DriverVersion=31.0.15.5212     Memory slot #0 capacity (MB): 16384.00     Memory slot #0 clockSpeed (GHz): 3.20     Memory slot #0 type: DDR4     Memory slot #1 capacity (MB): 16384.00     Memory slot #1 clockSpeed (GHz): 3.20     Memory slot #1 type: DDR4     Virtual memory max (MB): 36968.25     Virtual memory used (MB): 27557.49     Swap memory total (MB): 4864.00     Swap memory used (MB): 52.98     JVM Flags: 8 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx14G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M     Launched Version: 1.20.1-forge-47.1.29-wrapper     Backend library: LWJGL version 3.3.1 build 7     Backend API: NVIDIA GeForce RTX 3050 Ti Laptop GPU/PCIe/SSE2 GL version 4.6.0 NVIDIA 552.12, NVIDIA Corporation     Window size: 854x480     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'forge'     Type: Client (map_client.txt)     Graphics mode: fancy     Resource Packs: vanilla, mod_resources     Current Language: en_us     CPU: 16x AMD Ryzen 7 5800H with Radeon Graphics      ModLauncher: 10.0.9+10.0.9+main.dcd20f30     ModLauncher launch target: forgeclient     ModLauncher naming: srg     ModLauncher services:          mixin-0.8.5.jar mixin PLUGINSERVICE          eventbus-6.0.5.jar eventbus PLUGINSERVICE          fmlloader-1.20.1-47.1.29.jar slf4jfixer PLUGINSERVICE          fmlloader-1.20.1-47.1.29.jar object_holder_definalize PLUGINSERVICE          fmlloader-1.20.1-47.1.29.jar runtime_enum_extender PLUGINSERVICE          fmlloader-1.20.1-47.1.29.jar capability_token_subclass PLUGINSERVICE          accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE          fmlloader-1.20.1-47.1.29.jar runtimedistcleaner PLUGINSERVICE          modlauncher-10.0.9.jar mixin TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar essential-loader TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar fml TRANSFORMATIONSERVICE      FML Language Providers:          [email protected]         lowcodefml@null         javafml@null     Mod List:          totw_modded-forge-1.20.1-1.0.5.jar                |Towers of the Wild Modded     |totw_modded                   |1.0.5               |DONE      |Manifest: NOSIGNATURE         man_of_many_planes-0.0.3+1.20.1-forge.jar         |Man of Many Planes            |man_of_many_planes            |0.0.3+1.20.1        |DONE      |Manifest: NOSIGNATURE         blue_skies-1.20.1-1.3.31.jar                      |Blue Skies                    |blue_skies                    |1.3.31              |DONE      |Manifest: NOSIGNATURE         satin-forge-1.20.1+1.15.0-SNAPSHOT.jar            |Satin Forge                   |satin                         |1.20.1+1.15.0-SNAPSH|DONE      |Manifest: NOSIGNATURE         geckolib-forge-1.20.1-4.4.4.jar                   |GeckoLib 4                    |geckolib                      |4.4.4               |DONE      |Manifest: NOSIGNATURE         botarium-forge-1.20.1-2.3.3.jar                   |Botarium                      |botarium                      |2.3.3               |DONE      |Manifest: NOSIGNATURE         aether-1.20.1-1.4.0-neoforge.jar                  |The Aether                    |aether                        |1.20.1-1.4.0-neoforg|DONE      |Manifest: NOSIGNATURE         naturalist-forge-4.0.3-1.20.1.jar                 |Naturalist                    |naturalist                    |4.0.3               |DONE      |Manifest: NOSIGNATURE         mcw-windows-2.2.1-mc1.20.1forge.jar               |Macaw's Windows               |mcwwindows                    |2.2.1               |DONE      |Manifest: NOSIGNATURE         valhelsia_furniture-forge-1.20.1-1.1.3.jar        |Valhelsia Furniture           |valhelsia_furniture           |1.1.3               |DONE      |Manifest: NOSIGNATURE         Incendium_1.20.4_v5.3.4.jar                       |Incendium                     |incendium                     |5.3.4               |DONE      |Manifest: NOSIGNATURE         immersive_aircraft-0.7.5+1.20.1-forge.jar         |Immersive Aircraft            |immersive_aircraft            |0.7.5+1.20.1        |DONE      |Manifest: NOSIGNATURE         sophisticatedcore-1.20.1-0.6.18.597.jar           |Sophisticated Core            |sophisticatedcore             |0.6.18.597          |DONE      |Manifest: NOSIGNATURE         modernfix-forge-5.17.0+mc1.20.1.jar               |ModernFix                     |modernfix                     |5.17.0+mc1.20.1     |DONE      |Manifest: NOSIGNATURE         citadel-2.5.4-1.20.1.jar                          |Citadel                       |citadel                       |2.5.4               |DONE      |Manifest: NOSIGNATURE         mixinextras-forge-0.2.0-beta.9.jar                |MixinExtras                   |mixinextras                   |0.2.0-beta.9        |DONE      |Manifest: NOSIGNATURE         sophisticatedbackpacks-1.20.1-3.20.5.1039 (1).jar |Sophisticated Backpacks       |sophisticatedbackpacks        |3.20.5.1039         |DONE      |Manifest: NOSIGNATURE         mcw-doors-1.1.0forge-mc1.20.1.jar                 |Macaw's Doors                 |mcwdoors                      |1.1.0               |DONE      |Manifest: NOSIGNATURE         bygonenether-1.3.2-1.20.x.jar                     |Bygone Nether                 |bygonenether                  |1.3.2               |DONE      |Manifest: NOSIGNATURE         SupremeMiningDimensions-1.20.1-V1.4.3.8.jar       |Supreme Mining Dimension      |supreme_mining_dimension      |1.4.3.8             |DONE      |Manifest: NOSIGNATURE         Paraglider-forge-20.1.3.jar                       |Paraglider                    |paraglider                    |20.1.3              |DONE      |Manifest: NOSIGNATURE         ctov-forge-3.4.3.jar                              |ChoiceTheorem's Overhauled Vil|ctov                          |3.4.3               |DONE      |Manifest: NOSIGNATURE         twilightforest-1.20.1-4.3.2145-universal.jar      |The Twilight Forest           |twilightforest                |4.3.2145            |DONE      |Manifest: NOSIGNATURE         geophilic-v2.2.0-mc1.20u1.20.2.jar                |Geophilic                     |geophilic                     |2.2.0-mc1.20u1.20.2 |DONE      |Manifest: NOSIGNATURE         structure_gel-1.20.1-2.16.2.jar                   |Structure Gel API             |structure_gel                 |2.16.2              |DONE      |Manifest: NOSIGNATURE         corruption 1.20.1.jar                             |corruption                    |corruption                    |1.0.0               |DONE      |Manifest: NOSIGNATURE         corpse-forge-1.20.1-1.0.12.jar                    |Corpse                        |corpse                        |1.20.1-1.0.12       |DONE      |Manifest: NOSIGNATURE         FarmersDelight-1.20.1-1.2.4.jar                   |Farmer's Delight              |farmersdelight                |1.20.1-1.2.4        |DONE      |Manifest: NOSIGNATURE         ends_delight-1.20.1-1.0.1.jar                     |End's Delight                 |ends_delight                  |1.0.1               |DONE      |Manifest: NOSIGNATURE         handcrafted-forge-1.20.1-3.0.6.jar                |Handcrafted                   |handcrafted                   |3.0.6               |DONE      |Manifest: NOSIGNATURE         AmbientSounds_FORGE_v5.3.9_mc1.20.1.jar           |AmbientSounds                 |ambientsounds                 |5.3.9               |DONE      |Manifest: NOSIGNATURE         explorify-v1.4.0.jar                              |Explorify                     |explorify                     |1.4.0               |DONE      |Manifest: NOSIGNATURE         blur-forge-3.1.1.jar                              |Blur (Forge)                  |blur                          |3.1.1               |DONE      |Manifest: NOSIGNATURE         valhelsia_structures-forge-1.20.1-1.1.2.jar       |Valhelsia Structures          |valhelsia_structures          |1.20.1-1.1.2        |DONE      |Manifest: NOSIGNATURE         mcw-trapdoors-1.1.2-mc1.20.1forge.jar             |Macaw's Trapdoors             |mcwtrpdoors                   |1.1.2               |DONE      |Manifest: NOSIGNATURE         mcw-fences-1.1.1-mc1.20.1forge.jar                |Macaw's Fences and Walls      |mcwfences                     |1.1.1               |DONE      |Manifest: NOSIGNATURE         resourcefulconfig-forge-1.20.1-2.1.2.jar          |Resourcefulconfig             |resourcefulconfig             |2.1.2               |DONE      |Manifest: NOSIGNATURE         bendy-lib-forge-4.0.0.jar                         |Bendy lib                     |bendylib                      |4.0.0               |DONE      |Manifest: NOSIGNATURE         curios-forge-5.3.5+1.20.1.jar                     |Curios API                    |curios                        |5.3.5+1.20.1        |DONE      |Manifest: NOSIGNATURE         dungeons-and-taverns-3.0.3.f[Forge].jar           |Dungeons and Taverns          |mr_dungeons_andtaverns        |3.0.3.f             |DONE      |Manifest: NOSIGNATURE         resourcefullib-forge-1.20.1-2.1.24.jar            |Resourceful Lib               |resourcefullib                |2.1.24              |DONE      |Manifest: NOSIGNATURE         cumulus_menus-1.20.1-1.0.0-neoforge.jar           |Cumulus                       |cumulus_menus                 |1.20.1-1.0.0-neoforg|DONE      |Manifest: NOSIGNATURE         deeperdarker-forge-1.20.1-1.2.1.jar               |Deeper and Darker             |deeperdarker                  |1.2.1               |DONE      |Manifest: NOSIGNATURE         cfm-forge-1.20.1-7.0.0-pre36.jar                  |MrCrayfish's Furniture Mod    |cfm                           |7.0.0-pre36         |DONE      |Manifest: 0d:78:5f:44:c0:47:0c:8c:e2:63:a3:04:43:d4:12:7d:b0:7c:35:37:dc:40:b1:c1:98:ec:51:eb:3b:3c:45:99         AI-Improvements-1.20-0.5.2.jar                    |AI-Improvements               |aiimprovements                |0.5.2               |DONE      |Manifest: NOSIGNATURE         mcw-furniture-3.2.2-mc1.20.1forge.jar             |Macaw's Furniture             |mcwfurnitures                 |3.2.2               |DONE      |Manifest: NOSIGNATURE         cupboard-1.20.1-2.6.jar                           |Cupboard utilities            |cupboard                      |1.20.1-2.6          |DONE      |Manifest: NOSIGNATURE         nitrogen_internals-1.20.1-1.0.7-neoforge.jar      |Nitrogen                      |nitrogen_internals            |1.20.1-1.0.7-neoforg|DONE      |Manifest: NOSIGNATURE         Towns-and-Towers-1.12-Fabric+Forge.jar            |Towns and Towers              |t_and_t                       |0.0NONE             |DONE      |Manifest: NOSIGNATURE         mcw-lights-1.0.6-mc1.20.1forge.jar                |Macaw's Lights and Lamps      |mcwlights                     |1.0.6               |DONE      |Manifest: NOSIGNATURE         Essential (forge_1.20.1).jar                      |Essential                     |essential                     |1.3.1.3+g88238d7752 |DONE      |Manifest: NOSIGNATURE         SmartBrainLib-forge-1.20.1-1.14.jar               |SmartBrainLib                 |smartbrainlib                 |1.14                |DONE      |Manifest: NOSIGNATURE         MutantMonsters-v8.0.7-1.20.1-Forge.jar            |Mutant Monsters               |mutantmonsters                |8.0.7               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         the-conjurer-1.20.1-1.1.6.jar                     |The Conjurer                  |conjurer_illager              |1.1.6               |DONE      |Manifest: NOSIGNATURE         Structory_Towers_1.20.4_v1.0.6.jar                |Structory: Towers             |structorytowers               |1.0.6               |DONE      |Manifest: NOSIGNATURE         Fallingleaves-1.20-2.1.0-beta.1.jar               |Falling Leaves                |fallingleaves                 |2.1.0-beta.1        |DONE      |Manifest: NOSIGNATURE         mcw-paintings-1.0.5-1.20.1forge.jar               |Macaw's Paintings             |mcwpaintings                  |1.0.5               |DONE      |Manifest: NOSIGNATURE         SereneSeasons-1.20.1-9.0.0.46.jar                 |Serene Seasons                |sereneseasons                 |9.0.0.46            |DONE      |Manifest: NOSIGNATURE         decorative_blocks-forge-1.20.1-4.1.3.jar          |Decorative Blocks             |decorative_blocks             |4.1.3               |DONE      |Manifest: NOSIGNATURE         ratsandtrapsmod2dot7dot0.jar                      |Rats and Traps                |ratmod                        |2.7.0               |DONE      |Manifest: NOSIGNATURE         Terralith_1.20.4_v2.4.11.jar                      |Terralith                     |terralith                     |2.4.11              |DONE      |Manifest: NOSIGNATURE         shadowlands-3.10.4.jar                            |Shadowlands                   |shadowlands                   |3.10.4              |DONE      |Manifest: NOSIGNATURE         puzzlesaccessapi-forge-8.0.7.jar                  |Puzzles Access Api            |puzzlesaccessapi              |8.0.7               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         skinlayers3d-forge-1.6.3-mc1.20.1.jar             |3d-Skin-Layers                |skinlayers3d                  |1.6.3               |DONE      |Manifest: NOSIGNATURE         friendsandfoes-forge-mc1.20.1-2.0.10.jar          |Friends&Foes                  |friendsandfoes                |2.0.10              |DONE      |Manifest: NOSIGNATURE         client-1.20.1-20230612.114412-srg.jar             |Minecraft                     |minecraft                     |1.20.1              |DONE      |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f         voicechat-forge-1.20.1-2.5.12.jar                 |Simple Voice Chat             |voicechat                     |1.20.1-2.5.12       |DONE      |Manifest: NOSIGNATURE         soundphysics-forge-1.20.1-1.1.2.jar               |Sound Physics Remastered      |sound_physics_remastered      |1.20.1-1.1.2        |DONE      |Manifest: NOSIGNATURE         TerraBlender-forge-1.20.1-3.0.1.4.jar             |TerraBlender                  |terrablender                  |3.0.1.4             |DONE      |Manifest: NOSIGNATURE         BiomesOPlenty-1.20.1-18.0.0.598.jar               |Biomes O' Plenty              |biomesoplenty                 |18.0.0.598          |DONE      |Manifest: NOSIGNATURE         ForgeConfigScreens-v8.0.2-1.20.1-Forge.jar        |Forge Config Screens          |forgeconfigscreens            |8.0.2               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         RegionsUnexploredForge-0.5.5+1.20.1.jar           |Regions Unexplored            |regions_unexplored            |0.5.5               |DONE      |Manifest: NOSIGNATURE         CreativeCore_FORGE_v2.11.27_mc1.20.1.jar          |CreativeCore                  |creativecore                  |2.11.27             |DONE      |Manifest: NOSIGNATURE         nethersdelight-1.20.1-4.0.jar                     |Nether's Delight              |nethersdelight                |1.20.1-4.0          |DONE      |Manifest: NOSIGNATURE         ecologics-forge-1.20.1-2.2.0.jar                  |Ecologics                     |ecologics                     |2.2.0               |DONE      |Manifest: NOSIGNATURE         Rats-1.20.1-8.1.2.jar                             |Rats                          |rats                          |1.20.1-8.1.2        |DONE      |Manifest: NOSIGNATURE         forge-1.20.1-47.1.29-universal.jar                |Forge                         |forge                         |47.1.29             |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90         [1.20.1] SecurityCraft v1.9.9.jar                 |SecurityCraft                 |securitycraft                 |1.9.9               |DONE      |Manifest: NOSIGNATURE         invhud.forge.1.20.1-3.4.18.jar                    |Inventory HUD+(Forge edition) |inventoryhud                  |3.4.18              |DONE      |Manifest: NOSIGNATURE         EndlessBiomes 1.5.0 - 1.20.1.jar                  |EndlessBiomes                 |endlessbiomes                 |1.0.0               |DONE      |Manifest: NOSIGNATURE         modonomicon-1.20.1-forge-1.69.0.jar               |Modonomicon                   |modonomicon                   |1.69.0              |DONE      |Manifest: NOSIGNATURE         creeperoverhaul-3.0.2-forge.jar                   |Creeper Overhaul              |creeperoverhaul               |3.0.2               |DONE      |Manifest: NOSIGNATURE         ferritecore-6.0.1-forge.jar                       |Ferrite Core                  |ferritecore                   |6.0.1               |DONE      |Manifest: 41:ce:50:66:d1:a0:05:ce:a1:0e:02:85:9b:46:64:e0:bf:2e:cf:60:30:9a:fe:0c:27:e0:63:66:9a:84:ce:8a         occultism-1.20.1-1.125.0.jar                      |Occultism                     |occultism                     |1.125.0             |DONE      |Manifest: NOSIGNATURE         biomemusic-1.20.1-2.3.jar                         |biomemusic mod                |biomemusic                    |1.20.1-2.3          |DONE      |Manifest: NOSIGNATURE         PuzzlesLib-v8.1.18-1.20.1-Forge.jar               |Puzzles Lib                   |puzzleslib                    |8.1.18              |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         valhelsia_core-forge-1.20.1-1.1.2.jar             |Valhelsia Core                |valhelsia_core                |1.1.2               |DONE      |Manifest: NOSIGNATURE         cristellib-1.1.5-forge.jar                        |Cristel Lib                   |cristellib                    |1.1.5               |DONE      |Manifest: NOSIGNATURE         ad_astra-forge-1.20.1-1.15.18.jar                 |Ad Astra                      |ad_astra                      |1.15.18             |DONE      |Manifest: NOSIGNATURE     Crash Report UUID: 8710b41d-e083-48c2-84d4-e07dd1fb3190     FML: 47.1     Forge: net.minecraftforge:47.1.29
    • LUCONETWORK  LucoNetwork is a brand new SkyBlock and Prisons server and we are looking for staff & Developers. We are always in need of players and we want to make this a very fun and enjoyable server for all to enjoy. We are welcoming ALL. We hope to be the best and we want your support to make our servers better. Thank you so much for reading this. About the server: We are currently working on getting the SkyBlock server up and released. Then we will be working on some more servers to get them up. We will be bug fixing once the server released & working hard to get updates out to Skyblock too. we are striving to be the best network. What game modes can I hope to see inside Luco Network?  Prisons  Lifesteal  SkyBlock  Survival / Earth SMP Why should I join LucoNetwork? We strive to listen to our player base, we want to work for our player base.  We strive to make the best & enjoyable servers for all to enjoy. Our links: https://discord.gg/fmd4SrzdWt
    • When i try to launch Minecraft Java 1.20.1 forge with mods (82 mods),on start it loaded all mods,but at end Java just crashed.  p.s i allocated 8GB ram for minecraft and i didn't runned another instance.Log file pp.s I use ATlauncher   Environment: Organising filesystem [24/04/2024 23:40:08 PM] ATLauncher Version: 3.4.36.3 [11ae0b2334c236e93ee8128de980952b2a1b8900] [24/04/2024 23:40:08 PM] App Arguments: ["--install-method=aur","--no-launcher-update"] [24/04/2024 23:40:08 PM] JVM Arguments: ["-Dawt.useSystemAAFontSettings=on","-Dswing.aatext=true"] [24/04/2024 23:40:08 PM] Java Version: Java 22 (22) [24/04/2024 23:40:08 PM] Java Path: /usr/lib/jvm/java-22-openjdk [24/04/2024 23:40:08 PM] 64 Bit Java: true [24/04/2024 23:40:08 PM] RAM Available: 14931MB [24/04/2024 23:40:08 PM] Launcher Directory: **USERSDIR** [24/04/2024 23:40:08 PM] GPU: IvyBridge GT2 [HD Graphics 4000] (Intel Corporation (0x8086)) unknown 256MB VRAM [24/04/2024 23:40:08 PM] CPU: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz 4 cores/8 threads [24/04/2024 23:40:08 PM] Operating System: EndeavourOS (unknown (unknown) build 6.8.7-arch1-1) [24/04/2024 23:40:08 PM] Bitness: 64 [24/04/2024 23:40:08 PM] Uptime: 15889 [24/04/2024 23:40:08 PM] Manufacturer: GNU/Linux
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.