Jump to content

[1.5.2] Can't have more than one GUI


ElectronFusion

Recommended Posts

(This might be a noob question) I have to make multiple GUIs. My first GUI worked perfectly but as soon as I made my second, the first would not work. I'm sure this is a trivial problem but as I said, I am only a beginner.

 

Core

package TechCraft;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.src.ModLoader;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.PreInit;   
import cpw.mods.fml.common.Mod.Init;       
import cpw.mods.fml.common.Mod.PostInit;   
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;

@Mod(modid="TechCraftID", name="TechCraft", version="0.0.0")
@NetworkMod(clientSideRequired = true, serverSideRequired = false, channels = {ModInfo.CHANNEL}, packetHandler = PacketHandler.class)


public class Core {
public static CreativeTabs tabTechCraft = new  tabTechCraft(CreativeTabs.getNextID(), "TechCraft");

public final static Item cobaltIngot = new CobaltIngot(4001).setMaxStackSize(64).setUnlocalizedName("ingotcobalt").setCreativeTab(tabTechCraft);;
public final static Block cobaltBlock = new CobaltBlock(4002, Material.ground).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Cobalt Block").setCreativeTab(tabTechCraft);
public final static Block cobaltOre = new CobaltOre(4003, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Cobalt Ore").setCreativeTab(tabTechCraft);

public final static Item nickelIngot = new NickelIngot(4008).setMaxStackSize(64).setUnlocalizedName("ingotnickel").setCreativeTab(tabTechCraft);;
public final static Block nickelOre = new NickelOre(4006, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Nickel Ore").setCreativeTab(tabTechCraft);
public final static Block nickelBlock = new NickelBlock(4007, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Nickel Block").setCreativeTab(tabTechCraft);

public final static Item steelIngot = new SteelIngot(4004).setMaxStackSize(64).setUnlocalizedName("ingotsteel").setCreativeTab(tabTechCraft);;
public final static Block steelBlock = new SteelBlock(4005, Material.ground).setHardness(6.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Steel Block").setCreativeTab(tabTechCraft); 

public final static Item copperIngot = new CopperIngot(4009).setMaxStackSize(64).setUnlocalizedName("ingotCopper").setCreativeTab(tabTechCraft);;
public final static Block copperOre = new CopperOre(4010, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Copper Ore").setCreativeTab(tabTechCraft);
public final static Block copperBlock = new CopperBlock(4011, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Copper Bloc").setCreativeTab(tabTechCraft);

public final static Item zincIngot = new ZincIngot(4012).setMaxStackSize(64).setUnlocalizedName("ingotzinc").setCreativeTab(tabTechCraft);;
public final static Block zincOre = new ZincOre(4013, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Zinc Ore").setCreativeTab(tabTechCraft);
public final static Block zincBlock = new ZincBlock(4014, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Zinc Block").setCreativeTab(tabTechCraft);

public final static Block liquefierIdle = new Liquefier(4015, false).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Liquefier").setCreativeTab(tabTechCraft);
public final static Block liquefierActive = new Liquefier(4016, true).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setLightValue(1F).setUnlocalizedName("Liquefier");
public final static Block coolerIdle = new Cooler(4057, false).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Cooler").setCreativeTab(tabTechCraft);
public final static Block coolerActive = new Cooler(4058, true).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Cooler");

public final static Item bucketOfZincAndCopper = new BucketOfZincAndCopper(4017).setMaxStackSize(16).setUnlocalizedName("bucketBrass").setCreativeTab(tabTechCraft);;
public final static Item bucketOfMoltenZincAndCopper = new BucketOfZincAndCopper(4018).setMaxStackSize(16).setUnlocalizedName("bucketMoltenBrass").setCreativeTab(tabTechCraft);;
public final static Item brassIngot = new BrassIngot(4034).setMaxStackSize(64).setUnlocalizedName("brassIngot").setCreativeTab(tabTechCraft);
public final static Block brassBlock = new BrassBlock(4035, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Brass Block").setCreativeTab(tabTechCraft);

public final static Item invarIngot = new InvarIngot(4036).setMaxStackSize(64).setUnlocalizedName("invarIngot").setCreativeTab(tabTechCraft);
public final static Block invarBlock = new InvarBlock(4037, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Invar Block").setCreativeTab(tabTechCraft);

public final static Item electrumIngot = new ElectrumIngot(4038).setMaxStackSize(64).setUnlocalizedName("electrumIngot").setCreativeTab(tabTechCraft);
public final static Block electrumBlock = new ElectrumBlock(4039, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Electrum Block").setCreativeTab(tabTechCraft);

public final static Item bronzeIngot = new BronzeIngot(4040).setMaxStackSize(64).setUnlocalizedName("bronzeIngot").setCreativeTab(tabTechCraft);
public final static Block bronzeBlock = new BronzeBlock(4041, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Bronze Block").setCreativeTab(tabTechCraft);

public final static Item pewterIngot = new PewterIngot(4042).setMaxStackSize(64).setUnlocalizedName("pewterIngot").setCreativeTab(tabTechCraft);
public final static Block pewterBlock = new PewterBlock(4043, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Pewter Block").setCreativeTab(tabTechCraft);

public final static Item silverIngot = new SilverIngot(4044).setMaxStackSize(64).setUnlocalizedName("silverIngot").setCreativeTab(tabTechCraft);
public final static Block silverBlock = new SilverBlock(4045, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Silver Block").setCreativeTab(tabTechCraft);
public final static Block silverOre = new SilverOre(4046, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Silver Ore").setCreativeTab(tabTechCraft);

public final static Item  tinIngot = new TinIngot(4047).setMaxStackSize(64).setUnlocalizedName("tinIngot").setCreativeTab(tabTechCraft);
public final static Block tinBlock = new TinBlock(4048, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Tin Block").setCreativeTab(tabTechCraft);
public final static Block tinOre = new TinOre(4049, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Tin Ore").setCreativeTab(tabTechCraft);

public final static Item  aluminiumIngot = new AluminiumIngot(4050).setMaxStackSize(64).setUnlocalizedName("aluminiumIngot").setCreativeTab(tabTechCraft);
public final static Block aluminiumBlock = new AluminiumBlock(4051, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Aluminium Block").setCreativeTab(tabTechCraft);
public final static Block aluminiumOre = new AluminiumOre(4052, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Aluminium Ore").setCreativeTab(tabTechCraft);

public final static Item plutoniumShard = new PlutoniumShard(4020).setMaxStackSize(64).setUnlocalizedName("plutoniumShard");
public final static Item plutoniumIngot = new PlutoniumIngot(4021).setMaxStackSize(64).setUnlocalizedName("plutoniumIngot");
public final static Block plutoniumOre = new PlutoniumOre(4019, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Plutonium Ore").setLightValue(0.4F).setCreativeTab(tabTechCraft);
public final static Item plutoniumBillet = new PlutoniumBillet(4022).setMaxStackSize(64).setUnlocalizedName("plutoniumBillet");
public final static Block plutoniumBlock = new PlutoniumBlock(4023, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Plutonium Block").setLightValue(0.7F);

public final static Item  plutonium244Billet = new Plutonium244Billet(4024).setMaxStackSize(64).setUnlocalizedName("plutonium244Billet");
public final static Item plutonium238Billet = new Plutonium238Billet(4025).setMaxStackSize(64).setUnlocalizedName("plutonium238Billet");
public final static Item plutonium239Billet = new Plutonium239Billet(4026).setMaxStackSize(64).setUnlocalizedName("plutonium239Billet");

public final static Item neptuniumShard = new NeptuniumShard(4027).setMaxStackSize(64).setUnlocalizedName("neptuniumShard");
public final static Item neptuniumIngot = new NeptuniumIngot(4028).setMaxStackSize(64).setUnlocalizedName("neptuniumIngot");
public final static Block neptuniumOre = new NeptuniumOre(4029, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Neptunium Ore").setLightValue(0.4F).setCreativeTab(tabTechCraft);
public final static Item neptuniumBillet = new NeptuniumBillet(4030).setMaxStackSize(64).setUnlocalizedName("neptuniumbillet");
public final static Block neptuniumBlock = new NeptuniumBlock(4031, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Neptunium Block").setLightValue(0.4F).setCreativeTab(tabTechCraft);

public final static Item neptunium235Billet = new Neptunium235Billet(4031).setMaxStackSize(64).setUnlocalizedName("neptunium235billet");
public final static Item neptunium236Billet = new Neptunium236Billet(4032).setMaxStackSize(64).setUnlocalizedName("neptunium236billet");
public final static Item neptunium237Billet = new Neptunium237Billet(4033).setMaxStackSize(64).setUnlocalizedName("neptunium239billet");

public final static Item uraniumIngot = new UraniumIngot(4053).setMaxStackSize(64).setUnlocalizedName("uraniumIngot");
public final static Block uraniumOre = new UraniumOre(4054, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Uranium Ore").setLightValue(0.4F).setCreativeTab(tabTechCraft);
public final static Item uraniumBillet = new UraniumBillet(4055).setMaxStackSize(64).setUnlocalizedName("uraniumbillet");
public final static Block uraniumBlock = new UraniumBlock(4056, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Neptunium Block").setLightValue(0.4F).setCreativeTab(tabTechCraft);

public final static Item uranium235Billet = new Uranium235Billet(4077).setMaxStackSize(64).setUnlocalizedName("uranium235billet");
public final static Item uranium238Billet = new Uranium238Billet(4078).setMaxStackSize(64).setUnlocalizedName("uranium238billet");
public final static Item uranium233Billet = new Uranium233Billet(4079).setMaxStackSize(64).setUnlocalizedName("uranium233billet");

public final static Item bucketOfMercury = new bucketOfMercury(4080).setMaxStackSize(16).setUnlocalizedName("bucektOfMercury");
public final static Block mercuryOre = new MercuryOre(4081, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Mercury Ore");

public final static Item  chromiumIngot = new ChromiumIngot(4082).setMaxStackSize(64).setUnlocalizedName("chromiumIngot").setCreativeTab(tabTechCraft);
public final static Block chromiumBlock = new ChromiumBlock(4083, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Chromium Block").setCreativeTab(tabTechCraft);
public final static Block chromiumOre = new ChromiumOre(4084, Material.rock).setHardness(4.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Chromium Ore").setCreativeTab(tabTechCraft);

public final static Block b83Bomb = new B83Bomb(3000, Material.rock).setHardness(4.0F).setStepSound(Block.soundClothFootstep).setUnlocalizedName("B83 Nuclear Bomb").setCreativeTab(tabTechCraft);
public final static Block rDXExplosive = new RDXExplosive(3001, Material.grass).setHardness(4.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("RDX").setCreativeTab(tabTechCraft);

@Instance(value = "TechCraftID")
public static Core instance = new Core();


@SidedProxy(clientSide="TechCraft.ClientProxy", serverSide="TechCraft.CommonProxy")
public static CommonProxy proxy;





@PreInit
public void preInit(FMLPreInitializationEvent event){
	NetworkRegistry.instance().registerGuiHandler(this, this.proxy);
	instance = this;

}

@Init
public void load(FMLInitializationEvent event){

	new GuiHandler();


	LanguageRegistry.addName(cobaltIngot, ("Cobalt Ingot"));



	LanguageRegistry.addName(cobaltBlock, ("Cobalt Block"));
	MinecraftForge.setBlockHarvestLevel(cobaltBlock, "pickaxe", 2);
	GameRegistry.registerBlock(cobaltBlock, "cobaltBlock");


	LanguageRegistry.addName(cobaltOre, ("Cobalt Ore"));
	MinecraftForge.setBlockHarvestLevel(cobaltOre, "pickaxe", 2);
	GameRegistry.registerBlock(cobaltOre, "cobaltOre");

	LanguageRegistry.addName(steelIngot,("Steel Ingot"));

	LanguageRegistry.addName(steelBlock, ("Steel Block"));
	MinecraftForge.setBlockHarvestLevel(steelBlock, "pickaxe", 2);
	GameRegistry.registerBlock(steelBlock, "steelBlock");

	LanguageRegistry.addName(nickelIngot, ("Nickel Ingot"));

	LanguageRegistry.addName(nickelOre, ("Nickel Ore"));
	MinecraftForge.setBlockHarvestLevel(nickelOre, "pickaxe", 2);
	GameRegistry.registerBlock(nickelOre, "nickelOre");

	LanguageRegistry.addName(nickelBlock, ("Nickel Block"));
	MinecraftForge.setBlockHarvestLevel(nickelBlock, "pickaxe", 2);
	GameRegistry.registerBlock(nickelBlock, "nickelBlock");

	LanguageRegistry.addName(copperIngot, ("Copper Ingot"));

	LanguageRegistry.addName(copperOre, ("Copper Ore"));
	MinecraftForge.setBlockHarvestLevel(copperBlock, "pickaxe", 2);
	GameRegistry.registerBlock(copperOre, "copperOre");

	LanguageRegistry.addName(copperBlock, ("Copper Block"));
	MinecraftForge.setBlockHarvestLevel(copperBlock, "pickaxe", 2);
	GameRegistry.registerBlock(copperBlock, "copperBlock");

	LanguageRegistry.addName(zincIngot, ("Zinc Ingot"));

	LanguageRegistry.addName(zincOre, ("Zinc Ore"));
	MinecraftForge.setBlockHarvestLevel(zincOre, "pickaxe", 2);
	GameRegistry.registerBlock(zincOre, "zincOre");

	LanguageRegistry.addName(zincBlock, ("Zinc Block"));
	MinecraftForge.setBlockHarvestLevel(zincBlock, "pickaxe", 2);
	GameRegistry.registerBlock(zincBlock, "zincBlock");

	LanguageRegistry.addName(plutoniumOre, ("Plutonium Ore"));
	MinecraftForge.setBlockHarvestLevel(plutoniumOre, "pickaxe", 3);
	GameRegistry.registerBlock(plutoniumOre, "plutoniumOre");

	LanguageRegistry.addName(plutoniumBlock, ("Plutonium Block"));
	MinecraftForge.setBlockHarvestLevel(plutoniumBlock, "pickaxe", 3);
	GameRegistry.registerBlock(plutoniumBlock, "plutoniumBlock");

	LanguageRegistry.addName(plutoniumShard, ("Plutonium Shard"));
	LanguageRegistry.addName(plutoniumIngot, ("Plutonium Ingot"));
	LanguageRegistry.addName(plutoniumBillet, ("Plutonium Billet"));
	LanguageRegistry.addName(plutonium244Billet, ("Plutonium 244 Billet"));
	LanguageRegistry.addName(plutonium238Billet, ("Plutonium 238 Billet"));
	LanguageRegistry.addName(plutonium239Billet, ("Plutonium 239 Billet"));

	LanguageRegistry.addName(neptuniumOre, ("Neptunium Ore"));
	MinecraftForge.setBlockHarvestLevel(neptuniumOre, "pickaxe", 3);
	GameRegistry.registerBlock(neptuniumOre, "neptuniumOre");

	LanguageRegistry.addName(neptuniumBlock, ("Neptunium Block"));
	MinecraftForge.setBlockHarvestLevel(neptuniumBlock, "pickaxe", 3);
	GameRegistry.registerBlock(neptuniumBlock, "neptuniumBlock");

	LanguageRegistry.addName(neptuniumShard, ("Neptunium Shard"));
	LanguageRegistry.addName(neptuniumIngot, ("Neptunium Ingot"));
	LanguageRegistry.addName(neptuniumBillet, ("Neptunium Billet"));
	LanguageRegistry.addName(neptunium235Billet, ("Neptunium 235 Billet"));
	LanguageRegistry.addName(neptunium236Billet, ("Neptunium 236 Billet"));
	LanguageRegistry.addName(neptunium237Billet, ("Neptunium 237 Billet"));

	LanguageRegistry.addName(uraniumIngot, ("Uranium Ingot"));
	LanguageRegistry.addName(uraniumBillet, ("Uranium Billet"));
	LanguageRegistry.addName(uranium233Billet, ("Uranium 233 Billet"));
	LanguageRegistry.addName(uranium238Billet, ("Uranium 238 Billet"));
	LanguageRegistry.addName(uranium235Billet, ("Uranium 235 Billet"));

	LanguageRegistry.addName(liquefierIdle, ("Liquefier"));
	MinecraftForge.setBlockHarvestLevel(liquefierIdle, "pickaxe", 2);
	GameRegistry.registerBlock(liquefierIdle, "liquefier");

	LanguageRegistry.addName(liquefierActive, ("Liquefier"));
	MinecraftForge.setBlockHarvestLevel(liquefierActive, "pickaxe", 2);
	GameRegistry.registerBlock(liquefierActive, "liquefieractive");

	LanguageRegistry.addName(bucketOfZincAndCopper, ("Bucket of Zinc and Copper"));

	LanguageRegistry.addName(bucketOfMoltenZincAndCopper, ("Bucket of Molten Brass"));

	LanguageRegistry.addName(brassIngot, ("Brass Ingot"));
	LanguageRegistry.addName(brassBlock, ("Brass Block"));
	MinecraftForge.setBlockHarvestLevel(brassBlock, "pickaxe", 2);
	GameRegistry.registerBlock(brassBlock, "brassBlock");

	LanguageRegistry.addName(invarIngot, ("Invar Ingot"));
	LanguageRegistry.addName(invarBlock, ("Invar Block"));
	MinecraftForge.setBlockHarvestLevel(invarBlock, "pickaxe", 2);
	GameRegistry.registerBlock(invarBlock, "invarBlock");

	LanguageRegistry.addName(electrumIngot, ("Electrum Ingot"));
	LanguageRegistry.addName(electrumBlock, ("Electrum Block"));
	MinecraftForge.setBlockHarvestLevel(electrumBlock, "pickaxe", 2);
	GameRegistry.registerBlock(electrumBlock, "electrumBlock");

	LanguageRegistry.addName(bronzeIngot, ("Bronze Ingot"));
	LanguageRegistry.addName(bronzeBlock, ("Bronze Block"));
	MinecraftForge.setBlockHarvestLevel(bronzeBlock, "pickaxe", 2);
	GameRegistry.registerBlock(bronzeBlock, "bronzeBlock");

	LanguageRegistry.addName(pewterIngot, ("Pewter Ingot"));
	LanguageRegistry.addName(pewterBlock, ("Pewter Block"));
	MinecraftForge.setBlockHarvestLevel(pewterBlock, "pickaxe", 2);
	GameRegistry.registerBlock(pewterBlock, "pewterBlock");

	LanguageRegistry.addName(tinIngot, ("Tin Ingot"));

	LanguageRegistry.addName(tinOre, ("Tin Ore"));
	MinecraftForge.setBlockHarvestLevel(tinOre, "pickaxe", 2);
	GameRegistry.registerBlock(tinOre, "tinOre");

	LanguageRegistry.addName(tinBlock, ("Tin Block"));
	MinecraftForge.setBlockHarvestLevel(tinBlock, "pickaxe", 2);
	GameRegistry.registerBlock(tinBlock, "tinBlock");

	LanguageRegistry.addName(silverIngot, ("Silver Ingot"));

	LanguageRegistry.addName(silverOre, ("Silver Ore"));
	MinecraftForge.setBlockHarvestLevel(silverOre, "pickaxe", 2);
	GameRegistry.registerBlock(silverOre, "silverOre");

	LanguageRegistry.addName(silverBlock, ("Silver Block"));
	MinecraftForge.setBlockHarvestLevel(silverBlock, "pickaxe", 2);
	GameRegistry.registerBlock(silverBlock, "silverBlock");

	LanguageRegistry.addName(coolerIdle, ("Cooler"));
	MinecraftForge.setBlockHarvestLevel(coolerIdle, "pickaxe", 2);
	GameRegistry.registerBlock(coolerIdle, "cooler");

	LanguageRegistry.addName(coolerActive, ("Cooler"));
	MinecraftForge.setBlockHarvestLevel(coolerActive, "pickaxe", 2);
	GameRegistry.registerBlock(coolerActive, "coolerActive");

	LanguageRegistry.addName(aluminiumIngot, ("Aluminium Ingot"));

	LanguageRegistry.addName(aluminiumOre, ("Aluminium Ore"));
	MinecraftForge.setBlockHarvestLevel(aluminiumOre, "pickaxe", 2);
	GameRegistry.registerBlock(aluminiumOre, "AluminiumOre");

	LanguageRegistry.addName(aluminiumBlock, ("Aluminium Block"));
	MinecraftForge.setBlockHarvestLevel(aluminiumBlock, "pickaxe", 2);
	GameRegistry.registerBlock(aluminiumBlock, "AluminiumBlock");

	LanguageRegistry.addName(chromiumIngot, ("Chromium Ingot"));

	LanguageRegistry.addName(chromiumOre, ("Chromium Ore"));
	MinecraftForge.setBlockHarvestLevel(chromiumOre, "pickaxe", 2);
	GameRegistry.registerBlock(chromiumOre, "ChromiumOre");

	LanguageRegistry.addName(chromiumBlock, ("Chromium Block"));
	MinecraftForge.setBlockHarvestLevel(chromiumBlock, "pickaxe", 2);
	GameRegistry.registerBlock(chromiumBlock, "Chromium Block");

	LanguageRegistry.addName(bucketOfMercury, ("Bucket of Mercury"));
	LanguageRegistry.addName(mercuryOre, ("Mercury Ore"));
	MinecraftForge.setBlockHarvestLevel(mercuryOre, "pickaxe", 2);
	GameRegistry.registerBlock(mercuryOre, "Mercury Ore");


	LanguageRegistry.addName(b83Bomb, ("B83 Nuclear Bomb"));
	MinecraftForge.setBlockHarvestLevel(b83Bomb, "pickaxe", 3);
	GameRegistry.registerBlock(b83Bomb, "b61Bomb");

	LanguageRegistry.addName(rDXExplosive, ("RDX"));
	MinecraftForge.setBlockHarvestLevel(rDXExplosive, "pickaxe", 0);
	GameRegistry.registerBlock(rDXExplosive, "rDXEXplosive");


	LanguageRegistry.instance().addStringLocalization("entity.B83", "en_US", "B83 Nuclear Bomb");
	EntityRegistry.registerGlobalEntityID(EntityB83Primed.class, "B83", EntityRegistry.findGlobalUniqueEntityId());
	EntityRegistry.registerModEntity(EntityB83Primed.class, "B83", 1, this, 128, 1, false); 

	LanguageRegistry.instance().addStringLocalization("entity.RDX", "en_US", "RDX");
	RenderingRegistry.registerEntityRenderingHandler(EntityRDXPrimed.class, new RenderRDX());
	EntityRegistry.registerModEntity(EntityRDXPrimed.class, "RDX", 1, this, 127, 1, false);
	EntityRegistry.registerGlobalEntityID(EntityRDXPrimed.class, "RDX", EntityRegistry.findGlobalUniqueEntityId());

	GameRegistry.addSmelting(cobaltOre.blockID, new ItemStack(cobaltIngot), 0.1f);
	GameRegistry.addRecipe(new ItemStack(cobaltBlock), "xxx", "xxx", "xxx",'x', cobaltIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(cobaltIngot, 9), new ItemStack(cobaltBlock));

	GameRegistry.addSmelting(nickelOre.blockID, new ItemStack(nickelIngot), 0.1f);
	GameRegistry.addRecipe(new ItemStack(nickelBlock), "xxx", "xxx", "xxx",'x', nickelIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(nickelIngot, 9), new ItemStack(nickelBlock));

	GameRegistry.addSmelting(copperOre.blockID, new ItemStack(copperIngot), 0.1f);
	GameRegistry.addRecipe(new ItemStack(copperBlock), "xxx", "xxx", "xxx",'x', copperIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(copperIngot, 9), new ItemStack(copperBlock));

	GameRegistry.addSmelting(Item.ingotIron.itemID, new ItemStack(steelIngot), 0.1f);
	GameRegistry.addRecipe(new ItemStack(steelBlock), "xxx", "xxx", "xxx",'x', steelIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(steelIngot, 9), new ItemStack(steelBlock));

	GameRegistry.addRecipe(new ItemStack(bucketOfZincAndCopper), "xxx", " y ", " z ", 'x', copperIngot, 'y', zincIngot, 'z',Item.bucketEmpty);

	GameRegistry.addRecipe(new ItemStack(brassBlock), "xxx", "xxx", "xxx", 'x', brassIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(brassIngot, 9), new ItemStack(brassBlock));

	GameRegistry.addRecipe(new ItemStack(invarBlock), "xxx", "xxx", "xxx", 'x', invarIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(invarIngot, 9), new ItemStack(invarBlock));

	GameRegistry.addRecipe(new ItemStack(electrumBlock), "xxx", "xxx", "xxx", 'x', electrumIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(electrumIngot, 9), new ItemStack(electrumBlock));

	GameRegistry.addRecipe(new ItemStack(bronzeBlock), "xxx", "xxx", "xxx", 'x', bronzeIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(electrumIngot, 9), new ItemStack(electrumBlock));

	GameRegistry.addSmelting(tinOre.blockID, new ItemStack(tinIngot), 0.1f);
	GameRegistry.addRecipe(new ItemStack(tinBlock), "xxx", "xxx", "xxx", 'x', tinIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(tinIngot, 9), new ItemStack(tinBlock));

	GameRegistry.addSmelting(silverOre.blockID, new ItemStack(silverIngot), 0.1f);
	GameRegistry.addRecipe(new ItemStack(silverBlock), "xxx", "xxx", "xxx", 'x', silverIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(silverIngot, 9), new ItemStack(silverBlock));

	GameRegistry.addSmelting(aluminiumOre.blockID, new ItemStack(aluminiumIngot), 0.1f);
	GameRegistry.addRecipe(new ItemStack(aluminiumBlock), "xxx", "xxx", "xxx", 'x', aluminiumIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(aluminiumIngot, 9), new ItemStack(aluminiumBlock));

	GameRegistry.addSmelting(chromiumOre.blockID, new ItemStack(chromiumIngot), 0.1f);
	GameRegistry.addRecipe(new ItemStack(chromiumBlock), "xxx", "xxx", "xxx", 'x', chromiumIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(chromiumIngot, 9), new ItemStack(chromiumBlock));

	GameRegistry.addRecipe(new ItemStack(liquefierIdle), "xxx", "xyx", "xxx", 'x', steelIngot, 'y', Item.bucketLava);
	GameRegistry.addRecipe(new ItemStack(coolerIdle), "xxx", "xyx", "xxx", 'x', steelIngot, 'x', Block.ice);
	GameRegistry.addRecipe(new ItemStack(plutoniumIngot), "xxx", "xxx", "xxx", 'x', plutoniumShard);
	GameRegistry.addRecipe(new ItemStack(plutoniumBillet), " x ", "xxx", " x ", 'x', plutoniumIngot);
	GameRegistry.addRecipe(new ItemStack(plutoniumBlock), "xxx", "xxx", "xxx", 'x', plutoniumIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(plutoniumIngot, 9), new ItemStack(plutoniumBlock));
	GameRegistry.addRecipe(new ItemStack(neptuniumIngot), "xxx", "xxx", "xxx", 'x', neptuniumShard);
	GameRegistry.addRecipe(new ItemStack(neptuniumBillet), " x ", "xxx", " x ", 'x', neptuniumIngot);
	GameRegistry.addRecipe(new ItemStack(neptuniumBlock), "xxx", "xxx", "xxx", 'x', neptuniumIngot);
	GameRegistry.addShapelessRecipe(new ItemStack(neptuniumIngot, 9), new ItemStack(neptuniumBlock));

	GameRegistry.registerWorldGenerator(new WorldGenerator());

	GameRegistry.registerTileEntity(TileEntityLiquefier.class,"TileEntityLiquefier");
	GameRegistry.registerTileEntity(TileEntityCooler.class,"TileEntityCooler");

                

	proxy.registerRenderers();
}

@PostInit
public void postInit(FMLPostInitializationEvent event){

}

}

Liquefier

package TechCraft;

import cpw.mods.fml.common.network.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import TechCraft.TileEntityLiquefier;
import net.minecraft.util.Icon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;

public class Liquefier extends BlockContainer
{
    /**
     * Is the random generator used by furnace to drop the inventory contents in random directions.
     */
    private final Random furnaceRand = new Random();

    /** True if this is an active furnace, false if idle */
    private final boolean isActive;

    /**
     * This flag is used to prevent the furnace inventory to be dropped upon block removal, is used internally when the
     * furnace block changes from idle to active and vice-versa.
     */
    private static boolean keepFurnaceInventory = false;
    @SideOnly(Side.CLIENT)
    private Icon furnaceIconTop;
    @SideOnly(Side.CLIENT)
    private Icon furnaceIconFront;

    protected Liquefier(int par1, boolean par2)
    {
        super(par1, Material.rock);
        this.isActive = par2;
    }

    /**
     * Returns the ID of the items to drop on destruction.
     */
    public int idDropped(int par1, Random par2Random, int par3)
    {
        return Core.liquefierIdle.blockID;
    }

    /**
     * Called whenever the block is added into the world. Args: world, x, y, z
     */
    public void onBlockAdded(World par1World, int par2, int par3, int par4)
    {
        super.onBlockAdded(par1World, par2, par3, par4);
        this.setDefaultDirection(par1World, par2, par3, par4);
    }

    /**
     * set a blocks direction
     */
    private void setDefaultDirection(World par1World, int par2, int par3, int par4)
    {
        if (!par1World.isRemote)
        {
            int l = par1World.getBlockId(par2, par3, par4 - 1);
            int i1 = par1World.getBlockId(par2, par3, par4 + 1);
            int j1 = par1World.getBlockId(par2 - 1, par3, par4);
            int k1 = par1World.getBlockId(par2 + 1, par3, par4);
            byte b0 = 3;

            if (Block.opaqueCubeLookup[l] && !Block.opaqueCubeLookup[i1])
            {
                b0 = 3;
            }

            if (Block.opaqueCubeLookup[i1] && !Block.opaqueCubeLookup[l])
            {
                b0 = 2;
            }

            if (Block.opaqueCubeLookup[j1] && !Block.opaqueCubeLookup[k1])
            {
                b0 = 5;
            }

            if (Block.opaqueCubeLookup[k1] && !Block.opaqueCubeLookup[j1])
            {
                b0 = 4;
            }

            par1World.setBlockMetadataWithNotify(par2, par3, par4, b0, 2);
        }
    }

    @SideOnly(Side.CLIENT)

    /**
     * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
     */
    public Icon getIcon(int par1, int par2)
    {
        return par1 == 1 ? this.furnaceIconTop : (par1 == 0 ? this.furnaceIconTop : (par1 != par2 ? this.blockIcon : this.furnaceIconFront));
    }

    @SideOnly(Side.CLIENT)

    /**
     * When this method is called, your block should register all the icons it needs with the given IconRegister. This
     * is the only chance you get to register icons.
     */
    public void registerIcons(IconRegister par1IconRegister)
    {
        this.blockIcon = par1IconRegister.registerIcon("TechCraft:machine_side");
        this.furnaceIconFront = par1IconRegister.registerIcon(this.isActive ? "TechCraft:machine_front_lit" : "TechCraft:machine_front");
        this.furnaceIconTop = par1IconRegister.registerIcon("TechCraft:machine_top");
    }

    /**
     * Called upon block activation (right click on the block.)
     */
    public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer player, int par6, float par7, float par8, float par9)
    {
        if (par1World.isRemote)
        {
            return true;
        }
        else
        {
            TileEntityLiquefier tileentityfurnace = (TileEntityLiquefier)par1World.getBlockTileEntity(par2, par3, par4);

            if (tileentityfurnace != null)
            {
            	player.openGui(player, 0, par1World, par2, par3, par4);
            }

            return true;
        }
    }

    /**
     * Update which block ID the furnace is using depending on whether or not it is burning
     */
    public static void updateFurnaceBlockState(boolean par0, World par1World, int par2, int par3, int par4)
    {
        int l = par1World.getBlockMetadata(par2, par3, par4);
        TileEntity tileentity = par1World.getBlockTileEntity(par2, par3, par4);
        keepFurnaceInventory = true;

        if (par0)
        {
            par1World.setBlock(par2, par3, par4, Core.liquefierActive.blockID);
        }
        else
        {
            par1World.setBlock(par2, par3, par4, Core.liquefierIdle.blockID);
        }

        keepFurnaceInventory = false;
        par1World.setBlockMetadataWithNotify(par2, par3, par4, l, 2);

        if (tileentity != null)
        {
            tileentity.validate();
            par1World.setBlockTileEntity(par2, par3, par4, tileentity);
        }
    }

    @SideOnly(Side.CLIENT)

    public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)
    {
        if (this.isActive)
        {
            int l = par1World.getBlockMetadata(par2, par3, par4);
            float f = (float)par2 + 0.5F;
            float f1 = (float)par3 + 0.0F + par5Random.nextFloat() * 6.0F / 16.0F;
            float f2 = (float)par4 + 0.5F;
            float f3 = 0.52F;
            float f4 = par5Random.nextFloat() * 0.6F - 0.3F;

            if (l == 4)
            {
                par1World.spawnParticle("smoke", (double)(f - f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
                par1World.spawnParticle("flame", (double)(f - f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
            }
            else if (l == 5)
            {
                par1World.spawnParticle("smoke", (double)(f + f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
                par1World.spawnParticle("flame", (double)(f + f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
            }
            else if (l == 2)
            {
                par1World.spawnParticle("smoke", (double)(f + f4), (double)f1, (double)(f2 - f3), 0.0D, 0.0D, 0.0D);
                par1World.spawnParticle("flame", (double)(f + f4), (double)f1, (double)(f2 - f3), 0.0D, 0.0D, 0.0D);
            }
            else if (l == 3)
            {
                par1World.spawnParticle("smoke", (double)(f + f4), (double)f1, (double)(f2 + f3), 0.0D, 0.0D, 0.0D);
                par1World.spawnParticle("flame", (double)(f + f4), (double)f1, (double)(f2 + f3), 0.0D, 0.0D, 0.0D);
            }
        }
    }

    /**
     * Returns a new instance of a block's tile entity class. Called on placing the block.
     */
    public TileEntity createNewTileEntity(World par1World)
    {
        return new TileEntityLiquefier();
    }

    /**
     * Called when the block is placed in the world.
     */
    public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLiving par5EntityLiving, ItemStack par6ItemStack)
    {
        int l = MathHelper.floor_double((double)(par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;

        if (l == 0)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 2, 2);
        }

        if (l == 1)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 5, 2);
        }

        if (l == 2)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 3, 2);
        }

        if (l == 3)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 4, 2);
        }

        if (par6ItemStack.hasDisplayName())
        {
            ((TileEntityLiquefier)par1World.getBlockTileEntity(par2, par3, par4)).func_94129_a(par6ItemStack.getDisplayName());
        }
    }

    /**
     * ejects contained items into the world, and notifies neighbours of an update, as appropriate
     */
    public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6)
    {
        if (!keepFurnaceInventory)
        {
            TileEntityLiquefier tileentityfurnace = (TileEntityLiquefier)par1World.getBlockTileEntity(par2, par3, par4);

            if (tileentityfurnace != null)
            {
                for (int j1 = 0; j1 < tileentityfurnace.getSizeInventory(); ++j1)
                {
                    ItemStack itemstack = tileentityfurnace.getStackInSlot(j1);

                    if (itemstack != null)
                    {
                        float f = this.furnaceRand.nextFloat() * 0.8F + 0.1F;
                        float f1 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;
                        float f2 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;

                        while (itemstack.stackSize > 0)
                        {
                            int k1 = this.furnaceRand.nextInt(21) + 10;

                            if (k1 > itemstack.stackSize)
                            {
                                k1 = itemstack.stackSize;
                            }

                            itemstack.stackSize -= k1;
                            EntityItem entityitem = new EntityItem(par1World, (double)((float)par2 + f), (double)((float)par3 + f1), (double)((float)par4 + f2), new ItemStack(itemstack.itemID, k1, itemstack.getItemDamage()));

                            if (itemstack.hasTagCompound())
                            {
                                entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
                            }

                            float f3 = 0.05F;
                            entityitem.motionX = (double)((float)this.furnaceRand.nextGaussian() * f3);
                            entityitem.motionY = (double)((float)this.furnaceRand.nextGaussian() * f3 + 0.2F);
                            entityitem.motionZ = (double)((float)this.furnaceRand.nextGaussian() * f3);
                            par1World.spawnEntityInWorld(entityitem);
                        }
                    }
                }

                par1World.func_96440_m(par2, par3, par4, par5);
            }
        }

        super.breakBlock(par1World, par2, par3, par4, par5, par6);
    }

    /**
     * If this returns true, then comparators facing away from this block will use the value from
     * getComparatorInputOverride instead of the actual redstone signal strength.
     */
    public boolean hasComparatorInputOverride()
    {
        return true;
    }

    /**
     * If hasComparatorInputOverride returns true, the return value from this is used instead of the redstone signal
     * strength when this block inputs to a comparator.
     */
    public int getComparatorInputOverride(World par1World, int par2, int par3, int par4, int par5)
    {
        return Container.calcRedstoneFromInventory((IInventory)par1World.getBlockTileEntity(par2, par3, par4));
    }

    @SideOnly(Side.CLIENT)

    /**
     * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative)
     */
    public int idPicked(World par1World, int par2, int par3, int par4)
    {
        return Core.liquefierIdle.blockID;
    }
}

TileEntityLiquefier

package TechCraft;

import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import TechCraft.Liquefier;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemHoe;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.item.ItemTool;
import TechCraft.RecipesLiquefier;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.ForgeDummyContainer;

public class TileEntityLiquefier extends TileEntity implements ISidedInventory, net.minecraftforge.common.ISidedInventory
{
    private static final int[] field_102010_d = new int[] {0};
    private static final int[] field_102011_e = new int[] {2, 1};
    private static final int[] field_102009_f = new int[] {1};

    /**
     * The ItemStacks that hold the items currently being used in the furnace
     */
    private ItemStack[] furnaceItemStacks = new ItemStack[3];

    /** The number of ticks that the furnace will keep burning */
    public int furnaceBurnTime = 0;

    /**
     * The number of ticks that a fresh copy of the currently-burning item would keep the furnace burning for
     */
    public int currentItemBurnTime = 0;

    /** The number of ticks that the current item has been cooking for */
    public int furnaceCookTime = 0;
    private String field_94130_e;

    /**
     * Returns the number of slots in the inventory.
     */
    public int getSizeInventory()
    {
        return this.furnaceItemStacks.length;
    }

    /**
     * Returns the stack in slot i
     */
    public ItemStack getStackInSlot(int par1)
    {
        return this.furnaceItemStacks[par1];
    }

    /**
     * Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a
     * new stack.
     */
    public ItemStack decrStackSize(int par1, int par2)
    {
        if (this.furnaceItemStacks[par1] != null)
        {
            ItemStack itemstack;

            if (this.furnaceItemStacks[par1].stackSize <= par2)
            {
                itemstack = this.furnaceItemStacks[par1];
                this.furnaceItemStacks[par1] = null;
                return itemstack;
            }
            else
            {
                itemstack = this.furnaceItemStacks[par1].splitStack(par2);

                if (this.furnaceItemStacks[par1].stackSize == 0)
                {
                    this.furnaceItemStacks[par1] = null;
                }

                return itemstack;
            }
        }
        else
        {
            return null;
        }
    }

    /**
     * When some containers are closed they call this on each slot, then drop whatever it returns as an EntityItem -
     * like when you close a workbench GUI.
     */
    public ItemStack getStackInSlotOnClosing(int par1)
    {
        if (this.furnaceItemStacks[par1] != null)
        {
            ItemStack itemstack = this.furnaceItemStacks[par1];
            this.furnaceItemStacks[par1] = null;
            return itemstack;
        }
        else
        {
            return null;
        }
    }

    /**
     * Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections).
     */
    public void setInventorySlotContents(int par1, ItemStack par2ItemStack)
    {
        this.furnaceItemStacks[par1] = par2ItemStack;

        if (par2ItemStack != null && par2ItemStack.stackSize > this.getInventoryStackLimit())
        {
            par2ItemStack.stackSize = this.getInventoryStackLimit();
        }
    }

    /**
     * Returns the name of the inventory.
     */
    public String getInvName()
    {
        return this.isInvNameLocalized() ? this.field_94130_e : "container.furnace";
    }

    /**
     * If this returns false, the inventory name will be used as an unlocalized name, and translated into the player's
     * language. Otherwise it will be used directly.
     */
    public boolean isInvNameLocalized()
    {
        return this.field_94130_e != null && this.field_94130_e.length() > 0;
    }

    public void func_94129_a(String par1Str)
    {
        this.field_94130_e = par1Str;
    }

    /**
     * Reads a tile entity from NBT.
     */
    public void readFromNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.readFromNBT(par1NBTTagCompound);
        NBTTagList nbttaglist = par1NBTTagCompound.getTagList("Items");
        this.furnaceItemStacks = new ItemStack[this.getSizeInventory()];

        for (int i = 0; i < nbttaglist.tagCount(); ++i)
        {
            NBTTagCompound nbttagcompound1 = (NBTTagCompound)nbttaglist.tagAt(i);
            byte b0 = nbttagcompound1.getByte("Slot");

            if (b0 >= 0 && b0 < this.furnaceItemStacks.length)
            {
                this.furnaceItemStacks[b0] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
            }
        }

        this.furnaceBurnTime = par1NBTTagCompound.getShort("BurnTime");
        this.furnaceCookTime = par1NBTTagCompound.getShort("CookTime");
        this.currentItemBurnTime = getItemBurnTime(this.furnaceItemStacks[1]);

        if (par1NBTTagCompound.hasKey("CustomName"))
        {
            this.field_94130_e = par1NBTTagCompound.getString("CustomName");
        }
    }

    /**
     * Writes a tile entity to NBT.
     */
    public void writeToNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.writeToNBT(par1NBTTagCompound);
        par1NBTTagCompound.setShort("BurnTime", (short)this.furnaceBurnTime);
        par1NBTTagCompound.setShort("CookTime", (short)this.furnaceCookTime);
        NBTTagList nbttaglist = new NBTTagList();

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

        par1NBTTagCompound.setTag("Items", nbttaglist);

        if (this.isInvNameLocalized())
        {
            par1NBTTagCompound.setString("CustomName", this.field_94130_e);
        }
    }

    /**
     * Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. *Isn't
     * this more of a set than a get?*
     */
    public int getInventoryStackLimit()
    {
        return 64;
    }

    @SideOnly(Side.CLIENT)

    /**
     * Returns an integer between 0 and the passed value representing how close the current item is to being completely
     * cooked
     */
    public int getCookProgressScaled(int par1)
    {
        return this.furnaceCookTime * par1 / 200;
    }

    @SideOnly(Side.CLIENT)

    /**
     * Returns an integer between 0 and the passed value representing how much burn time is left on the current fuel
     * item, where 0 means that the item is exhausted and the passed value means that the item is fresh
     */
    public int getBurnTimeRemainingScaled(int par1)
    {
        if (this.currentItemBurnTime == 0)
        {
            this.currentItemBurnTime = 200;
        }

        return this.furnaceBurnTime * par1 / this.currentItemBurnTime;
    }

    /**
     * Returns true if the furnace is currently burning
     */
    public boolean isBurning()
    {
        return this.furnaceBurnTime > 0;
    }

    /**
     * Allows the entity to update its state. Overridden in most subclasses, e.g. the mob spawner uses this to count
     * ticks and creates a new spawn inside its implementation.
     */
    public void updateEntity()
    {
        boolean flag = this.furnaceBurnTime > 0;
        boolean flag1 = false;

        if (this.furnaceBurnTime > 0)
        {
            --this.furnaceBurnTime;
        }

        if (!this.worldObj.isRemote)
        {
            if (this.furnaceBurnTime == 0 && this.canSmelt())
            {
                this.currentItemBurnTime = this.furnaceBurnTime = getItemBurnTime(this.furnaceItemStacks[1]);

                if (this.furnaceBurnTime > 0)
                {
                    flag1 = true;

                    if (this.furnaceItemStacks[1] != null)
                    {
                        --this.furnaceItemStacks[1].stackSize;

                        if (this.furnaceItemStacks[1].stackSize == 0)
                        {
                            this.furnaceItemStacks[1] = this.furnaceItemStacks[1].getItem().getContainerItemStack(furnaceItemStacks[1]);
                        }
                    }
                }
            }

            if (this.isBurning() && this.canSmelt())
            {
                ++this.furnaceCookTime;

                if (this.furnaceCookTime == 200)
                {
                    this.furnaceCookTime = 0;
                    this.smeltItem();
                    flag1 = true;
                }
            }
            else
            {
                this.furnaceCookTime = 0;
            }

            if (flag != this.furnaceBurnTime > 0)
            {
                flag1 = true;
                Liquefier.updateFurnaceBlockState(this.furnaceBurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
            }
        }

        if (flag1)
        {
            this.onInventoryChanged();
        }
    }

    /**
     * Returns true if the furnace can smelt an item, i.e. has a source item, destination stack isn't full, etc.
     */
    private boolean canSmelt()
    {
        if (this.furnaceItemStacks[0] == null)
        {
            return false;
        }
        else
        {
            ItemStack itemstack = RecipesLiquefier.smelting().getSmeltingResult(this.furnaceItemStacks[0]);
            if (itemstack == null) return false;
            if (this.furnaceItemStacks[2] == null) return true;
            if (!this.furnaceItemStacks[2].isItemEqual(itemstack)) return false;
            int result = furnaceItemStacks[2].stackSize + itemstack.stackSize;
            return (result <= getInventoryStackLimit() && result <= itemstack.getMaxStackSize());
        }
    }

    /**
     * Turn one item from the furnace source stack into the appropriate smelted item in the furnace result stack
     */
    public void smeltItem()
    {
        if (this.canSmelt())
        {
            ItemStack itemstack = RecipesLiquefier.smelting().getSmeltingResult(this.furnaceItemStacks[0]);

            if (this.furnaceItemStacks[2] == null)
            {
                this.furnaceItemStacks[2] = itemstack.copy();
            }
            else if (this.furnaceItemStacks[2].isItemEqual(itemstack))
            {
                furnaceItemStacks[2].stackSize += itemstack.stackSize;
            }

            --this.furnaceItemStacks[0].stackSize;

            if (this.furnaceItemStacks[0].stackSize <= 0)
            {
                this.furnaceItemStacks[0] = null;
            }
        }
    }

    /**
     * Returns the number of ticks that the supplied fuel item will keep the furnace burning, or 0 if the item isn't
     * fuel
     */
    public static int getItemBurnTime(ItemStack par0ItemStack)
    {
        if (par0ItemStack == null)
        {
            return 0;
        }
        else
        {
            int i = par0ItemStack.getItem().itemID;
            Item item = par0ItemStack.getItem();

            if (par0ItemStack.getItem() instanceof ItemBlock && Block.blocksList[i] != null)
            {
                Block block = Block.blocksList[i];

                if (block == Block.woodSingleSlab)
                {
                    return 150;
                }

                if (block.blockMaterial == Material.wood)
                {
                    return 300;
                }
            }

            if (item instanceof ItemTool && ((ItemTool) item).getToolMaterialName().equals("WOOD")) return 200;
            if (item instanceof ItemSword && ((ItemSword) item).getToolMaterialName().equals("WOOD")) return 200;
            if (item instanceof ItemHoe && ((ItemHoe) item).getMaterialName().equals("WOOD")) return 200;
            if (i == Item.stick.itemID) return 100;
            if (i == Item.coal.itemID) return 1600;
            if (i == Item.bucketLava.itemID) return 20000;
            if (i == Block.sapling.blockID) return 100;
            if (i == Item.blazeRod.itemID) return 2400;
            return GameRegistry.getFuelValue(par0ItemStack);
        }
    }

    /**
     * Return true if item is a fuel source (getItemBurnTime() > 0).
     */
    public static boolean isItemFuel(ItemStack par0ItemStack)
    {
        return getItemBurnTime(par0ItemStack) > 0;
    }

    /**
     * Do not make give this method the name canInteractWith because it clashes with Container
     */
    public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)
    {
        return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : par1EntityPlayer.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
    }

    public void openChest() {}

    public void closeChest() {}

    /**
     * Returns true if automation is allowed to insert the given stack (ignoring stack size) into the given slot.
     */
    public boolean isStackValidForSlot(int par1, ItemStack par2ItemStack)
    {
        return par1 == 2 ? false : (par1 == 1 ? isItemFuel(par2ItemStack) : true);
    }

    /**
     * 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 par1)
    {
        return par1 == 0 ? field_102011_e : (par1 == 1 ? field_102010_d : field_102009_f);
    }

    /**
     * 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 par1, ItemStack par2ItemStack, int par3)
    {
        return this.isStackValidForSlot(par1, par2ItemStack);
    }

    /**
     * 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 par1, ItemStack par2ItemStack, int par3)
    {
        return par3 != 0 || par1 != 1 || par2ItemStack.itemID == Item.bucketEmpty.itemID;
    }

    /***********************************************************************************
     * This function is here for compatibilities sake, Modders should Check for
     * Sided before ContainerWorldly, Vanilla Minecraft does not follow the sided standard
     * that Modding has for a while.
     *
     * In vanilla:
     *
     *   Top: Ores
     *   Sides: Fuel
     *   Bottom: Output
     *
     * Standard Modding:
     *   Top: Ores
     *   Sides: Output
     *   Bottom: Fuel
     *
     * The Modding one is designed after the GUI, the vanilla one is designed because its
     * intended use is for the hopper, which logically would take things in from the top.
     *
     * This will possibly be removed in future updates, and make vanilla the definitive
     * standard.
     */

    @Override
    public int getStartInventorySide(ForgeDirection side)
    {
        if (ForgeDummyContainer.legacyFurnaceSides)
        {
            if (side == ForgeDirection.DOWN) return 1;
            if (side == ForgeDirection.UP) return 0;
            return 2;
        }
        else
        {
            if (side == ForgeDirection.DOWN) return 2;
            if (side == ForgeDirection.UP) return 0;
            return 1;
        }
    }

    @Override
    public int getSizeInventorySide(ForgeDirection side)
    {
        return 1;
    }
}

ContainerLiquefier

package TechCraft;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import TechCraft.RecipesLiquefier;
import TechCraft.TileEntityLiquefier;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class ContainerLiquefier extends Container
{
    private TileEntityLiquefier furnace;
    private int lastCookTime = 0;
    private int lastBurnTime = 0;
    private int lastItemBurnTime = 0;

    public ContainerLiquefier(InventoryPlayer par1InventoryPlayer, TileEntityLiquefier par2TileEntityFurnace)
    {
        this.furnace = par2TileEntityFurnace;
        this.addSlotToContainer(new Slot(par2TileEntityFurnace, 0, 56, 17));
        this.addSlotToContainer(new Slot(par2TileEntityFurnace, 1, 56, 53));
        this.addSlotToContainer(new SlotLiquefier(par1InventoryPlayer.player, par2TileEntityFurnace, 2, 116, 35));
        int i;

        for (i = 0; i < 3; ++i)
        {
            for (int j = 0; j < 9; ++j)
            {
                this.addSlotToContainer(new Slot(par1InventoryPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
            }
        }

        for (i = 0; i < 9; ++i)
        {
            this.addSlotToContainer(new Slot(par1InventoryPlayer, i, 8 + i * 18, 142));
        }
    }

    public void addCraftingToCrafters(ICrafting par1ICrafting)
    {
        super.addCraftingToCrafters(par1ICrafting);
        par1ICrafting.sendProgressBarUpdate(this, 0, this.furnace.furnaceCookTime);
        par1ICrafting.sendProgressBarUpdate(this, 1, this.furnace.furnaceBurnTime);
        par1ICrafting.sendProgressBarUpdate(this, 2, this.furnace.currentItemBurnTime);
    }

    /**
     * Looks for changes made in the container, sends them to every listener.
     */
    public void detectAndSendChanges()
    {
        super.detectAndSendChanges();

        for (int i = 0; i < this.crafters.size(); ++i)
        {
            ICrafting icrafting = (ICrafting)this.crafters.get(i);

            if (this.lastCookTime != this.furnace.furnaceCookTime)
            {
                icrafting.sendProgressBarUpdate(this, 0, this.furnace.furnaceCookTime);
            }

            if (this.lastBurnTime != this.furnace.furnaceBurnTime)
            {
                icrafting.sendProgressBarUpdate(this, 1, this.furnace.furnaceBurnTime);
            }

            if (this.lastItemBurnTime != this.furnace.currentItemBurnTime)
            {
                icrafting.sendProgressBarUpdate(this, 2, this.furnace.currentItemBurnTime);
            }
        }

        this.lastCookTime = this.furnace.furnaceCookTime;
        this.lastBurnTime = this.furnace.furnaceBurnTime;
        this.lastItemBurnTime = this.furnace.currentItemBurnTime;
    }

    @SideOnly(Side.CLIENT)
    public void updateProgressBar(int par1, int par2)
    {
        if (par1 == 0)
        {
            this.furnace.furnaceCookTime = par2;
        }

        if (par1 == 1)
        {
            this.furnace.furnaceBurnTime = par2;
        }

        if (par1 == 2)
        {
            this.furnace.currentItemBurnTime = par2;
        }
    }

    public boolean canInteractWith(EntityPlayer par1EntityPlayer)
    {
        return this.furnace.isUseableByPlayer(par1EntityPlayer);
    }

    /**
     * Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that.
     */
    public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)
    {
        ItemStack itemstack = null;
        Slot slot = (Slot)this.inventorySlots.get(par2);

        if (slot != null && slot.getHasStack())
        {
            ItemStack itemstack1 = slot.getStack();
            itemstack = itemstack1.copy();

            if (par2 == 2)
            {
                if (!this.mergeItemStack(itemstack1, 3, 39, true))
                {
                    return null;
                }

                slot.onSlotChange(itemstack1, itemstack);
            }
            else if (par2 != 1 && par2 != 0)
            {
                if (RecipesLiquefier.smelting().getSmeltingResult(itemstack1) != null)
                {
                    if (!this.mergeItemStack(itemstack1, 0, 1, false))
                    {
                        return null;
                    }
                }
                else if (TileEntityLiquefier.isItemFuel(itemstack1))
                {
                    if (!this.mergeItemStack(itemstack1, 1, 2, false))
                    {
                        return null;
                    }
                }
                else if (par2 >= 3 && par2 < 30)
                {
                    if (!this.mergeItemStack(itemstack1, 30, 39, false))
                    {
                        return null;
                    }
                }
                else if (par2 >= 30 && par2 < 39 && !this.mergeItemStack(itemstack1, 3, 30, false))
                {
                    return null;
                }
            }
            else if (!this.mergeItemStack(itemstack1, 3, 39, false))
            {
                return null;
            }

            if (itemstack1.stackSize == 0)
            {
                slot.putStack((ItemStack)null);
            }
            else
            {
                slot.onSlotChanged();
            }

            if (itemstack1.stackSize == itemstack.stackSize)
            {
                return null;
            }

            slot.onPickupFromSlot(par1EntityPlayer, itemstack1);
        }

        return itemstack;
    }
}

GuiLiquefier

package TechCraft;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer;
import TechCraft.ContainerLiquefier;
import TechCraft.TileEntityLiquefier;
import net.minecraft.util.StatCollector;

import org.lwjgl.opengl.GL11;

@SideOnly(Side.CLIENT)
public class GuiLiquefier extends GuiContainer
{
    private TileEntityLiquefier furnaceInventory;

    public GuiLiquefier(InventoryPlayer par1InventoryPlayer, TileEntityLiquefier par2TileEntityFurnace)
    {
        super(new ContainerLiquefier(par1InventoryPlayer, par2TileEntityFurnace));
        this.furnaceInventory = par2TileEntityFurnace;
    }

    /**
     * Draw the foreground layer for the GuiContainer (everything in front of the items)
     */
    protected void drawGuiContainerForegroundLayer(int par1, int par2)
    {
        String s = this.furnaceInventory.isInvNameLocalized() ? this.furnaceInventory.getInvName() : StatCollector.translateToLocal("Liquefier");
        this.fontRenderer.drawString(s, this.xSize / 2 - this.fontRenderer.getStringWidth(s) / 2, 6, 4210752);
        this.fontRenderer.drawString(StatCollector.translateToLocal("Inventory"), 8, this.ySize - 96 + 2, 4210752);
    }

    /**
     * Draw the background layer for the GuiContainer (everything behind the items)
     */
    protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
    {
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        this.mc.renderEngine.bindTexture("/gui/furnace.png");
        int k = (this.width - this.xSize) / 2;
        int l = (this.height - this.ySize) / 2;
        this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize);
        int i1;

        if (this.furnaceInventory.isBurning())
        {
            i1 = this.furnaceInventory.getBurnTimeRemainingScaled(12);
            this.drawTexturedModalRect(k + 56, l + 36 + 12 - i1, 176, 12 - i1, 14, i1 + 2);
        }

        i1 = this.furnaceInventory.getCookProgressScaled(24);
        this.drawTexturedModalRect(k + 79, l + 34, 176, 14, i1 + 1, 16);
    }
}

SlotLiquefier

package TechCraft;

import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import TechCraft.RecipesLiquefier;
import net.minecraft.stats.AchievementList;
import net.minecraft.util.MathHelper;

public class SlotLiquefier extends Slot
{
    /** The player that is using the GUI where this slot resides. */
    private EntityPlayer thePlayer;
    private int field_75228_b;

    public SlotLiquefier(EntityPlayer par1EntityPlayer, IInventory par2IInventory, int par3, int par4, int par5)
    {
        super(par2IInventory, par3, par4, par5);
        this.thePlayer = par1EntityPlayer;
    }

    /**
     * Check if the stack is a valid item for this slot. Always true beside for the armor slots.
     */
    public boolean isItemValid(ItemStack par1ItemStack)
    {
        return false;
    }

    /**
     * Decrease the size of the stack in slot (first int arg) by the amount of the second int arg. Returns the new
     * stack.
     */
    public ItemStack decrStackSize(int par1)
    {
        if (this.getHasStack())
        {
            this.field_75228_b += Math.min(par1, this.getStack().stackSize);
        }

        return super.decrStackSize(par1);
    }

    public void onPickupFromSlot(EntityPlayer par1EntityPlayer, ItemStack par2ItemStack)
    {
        this.onCrafting(par2ItemStack);
        super.onPickupFromSlot(par1EntityPlayer, par2ItemStack);
    }

    /**
     * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood. Typically increases an
     * internal count then calls onCrafting(item).
     */
    protected void onCrafting(ItemStack par1ItemStack, int par2)
    {
        this.field_75228_b += par2;
        this.onCrafting(par1ItemStack);
    }

    /**
     * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood.
     */
    protected void onCrafting(ItemStack par1ItemStack)
    {
        par1ItemStack.onCrafting(this.thePlayer.worldObj, this.thePlayer, this.field_75228_b);

        if (!this.thePlayer.worldObj.isRemote)
        {
            int i = this.field_75228_b;
            float f = RecipesLiquefier.smelting().getExperience(par1ItemStack);
            int j;

            if (f == 0.0F)
            {
                i = 0;
            }
            else if (f < 1.0F)
            {
                j = MathHelper.floor_float((float)i * f);

                if (j < MathHelper.ceiling_float_int((float)i * f) && (float)Math.random() < (float)i * f - (float)j)
                {
                    ++j;
                }

                i = j;
            }

            while (i > 0)
            {
                j = EntityXPOrb.getXPSplit(i);
                i -= j;
                this.thePlayer.worldObj.spawnEntityInWorld(new EntityXPOrb(this.thePlayer.worldObj, this.thePlayer.posX, this.thePlayer.posY + 0.5D, this.thePlayer.posZ + 0.5D, j));
            }
        }

        this.field_75228_b = 0;

        GameRegistry.onItemSmelted(thePlayer, par1ItemStack);

        if (par1ItemStack.itemID == Item.ingotIron.itemID)
        {
            this.thePlayer.addStat(AchievementList.acquireIron, 1);
        }

        if (par1ItemStack.itemID == Item.fishCooked.itemID)
        {
            this.thePlayer.addStat(AchievementList.cookFish, 1);
        }
    }
}

GuiHandler

package TechCraft;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import TechCraft.*;
import cpw.mods.fml.common.network.IGuiHandler;
import cpw.mods.fml.common.network.NetworkRegistry;

public class GuiHandler implements IGuiHandler {
public GuiHandler() {
NetworkRegistry.instance().registerGuiHandler(Core.instance, this);
}

@Override
public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
TileEntity entity = world.getBlockTileEntity(x, y, z);

switch(id) {
case 0:
return new ContainerCooler(player.inventory, (TileEntityCooler) entity);
case 1:

return new ContainerLiquefier(player.inventory, (TileEntityLiquefier) entity);
}
return null;

}

@Override
public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
TileEntity entity = world.getBlockTileEntity(x, y, z);

switch(id) {
case 0:
return new GuiCooler(player.inventory, (TileEntityCooler) entity);

case 1:

return new GuiLiquefier(player.inventory, (TileEntityLiquefier) entity);

}
return null;
}
}

Cooler

package TechCraft;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import TechCraft.TileEntityCooler;
import net.minecraft.util.Icon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class Cooler extends BlockContainer
{
    /**
     * Is the random generator used by furnace to drop the inventory contents in random directions.
     */
    private final Random furnaceRand = new Random();

    /** True if this is an active furnace, false if idle */
    private final boolean isActive;

    /**
     * This flag is used to prevent the furnace inventory to be dropped upon block removal, is used internally when the
     * furnace block changes from idle to active and vice-versa.
     */
    private static boolean keepFurnaceInventory = false;
    @SideOnly(Side.CLIENT)
    private Icon furnaceIconTop;
    @SideOnly(Side.CLIENT)
    private Icon furnaceIconFront;

    protected Cooler(int par1, boolean par2)
    {
        super(par1, Material.rock);
        this.isActive = par2;
    }

    /**
     * Returns the ID of the items to drop on destruction.
     */
    public int idDropped(int par1, Random par2Random, int par3)
    {
        return Core.coolerIdle.blockID;
    }

    /**
     * Called whenever the block is added into the world. Args: world, x, y, z
     */
    public void onBlockAdded(World par1World, int par2, int par3, int par4)
    {
        super.onBlockAdded(par1World, par2, par3, par4);
        this.setDefaultDirection(par1World, par2, par3, par4);
    }

    /**
     * set a blocks direction
     */
    private void setDefaultDirection(World par1World, int par2, int par3, int par4)
    {
        if (!par1World.isRemote)
        {
            int l = par1World.getBlockId(par2, par3, par4 - 1);
            int i1 = par1World.getBlockId(par2, par3, par4 + 1);
            int j1 = par1World.getBlockId(par2 - 1, par3, par4);
            int k1 = par1World.getBlockId(par2 + 1, par3, par4);
            byte b0 = 3;

            if (Block.opaqueCubeLookup[l] && !Block.opaqueCubeLookup[i1])
            {
                b0 = 3;
            }

            if (Block.opaqueCubeLookup[i1] && !Block.opaqueCubeLookup[l])
            {
                b0 = 2;
            }

            if (Block.opaqueCubeLookup[j1] && !Block.opaqueCubeLookup[k1])
            {
                b0 = 5;
            }

            if (Block.opaqueCubeLookup[k1] && !Block.opaqueCubeLookup[j1])
            {
                b0 = 4;
            }

            par1World.setBlockMetadataWithNotify(par2, par3, par4, b0, 2);
        }
    }

    @SideOnly(Side.CLIENT)

    /**
     * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
     */
    public Icon getIcon(int par1, int par2)
    {
        return par1 == 1 ? this.furnaceIconTop : (par1 == 0 ? this.furnaceIconTop : (par1 != par2 ? this.blockIcon : this.furnaceIconFront));
    }

    @SideOnly(Side.CLIENT)

    /**
     * When this method is called, your block should register all the icons it needs with the given IconRegister. This
     * is the only chance you get to register icons.
     */
    public void registerIcons(IconRegister par1IconRegister)
    {
        this.blockIcon = par1IconRegister.registerIcon("TechCraft:machine_side");
        this.furnaceIconFront = par1IconRegister.registerIcon(this.isActive ? "TechCraft:machine_front_frost" : "TechCraft:machine_front");
        this.furnaceIconTop = par1IconRegister.registerIcon("TechCraft:machine_top");
    }

    /**
     * Called upon block activation (right click on the block.)
     */
    public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer player, int par6, float par7, float par8, float par9)
    {
        if (par1World.isRemote)
        {
            return true;
        }
        else
        {
            TileEntityCooler tileentityfurnace = (TileEntityCooler)par1World.getBlockTileEntity(par2, par3, par4);

            if (tileentityfurnace != null)
            {
            	player.openGui(Core.instance, 0, par1World, par2, par3, par4);
            }

            return true;
        }
    }

    /**
     * Update which block ID the furnace is using depending on whether or not it is burning
     */
    public static void updateFurnaceBlockState(boolean par0, World par1World, int par2, int par3, int par4)
    {
        int l = par1World.getBlockMetadata(par2, par3, par4);
        TileEntity tileentity = par1World.getBlockTileEntity(par2, par3, par4);
        keepFurnaceInventory = true;

        if (par0)
        {
            par1World.setBlock(par2, par3, par4, Core.coolerActive.blockID);
        }
        else
        {
            par1World.setBlock(par2, par3, par4, Core.coolerIdle.blockID);
        }

        keepFurnaceInventory = false;
        par1World.setBlockMetadataWithNotify(par2, par3, par4, l, 2);

        if (tileentity != null)
        {
            tileentity.validate();
            par1World.setBlockTileEntity(par2, par3, par4, tileentity);
        }
    }

    @SideOnly(Side.CLIENT)

    public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)
    {
        if (this.isActive)
        {
            int l = par1World.getBlockMetadata(par2, par3, par4);
            float f = (float)par2 + 0.5F;
            float f1 = (float)par3 + 0.0F + par5Random.nextFloat() * 6.0F / 16.0F;
            float f2 = (float)par4 + 0.5F;
            float f3 = 0.52F;
            float f4 = par5Random.nextFloat() * 0.6F - 0.3F;

            
        }
    }

    /**
     * Returns a new instance of a block's tile entity class. Called on placing the block.
     */
    public TileEntity createNewTileEntity(World par1World)
    {
        return new TileEntityCooler();
    }

    /**
     * Called when the block is placed in the world.
     */
    public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLiving par5EntityLiving, ItemStack par6ItemStack)
    {
        int l = MathHelper.floor_double((double)(par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;

        if (l == 0)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 2, 2);
        }

        if (l == 1)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 5, 2);
        }

        if (l == 2)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 3, 2);
        }

        if (l == 3)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 4, 2);
        }

        if (par6ItemStack.hasDisplayName())
        {
            ((TileEntityCooler)par1World.getBlockTileEntity(par2, par3, par4)).func_94129_a(par6ItemStack.getDisplayName());
        }
    }

    /**
     * ejects contained items into the world, and notifies neighbours of an update, as appropriate
     */
    public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6)
    {
        if (!keepFurnaceInventory)
        {
            TileEntityCooler tileentityfurnace = (TileEntityCooler)par1World.getBlockTileEntity(par2, par3, par4);

            if (tileentityfurnace != null)
            {
                for (int j1 = 0; j1 < tileentityfurnace.getSizeInventory(); ++j1)
                {
                    ItemStack itemstack = tileentityfurnace.getStackInSlot(j1);

                    if (itemstack != null)
                    {
                        float f = this.furnaceRand.nextFloat() * 0.8F + 0.1F;
                        float f1 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;
                        float f2 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;

                        while (itemstack.stackSize > 0)
                        {
                            int k1 = this.furnaceRand.nextInt(21) + 10;

                            if (k1 > itemstack.stackSize)
                            {
                                k1 = itemstack.stackSize;
                            }

                            itemstack.stackSize -= k1;
                            EntityItem entityitem = new EntityItem(par1World, (double)((float)par2 + f), (double)((float)par3 + f1), (double)((float)par4 + f2), new ItemStack(itemstack.itemID, k1, itemstack.getItemDamage()));

                            if (itemstack.hasTagCompound())
                            {
                                entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
                            }

                            float f3 = 0.05F;
                            entityitem.motionX = (double)((float)this.furnaceRand.nextGaussian() * f3);
                            entityitem.motionY = (double)((float)this.furnaceRand.nextGaussian() * f3 + 0.2F);
                            entityitem.motionZ = (double)((float)this.furnaceRand.nextGaussian() * f3);
                            par1World.spawnEntityInWorld(entityitem);
                        }
                    }
                }

                par1World.func_96440_m(par2, par3, par4, par5);
            }
        }

        super.breakBlock(par1World, par2, par3, par4, par5, par6);
    }

    /**
     * If this returns true, then comparators facing away from this block will use the value from
     * getComparatorInputOverride instead of the actual redstone signal strength.
     */
    public boolean hasComparatorInputOverride()
    {
        return true;
    }

    /**
     * If hasComparatorInputOverride returns true, the return value from this is used instead of the redstone signal
     * strength when this block inputs to a comparator.
     */
    public int getComparatorInputOverride(World par1World, int par2, int par3, int par4, int par5)
    {
        return Container.calcRedstoneFromInventory((IInventory)par1World.getBlockTileEntity(par2, par3, par4));
    }

    @SideOnly(Side.CLIENT)

    /**
     * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative)
     */
    public int idPicked(World par1World, int par2, int par3, int par4)
    {
        return Core.coolerIdle.blockID;
    }
}

TileEntityCooler

package TechCraft;

import net.minecraft.block.Block;
import TechCraft.Cooler;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemHoe;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.item.ItemTool;
import TechCraft.RecipesCooler;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.ForgeDummyContainer;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class TileEntityCooler extends TileEntity implements ISidedInventory, net.minecraftforge.common.ISidedInventory
{
    private static final int[] field_102010_d = new int[] {0};
    private static final int[] field_102011_e = new int[] {2, 1};
    private static final int[] field_102009_f = new int[] {1};

    /**
     * The ItemStacks that hold the items currently being used in the furnace
     */
    private ItemStack[] furnaceItemStacks = new ItemStack[3];

    /** The number of ticks that the furnace will keep burning */
    public int coolerFrostTime = 0;

    /**
     * The number of ticks that a fresh copy of the currently-burning item would keep the furnace burning for
     */
    public int currentItemBurnTime = 0;

    /** The number of ticks that the current item has been cooking for */
    public int furnaceCookTime = 0;
    private String field_94130_e;

    /**
     * Returns the number of slots in the inventory.
     */
    public int getSizeInventory()
    {
        return this.furnaceItemStacks.length;
    }

    /**
     * Returns the stack in slot i
     */
    public ItemStack getStackInSlot(int par1)
    {
        return this.furnaceItemStacks[par1];
    }

    /**
     * Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a
     * new stack.
     */
    public ItemStack decrStackSize(int par1, int par2)
    {
        if (this.furnaceItemStacks[par1] != null)
        {
            ItemStack itemstack;

            if (this.furnaceItemStacks[par1].stackSize <= par2)
            {
                itemstack = this.furnaceItemStacks[par1];
                this.furnaceItemStacks[par1] = null;
                return itemstack;
            }
            else
            {
                itemstack = this.furnaceItemStacks[par1].splitStack(par2);

                if (this.furnaceItemStacks[par1].stackSize == 0)
                {
                    this.furnaceItemStacks[par1] = null;
                }

                return itemstack;
            }
        }
        else
        {
            return null;
        }
    }

    /**
     * When some containers are closed they call this on each slot, then drop whatever it returns as an EntityItem -
     * like when you close a workbench GUI.
     */
    public ItemStack getStackInSlotOnClosing(int par1)
    {
        if (this.furnaceItemStacks[par1] != null)
        {
            ItemStack itemstack = this.furnaceItemStacks[par1];
            this.furnaceItemStacks[par1] = null;
            return itemstack;
        }
        else
        {
            return null;
        }
    }

    /**
     * Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections).
     */
    public void setInventorySlotContents(int par1, ItemStack par2ItemStack)
    {
        this.furnaceItemStacks[par1] = par2ItemStack;

        if (par2ItemStack != null && par2ItemStack.stackSize > this.getInventoryStackLimit())
        {
            par2ItemStack.stackSize = this.getInventoryStackLimit();
        }
    }

    /**
     * Returns the name of the inventory.
     */
    public String getInvName()
    {
        return this.isInvNameLocalized() ? this.field_94130_e : "container.furnace";
    }

    /**
     * If this returns false, the inventory name will be used as an unlocalized name, and translated into the player's
     * language. Otherwise it will be used directly.
     */
    public boolean isInvNameLocalized()
    {
        return this.field_94130_e != null && this.field_94130_e.length() > 0;
    }

    public void func_94129_a(String par1Str)
    {
        this.field_94130_e = par1Str;
    }

    /**
     * Reads a tile entity from NBT.
     */
    public void readFromNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.readFromNBT(par1NBTTagCompound);
        NBTTagList nbttaglist = par1NBTTagCompound.getTagList("Items");
        this.furnaceItemStacks = new ItemStack[this.getSizeInventory()];

        for (int i = 0; i < nbttaglist.tagCount(); ++i)
        {
            NBTTagCompound nbttagcompound1 = (NBTTagCompound)nbttaglist.tagAt(i);
            byte b0 = nbttagcompound1.getByte("Slot");

            if (b0 >= 0 && b0 < this.furnaceItemStacks.length)
            {
                this.furnaceItemStacks[b0] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
            }
        }

        this.coolerFrostTime = par1NBTTagCompound.getShort("BurnTime");
        this.furnaceCookTime = par1NBTTagCompound.getShort("CookTime");
        this.currentItemBurnTime = getItemBurnTime(this.furnaceItemStacks[1]);

        if (par1NBTTagCompound.hasKey("CustomName"))
        {
            this.field_94130_e = par1NBTTagCompound.getString("CustomName");
        }
    }

    /**
     * Writes a tile entity to NBT.
     */
    public void writeToNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.writeToNBT(par1NBTTagCompound);
        par1NBTTagCompound.setShort("BurnTime", (short)this.coolerFrostTime);
        par1NBTTagCompound.setShort("CookTime", (short)this.furnaceCookTime);
        NBTTagList nbttaglist = new NBTTagList();

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

        par1NBTTagCompound.setTag("Items", nbttaglist);

        if (this.isInvNameLocalized())
        {
            par1NBTTagCompound.setString("CustomName", this.field_94130_e);
        }
    }

    /**
     * Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. *Isn't
     * this more of a set than a get?*
     */
    public int getInventoryStackLimit()
    {
        return 64;
    }

    @SideOnly(Side.CLIENT)

    /**
     * Returns an integer between 0 and the passed value representing how close the current item is to being completely
     * cooked
     */
    public int getCookProgressScaled(int par1)
    {
        return this.furnaceCookTime * par1 / 200;
    }

    @SideOnly(Side.CLIENT)

    /**
     * Returns an integer between 0 and the passed value representing how much burn time is left on the current fuel
     * item, where 0 means that the item is exhausted and the passed value means that the item is fresh
     */
    public int getBurnTimeRemainingScaled(int par1)
    {
        if (this.currentItemBurnTime == 0)
        {
            this.currentItemBurnTime = 200;
        }

        return this.coolerFrostTime * par1 / this.currentItemBurnTime;
    }

    /**
     * Returns true if the furnace is currently burning
     */
    public boolean isBurning()
    {
        return this.coolerFrostTime > 0;
    }

    /**
     * Allows the entity to update its state. Overridden in most subclasses, e.g. the mob spawner uses this to count
     * ticks and creates a new spawn inside its implementation.
     */
    public void updateEntity()
    {
        boolean flag = this.coolerFrostTime > 0;
        boolean flag1 = false;

        if (this.coolerFrostTime > 0)
        {
            --this.coolerFrostTime;
        }

        if (!this.worldObj.isRemote)
        {
            if (this.coolerFrostTime == 0 && this.canSmelt())
            {
                this.currentItemBurnTime = this.coolerFrostTime = getItemBurnTime(this.furnaceItemStacks[1]);

                if (this.coolerFrostTime > 0)
                {
                    flag1 = true;

                    if (this.furnaceItemStacks[1] != null)
                    {
                        --this.furnaceItemStacks[1].stackSize;

                        if (this.furnaceItemStacks[1].stackSize == 0)
                        {
                            this.furnaceItemStacks[1] = this.furnaceItemStacks[1].getItem().getContainerItemStack(furnaceItemStacks[1]);
                        }
                    }
                }
            }

            if (this.isBurning() && this.canSmelt())
            {
                ++this.furnaceCookTime;

                if (this.furnaceCookTime == 200)
                {
                    this.furnaceCookTime = 0;
                    this.smeltItem();
                    flag1 = true;
                }
            }
            else
            {
                this.furnaceCookTime = 0;
            }

            if (flag != this.coolerFrostTime > 0)
            {
                flag1 = true;
                Cooler.updateFurnaceBlockState(this.coolerFrostTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
            }
        }

        if (flag1)
        {
            this.onInventoryChanged();
        }
    }

    /**
     * Returns true if the furnace can smelt an item, i.e. has a source item, destination stack isn't full, etc.
     */
    private boolean canSmelt()
    {
        if (this.furnaceItemStacks[0] == null)
        {
            return false;
        }
        else
        {
            ItemStack itemstack = RecipesCooler.smelting().getSmeltingResult(this.furnaceItemStacks[0]);
            if (itemstack == null) return false;
            if (this.furnaceItemStacks[2] == null) return true;
            if (!this.furnaceItemStacks[2].isItemEqual(itemstack)) return false;
            int result = furnaceItemStacks[2].stackSize + itemstack.stackSize;
            return (result <= getInventoryStackLimit() && result <= itemstack.getMaxStackSize());
        }
    }

    /**
     * Turn one item from the furnace source stack into the appropriate smelted item in the furnace result stack
     */
    public void smeltItem()
    {
        if (this.canSmelt())
        {
            ItemStack itemstack = RecipesCooler.smelting().getSmeltingResult(this.furnaceItemStacks[0]);

            if (this.furnaceItemStacks[2] == null)
            {
                this.furnaceItemStacks[2] = itemstack.copy();
            }
            else if (this.furnaceItemStacks[2].isItemEqual(itemstack))
            {
                furnaceItemStacks[2].stackSize += itemstack.stackSize;
            }

            --this.furnaceItemStacks[0].stackSize;

            if (this.furnaceItemStacks[0].stackSize <= 0)
            {
                this.furnaceItemStacks[0] = null;
            }
        }
    }

    /**
     * Returns the number of ticks that the supplied fuel item will keep the furnace burning, or 0 if the item isn't
     * fuel
     */
    public static int getItemBurnTime(ItemStack par0ItemStack)
    {
        if (par0ItemStack == null)
        {
            return 0;
        }
        else
        {
            int i = par0ItemStack.getItem().itemID;
            Item item = par0ItemStack.getItem();

            if (par0ItemStack.getItem() instanceof ItemBlock && Block.blocksList[i] != null)
            {
                Block block = Block.blocksList[i];

                if (block == Block.woodSingleSlab)
                {
                    return 150;
                }

                if (block.blockMaterial == Material.wood)
                {
                    return 300;
                }
            }

            if (item instanceof ItemTool && ((ItemTool) item).getToolMaterialName().equals("WOOD")) return 200;
            if (item instanceof ItemSword && ((ItemSword) item).getToolMaterialName().equals("WOOD")) return 200;
            if (item instanceof ItemHoe && ((ItemHoe) item).getMaterialName().equals("WOOD")) return 200;
            if (i == Item.stick.itemID) return 100;
            if (i == Item.coal.itemID) return 1600;
            if (i == Item.bucketLava.itemID) return 20000;
            if (i == Block.sapling.blockID) return 100;
            if (i == Item.blazeRod.itemID) return 2400;
            return GameRegistry.getFuelValue(par0ItemStack);
        }
    }

    /**
     * Return true if item is a fuel source (getItemBurnTime() > 0).
     */
    public static boolean isItemFuel(ItemStack par0ItemStack)
    {
        return getItemBurnTime(par0ItemStack) > 0;
    }

    /**
     * Do not make give this method the name canInteractWith because it clashes with Container
     */
    public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)
    {
        return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : par1EntityPlayer.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
    }

    public void openChest() {}

    public void closeChest() {}

    /**
     * Returns true if automation is allowed to insert the given stack (ignoring stack size) into the given slot.
     */
    public boolean isStackValidForSlot(int par1, ItemStack par2ItemStack)
    {
        return par1 == 2 ? false : (par1 == 1 ? isItemFuel(par2ItemStack) : true);
    }

    /**
     * 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 par1)
    {
        return par1 == 0 ? field_102011_e : (par1 == 1 ? field_102010_d : field_102009_f);
    }

    /**
     * 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 par1, ItemStack par2ItemStack, int par3)
    {
        return this.isStackValidForSlot(par1, par2ItemStack);
    }

    /**
     * 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 par1, ItemStack par2ItemStack, int par3)
    {
        return par3 != 0 || par1 != 1 || par2ItemStack.itemID == Item.bucketEmpty.itemID;
    }

    /***********************************************************************************
     * This function is here for compatibilities sake, Modders should Check for
     * Sided before ContainerWorldly, Vanilla Minecraft does not follow the sided standard
     * that Modding has for a while.
     *
     * In vanilla:
     *
     *   Top: Ores
     *   Sides: Fuel
     *   Bottom: Output
     *
     * Standard Modding:
     *   Top: Ores
     *   Sides: Output
     *   Bottom: Fuel
     *
     * The Modding one is designed after the GUI, the vanilla one is designed because its
     * intended use is for the hopper, which logically would take things in from the top.
     *
     * This will possibly be removed in future updates, and make vanilla the definitive
     * standard.
     */

    @Override
    public int getStartInventorySide(ForgeDirection side)
    {
        if (ForgeDummyContainer.legacyFurnaceSides)
        {
            if (side == ForgeDirection.DOWN) return 1;
            if (side == ForgeDirection.UP) return 0;
            return 2;
        }
        else
        {
            if (side == ForgeDirection.DOWN) return 2;
            if (side == ForgeDirection.UP) return 0;
            return 1;
        }
    }

    @Override
    public int getSizeInventorySide(ForgeDirection side)
    {
        return 1;
    }
}

GuiCooler

package TechCraft;

import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer;
import TechCraft.ContainerCooler;
import TechCraft.TileEntityCooler;
import net.minecraft.util.StatCollector;

import org.lwjgl.opengl.GL11;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

@SideOnly(Side.CLIENT)
public class GuiCooler extends GuiContainer
{
    private TileEntityCooler furnaceInventory;

    public GuiCooler(InventoryPlayer par1InventoryPlayer, TileEntityCooler par2TileEntityFurnace)
    {
        super(new ContainerCooler(par1InventoryPlayer, par2TileEntityFurnace));
        this.furnaceInventory = par2TileEntityFurnace;
    }

    /**
     * Draw the foreground layer for the GuiContainer (everything in front of the items)
     */
    protected void drawGuiContainerForegroundLayer(int par1, int par2)
    {
        String s = this.furnaceInventory.isInvNameLocalized() ? this.furnaceInventory.getInvName() : StatCollector.translateToLocal("Cooler");
        this.fontRenderer.drawString(s, this.xSize / 2 - this.fontRenderer.getStringWidth(s) / 2, 6, 4210752);
        this.fontRenderer.drawString(StatCollector.translateToLocal("Inventory"), 8, this.ySize - 96 + 2, 4210752);
    }

    /**
     * Draw the background layer for the GuiContainer (everything behind the items)
     */
    protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
    {
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        this.mc.renderEngine.bindTexture("/gui/furnace.png");
        int k = (this.width - this.xSize) / 2;
        int l = (this.height - this.ySize) / 2;
        this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize);
        int i1;

        if (this.furnaceInventory.isBurning())
        {
            i1 = this.furnaceInventory.getBurnTimeRemainingScaled(12);
            this.drawTexturedModalRect(k + 56, l + 36 + 12 - i1, 176, 12 - i1, 14, i1 + 2);
        }

        i1 = this.furnaceInventory.getCookProgressScaled(24);
        this.drawTexturedModalRect(k + 79, l + 34, 176, 14, i1 + 1, 16);
    }
}

SlotCooler

package TechCraft;

import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.AchievementList;
import net.minecraft.util.MathHelper;
import cpw.mods.fml.common.registry.GameRegistry;

public class SlotCooler extends Slot
{
    /** The player that is using the GUI where this slot resides. */
    private EntityPlayer thePlayer;
    private int field_75228_b;

    public SlotCooler(EntityPlayer par1EntityPlayer, IInventory par2IInventory, int par3, int par4, int par5)
    {
        super(par2IInventory, par3, par4, par5);
        this.thePlayer = par1EntityPlayer;
    }

    /**
     * Check if the stack is a valid item for this slot. Always true beside for the armor slots.
     */
    public boolean isItemValid(ItemStack par1ItemStack)
    {
        return false;
    }

    /**
     * Decrease the size of the stack in slot (first int arg) by the amount of the second int arg. Returns the new
     * stack.
     */
    public ItemStack decrStackSize(int par1)
    {
        if (this.getHasStack())
        {
            this.field_75228_b += Math.min(par1, this.getStack().stackSize);
        }

        return super.decrStackSize(par1);
    }

    public void onPickupFromSlot(EntityPlayer par1EntityPlayer, ItemStack par2ItemStack)
    {
        this.onCrafting(par2ItemStack);
        super.onPickupFromSlot(par1EntityPlayer, par2ItemStack);
    }

    /**
     * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood. Typically increases an
     * internal count then calls onCrafting(item).
     */
    protected void onCrafting(ItemStack par1ItemStack, int par2)
    {
        this.field_75228_b += par2;
        this.onCrafting(par1ItemStack);
    }

    /**
     * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood.
     */
    protected void onCrafting(ItemStack par1ItemStack)
    {
        par1ItemStack.onCrafting(this.thePlayer.worldObj, this.thePlayer, this.field_75228_b);

        if (!this.thePlayer.worldObj.isRemote)
        {
            int i = this.field_75228_b;
            float f = RecipesCooler.smelting().getExperience(par1ItemStack);
            int j;

            if (f == 0.0F)
            {
                i = 0;
            }
            else if (f < 1.0F)
            {
                j = MathHelper.floor_float((float)i * f);

                if (j < MathHelper.ceiling_float_int((float)i * f) && (float)Math.random() < (float)i * f - (float)j)
                {
                    ++j;
                }

                i = j;
            }

            while (i > 0)
            {
                j = EntityXPOrb.getXPSplit(i);
                i -= j;
                this.thePlayer.worldObj.spawnEntityInWorld(new EntityXPOrb(this.thePlayer.worldObj, this.thePlayer.posX, this.thePlayer.posY + 0.5D, this.thePlayer.posZ + 0.5D, j));
            }
        }

        this.field_75228_b = 0;

        GameRegistry.onItemSmelted(thePlayer, par1ItemStack);

        if (par1ItemStack.itemID == Item.ingotIron.itemID)
        {
            this.thePlayer.addStat(AchievementList.acquireIron, 1);
        }

        if (par1ItemStack.itemID == Item.fishCooked.itemID)
        {
            this.thePlayer.addStat(AchievementList.cookFish, 1);
        }
    }
}

ContainerCooler

package TechCraft;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
import TechCraft.SlotCooler;
import net.minecraft.item.ItemStack;
import TechCraft.RecipesCooler;
import TechCraft.TileEntityCooler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class ContainerCooler extends Container
{
    private TileEntityCooler cooler;
    private int lastCoolTime = 0;
    private int lastFrostTime = 0;
    private int lastItemFrostTime = 0;

    public ContainerCooler(InventoryPlayer par1InventoryPlayer, TileEntityCooler par2TileEntityFurnace)
    {
        this.cooler = par2TileEntityFurnace;
        this.addSlotToContainer(new Slot(par2TileEntityFurnace, 0, 56, 17));
        this.addSlotToContainer(new Slot(par2TileEntityFurnace, 1, 56, 53));
        this.addSlotToContainer(new SlotCooler(par1InventoryPlayer.player, par2TileEntityFurnace, 2, 116, 35));
        int i;

        for (i = 0; i < 3; ++i)
        {
            for (int j = 0; j < 9; ++j)
            {
                this.addSlotToContainer(new Slot(par1InventoryPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
            }
        }

        for (i = 0; i < 9; ++i)
        {
            this.addSlotToContainer(new Slot(par1InventoryPlayer, i, 8 + i * 18, 142));
        }
    }

    public void addCraftingToCrafters(ICrafting par1ICrafting)
    {
        super.addCraftingToCrafters(par1ICrafting);
        par1ICrafting.sendProgressBarUpdate(this, 0, this.cooler.furnaceCookTime);
        par1ICrafting.sendProgressBarUpdate(this, 1, this.cooler.coolerFrostTime);
        par1ICrafting.sendProgressBarUpdate(this, 2, this.cooler.currentItemBurnTime);
    }

    /**
     * Looks for changes made in the container, sends them to every listener.
     */
    public void detectAndSendChanges()
    {
        super.detectAndSendChanges();

        for (int i = 0; i < this.crafters.size(); ++i)
        {
            ICrafting icrafting = (ICrafting)this.crafters.get(i);

            if (this.lastCoolTime != this.cooler.furnaceCookTime)
            {
                icrafting.sendProgressBarUpdate(this, 0, this.cooler.furnaceCookTime);
            }

            if (this.lastFrostTime != this.cooler.coolerFrostTime)
            {
                icrafting.sendProgressBarUpdate(this, 1, this.cooler.coolerFrostTime);
            }

            if (this.lastItemFrostTime != this.cooler.currentItemBurnTime)
            {
                icrafting.sendProgressBarUpdate(this, 2, this.cooler.currentItemBurnTime);
            }
        }

        this.lastCoolTime = this.cooler.furnaceCookTime;
        this.lastFrostTime = this.cooler.coolerFrostTime;
        this.lastItemFrostTime = this.cooler.currentItemBurnTime;
    }

    @SideOnly(Side.CLIENT)
    public void updateProgressBar(int par1, int par2)
    {
        if (par1 == 0)
        {
            this.cooler.furnaceCookTime = par2;
        }

        if (par1 == 1)
        {
            this.cooler.coolerFrostTime = par2;
        }

        if (par1 == 2)
        {
            this.cooler.currentItemBurnTime = par2;
        }
    }

    public boolean canInteractWith(EntityPlayer par1EntityPlayer)
    {
        return this.cooler.isUseableByPlayer(par1EntityPlayer);
    }

    /**
     * Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that.
     */
    public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)
    {
        ItemStack itemstack = null;
        Slot slot = (Slot)this.inventorySlots.get(par2);

        if (slot != null && slot.getHasStack())
        {
            ItemStack itemstack1 = slot.getStack();
            itemstack = itemstack1.copy();

            if (par2 == 2)
            {
                if (!this.mergeItemStack(itemstack1, 3, 39, true))
                {
                    return null;
                }

                slot.onSlotChange(itemstack1, itemstack);
            }
            else if (par2 != 1 && par2 != 0)
            {
                if (RecipesCooler.smelting().getSmeltingResult(itemstack1) != null)
                {
                    if (!this.mergeItemStack(itemstack1, 0, 1, false))
                    {
                        return null;
                    }
                }
                else if (TileEntityCooler.isItemFuel(itemstack1))
                {
                    if (!this.mergeItemStack(itemstack1, 1, 2, false))
                    {
                        return null;
                    }
                }
                else if (par2 >= 3 && par2 < 30)
                {
                    if (!this.mergeItemStack(itemstack1, 30, 39, false))
                    {
                        return null;
                    }
                }
                else if (par2 >= 30 && par2 < 39 && !this.mergeItemStack(itemstack1, 3, 30, false))
                {
                    return null;
                }
            }
            else if (!this.mergeItemStack(itemstack1, 3, 39, false))
            {
                return null;
            }

            if (itemstack1.stackSize == 0)
            {
                slot.putStack((ItemStack)null);
            }
            else
            {
                slot.onSlotChanged();
            }

            if (itemstack1.stackSize == itemstack.stackSize)
            {
                return null;
            }

            slot.onPickupFromSlot(par1EntityPlayer, itemstack1);
        }

        return itemstack;
    }
}

ClientProxy

package TechCraft;

import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.common.MinecraftForge;


public class ClientProxy extends CommonProxy
{



@Override
public void registerRenderers()
{
RenderingRegistry.registerEntityRenderingHandler(EntityRDXPrimed.class, new RenderRDX());

}
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{

TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
if (tileEntity != null)
{
switch(ID)
{
case 0: /* your GUIs go here */
}
}
return tileEntity;

}
}

CommonProxy

package TechCraft;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import cpw.mods.fml.common.network.IGuiHandler;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;

public class CommonProxy implements IGuiHandler
{

@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
return null;
}
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);

if(tileEntity != null)
{
switch(ID)
{
case 0: /* your Containers go here*/
}
}
return tileEntity;
}
public void registerRenderers() {
    EntityRegistry.registerGlobalEntityID(EntityRDXPrimed.class, "RDX", 180);
    EntityRegistry.registerModEntity(EntityRDXPrimed.class, "RDX", 10, Core.instance, 180, 1, false);


}
}

Please help. Any assistance will be much appreciated.

Link to comment
Share on other sites

guiid.png

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

+1 for the awesome Paint art.

 

Snip tool, actually, but it amounts to the same thing. ;)

(I love the Windows Vista/7 snip tool.  *Drool*)

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Thanks but now it returns the error "A mod tried to open a gui without being a NetworkMod"

 

Good thing you solved it, as that error is woefully inadequate, as there are something like FIVE different problems that will generate that error.  I had the misfortune of having the most uncommon one when I was doing my gui container.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Thanks but now it returns the error "A mod tried to open a gui without being a NetworkMod"

 

Good thing you solved it, as that error is woefully inadequate, as there are something like FIVE different problems that will generate that error.  I had the misfortune of having the most uncommon one when I was doing my gui container.

 

Glad to see your back from your hiatus Draco :D

I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes.

 

I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there xD

Link to comment
Share on other sites

Glad to see your back from your hiatus Draco :D

 

It's what happens when you tear your hair out trying to do something that should be simple, only to find that Forge didn't unfinalize something* and get dragged back into the help forum. :P

 

*Lex told me that there's no reason it should be unfinalized, three days later a pull request is made, acted on, and merged with the main trunk.  I think Lex just hates me.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Glad to see your back from your hiatus Draco :D

 

It's what happens when you tear your hair out trying to do something that should be simple, only to find that Forge didn't unfinalize something* and get dragged back into the help forum. :P

 

*Lex told me that there's no reason it should be unfinalized, three days later a pull request is made, acted on, and merged with the main trunk.  I think Lex just hates me.

 

Lol, maybe. It seems as if he has minor respect for everyone with a descent question, and those that answer correctly and know what they are doing, and then no respect for anyone else xD ( except for the moderators etc. and the Forge team )

I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes.

 

I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there xD

Link to comment
Share on other sites

Lol, maybe. It seems as if he has minor respect for everyone with a descent question, and those that answer correctly and know what they are doing, and then no respect for anyone else xD ( except for the moderators etc. and the Forge team )

 

More like "no respect for anyone asking what appears to be an uninformed question" regardless of how informed that person actually is.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Lol, maybe. It seems as if he has minor respect for everyone with a descent question, and those that answer correctly and know what they are doing, and then no respect for anyone else xD ( except for the moderators etc. and the Forge team )

 

More like "no respect for anyone asking what appears to be an uninformed question" regardless of how informed that person actually is.

 

True.. Even though you can be entirely informed, if you phrase something wrong, the question then takes a completely new path. And that in turn can lead to something that you had not entirely wanted to be informed on. Thus resulting in yourself seeming uninformed.

 

:/ The joys of misdirection in its fullest. ( and no the magician kind xD )

I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes.

 

I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there xD

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

    • ---- Minecraft Crash Report ---- // Don't be sad, have a hug! ❤️ Time: 2024-09-28 06:19:18 CDT Description: Ticking screen java.lang.ClassCastException: danger.orespawn.IrukandjiArrow cannot be cast to net.minecraft.entity.EntityLivingBase     at net.minecraft.client.network.NetHandlerPlayClient.func_147281_a(Unknown Source)     at net.minecraft.network.play.server.S0FPacketSpawnMob.func_148833_a(SourceFile:97)     at net.minecraft.network.play.server.S0FPacketSpawnMob.func_148833_a(SourceFile:15)     at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212)     at net.minecraft.client.multiplayer.GuiConnecting.func_73876_c(SourceFile:78)     at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1661)     at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:973)     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:6104)     at net.minecraft.client.main.Main.main(SourceFile:148)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)     at net.minecraft.launchwrapper.Launch.main(Launch.java:28) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Affected screen -- Details:     Screen name: ~~ERROR~~ NullPointerException: null -- Affected level -- Details:     Level name: MpServer     All players: 1 total; [EntityClientPlayerMP['Jamajick'/59492, l='MpServer', x=-23.07, y=83.16, z=-95.57]]     Chunk stats: MultiplayerChunkCache: 90, 90     Level seed: 0     Level generator: ID 00 - default, ver 1. Features enabled: false     Level generator options:      Level spawn location: World: (-28,64,-107), Chunk: (at 4,4,5 in -2,-7; contains blocks -32,0,-112 to -17,255,-97), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)     Level time: 6363740 game time, 6381896 day time     Level dimension: 0     Level storage version: 0x00000 - Unknown?     Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)     Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false     Forced entities: 65 total; [EntityLunaMoth['Moth'/46592, l='MpServer', x=22.47, y=66.00, z=-133.97], EntityChicken['Chicken'/2825, l='MpServer', x=-35.47, y=84.00, z=-99.63], EntitySheep['Sheep'/2826, l='MpServer', x=-12.09, y=76.00, z=-96.47], Entity_SpecialZombie['Zombie'/39307, l='MpServer', x=47.84, y=65.00, z=-29.66], EntityChicken['Chicken'/2828, l='MpServer', x=-19.38, y=84.00, z=-87.41], EntitySheep['Sheep'/2830, l='MpServer', x=-26.91, y=87.00, z=-48.94], EntityItem['item.item.egg'/45966, l='MpServer', x=-40.16, y=79.13, z=-113.84], EntityCreeper['Creeper'/34959, l='MpServer', x=-5.50, y=26.00, z=-96.50], EntitySheep['Sheep'/2831, l='MpServer', x=-25.91, y=87.00, z=-46.03], EntityCreeper['Creeper'/55313, l='MpServer', x=41.88, y=66.00, z=-28.22], EntityItem['item.item.feather'/33939, l='MpServer', x=-21.28, y=79.13, z=-97.63], EntityChicken['Chicken'/2837, l='MpServer', x=-27.44, y=70.00, z=-132.44], EntityChicken['Chicken'/2838, l='MpServer', x=-3.59, y=64.00, z=-106.38], EntityChicken['Chicken'/2841, l='MpServer', x=0.47, y=65.00, z=-98.47], ThePrinceTeen['The Young Prince'/2844, l='MpServer', x=-8.50, y=75.00, z=-95.50], ThePrinceTeen['The Young Prince'/2845, l='MpServer', x=-2.50, y=71.00, z=-91.50], ThePrinceTeen['The Young Prince'/2846, l='MpServer', x=-9.91, y=77.00, z=-94.13], ThePrinceTeen['The Young Prince'/2847, l='MpServer', x=-7.50, y=76.00, z=-91.50], EntitySheep['Sheep'/2848, l='MpServer', x=-8.06, y=87.00, z=-55.03], EntityMinecartChest['entity.MinecartChest.name'/2722, l='MpServer', x=-88.50, y=34.50, z=-159.50], EntityPig['Pig'/2723, l='MpServer', x=-84.91, y=79.00, z=-52.84], EntityItem['item.item.egg'/59429, l='MpServer', x=-53.91, y=79.13, z=-78.16], EntityItem['item.item.egg'/59430, l='MpServer', x=-14.78, y=78.13, z=-94.91], EntityItem['item.item.egg'/59431, l='MpServer', x=-4.34, y=64.13, z=-105.16], EntitySquid['Squid'/35881, l='MpServer', x=-54.50, y=52.00, z=-88.50], EntityItem['item.item.egg'/42031, l='MpServer', x=-23.78, y=75.13, z=-131.88], EntityItem['item.item.egg'/33970, l='MpServer', x=-15.53, y=69.13, z=-104.34], EntitySquid['Squid'/47923, l='MpServer', x=21.50, y=60.00, z=-90.72], EntitySquid['Squid'/47925, l='MpServer', x=21.50, y=61.34, z=-92.78], EntityCreeper['Creeper'/34615, l='MpServer', x=38.50, y=26.00, z=-75.06], EntityCreeper['Creeper'/34616, l='MpServer', x=38.50, y=29.00, z=-67.50], EntityCreeper['Creeper'/34617, l='MpServer', x=34.50, y=29.00, z=-69.50], EntityCreeper['Creeper'/35001, l='MpServer', x=28.09, y=34.00, z=-156.56], EntityCreeper['Creeper'/35002, l='MpServer', x=31.50, y=34.00, z=-156.50], EntityCow['Cow'/2878, l='MpServer', x=41.72, y=77.00, z=-117.50], EntityWitch['Witch'/55486, l='MpServer', x=44.47, y=68.00, z=-36.06], EntityCow['Cow'/2879, l='MpServer', x=35.13, y=68.00, z=-83.81], EntityWitch['Witch'/55487, l='MpServer', x=45.31, y=65.00, z=-32.69], EntityRabbit['Rabbit'/2880, l='MpServer', x=35.28, y=70.00, z=-74.59], EntityRabbit['Rabbit'/2881, l='MpServer', x=36.53, y=71.00, z=-53.63], EntityLunaMoth['Moth'/58179, l='MpServer', x=23.31, y=65.31, z=-135.34], EntityLunaMoth['Moth'/58180, l='MpServer', x=17.69, y=64.00, z=-122.84], EntityLunaMoth['Moth'/58181, l='MpServer', x=20.69, y=68.53, z=-123.69], EntityChicken['Chicken'/2758, l='MpServer', x=-67.56, y=75.00, z=-94.56], EntityLunaMoth['Moth'/58183, l='MpServer', x=12.47, y=65.00, z=-118.44], EntityPig['Pig'/2760, l='MpServer', x=-75.53, y=79.00, z=-75.31], EntityPig['Pig'/2761, l='MpServer', x=-74.84, y=81.00, z=-50.03], EntityCow['Cow'/2893, l='MpServer', x=48.88, y=66.00, z=-95.69], EntityRabbit['Rabbit'/2766, l='MpServer', x=-59.41, y=81.00, z=-156.88], EntityRabbit['Rabbit'/2894, l='MpServer', x=50.44, y=69.00, z=-76.47], EntityChicken['Chicken'/2767, l='MpServer', x=-52.59, y=80.00, z=-78.38], EntitySpider['Spider'/42065, l='MpServer', x=55.50, y=68.00, z=-36.50], EntityChicken['Chicken'/2778, l='MpServer', x=-46.84, y=70.00, z=-158.84], EntityChicken['Chicken'/2780, l='MpServer', x=-44.53, y=78.00, z=-111.56], EntityChicken['Chicken'/2782, l='MpServer', x=-12.63, y=78.00, z=-94.47], EntityChicken['Chicken'/2783, l='MpServer', x=-38.66, y=79.00, z=-91.41], EntityItem['item.item.egg'/57702, l='MpServer', x=-36.53, y=83.13, z=-90.06], Entity_SpecialSkeleton['Skeleton'/55532, l='MpServer', x=54.47, y=64.00, z=-35.13], EntityClientPlayerMP['Jamajick'/59492, l='MpServer', x=-23.07, y=83.16, z=-95.57], EntityItem['item.item.egg'/34031, l='MpServer', x=-22.69, y=81.13, z=-79.72], EntityCreeper['Creeper'/43642, l='MpServer', x=47.28, y=67.00, z=-24.66], EntityLunaMoth['Moth'/46588, l='MpServer', x=18.78, y=65.06, z=-124.63], EntityItem['item.item.egg'/47228, l='MpServer', x=-44.53, y=70.13, z=-157.22], EntityLunaMoth['Moth'/46589, l='MpServer', x=14.22, y=64.34, z=-121.44], EntityLunaMoth['Moth'/46590, l='MpServer', x=20.50, y=66.16, z=-126.34]]     Retry entities: 0 total; []     Server brand: fml,forge     Server type: Non-integrated multiplayer server Stacktrace:     at net.minecraft.client.multiplayer.WorldClient.func_72914_a(WorldClient.java:373)     at net.minecraft.client.Minecraft.func_71396_d(Minecraft.java:2444)     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:6107)     at net.minecraft.client.main.Main.main(SourceFile:148)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)     at net.minecraft.launchwrapper.Launch.main(Launch.java:28) -- System Details -- Details:     Minecraft Version: 1.7.10     Operating System: Windows 10 (amd64) version 10.0     Java Version: 1.8.0_51, Oracle Corporation     Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation     Memory: 10882239080 bytes (10378 MB) / 13861650432 bytes (13219 MB) up to 13861650432 bytes (13219 MB)     JVM Flags: 3 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx13g -Xms7g     AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used     IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0     FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 319 mods loaded, 319 mods active     States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored     UCHIJA    mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)      UCHIJA    FML{7.10.99.99} [Forge Mod Loader] (forge-1.7.10-10.13.4.1614-1.7.10.jar)      UCHIJA    Forge{10.13.4.1614} [Minecraft Forge] (forge-1.7.10-10.13.4.1614-1.7.10.jar)      UCHIJA    appliedenergistics2-core{rv3-beta-6} [Applied Energistics 2 Core] (minecraft.jar)      UCHIJA    Aroma1997Core{1.0.2.16} [Aroma1997Core] (Aroma1997Core-1.7.10-1.0.2.16.jar)      UCHIJA    CartFixes{0.1.0} [Steve's Cart Fixes] (minecraft.jar)      UCHIJA    CodeChickenCore{1.1.11} [CodeChicken Core] (minecraft.jar)      UCHIJA    CropLoadCoreASM{0.0.2} [CroploadCore ASM Core] (minecraft.jar)      UCHIJA    ivtoolkit{1.2.1} [IvToolkit] (minecraft.jar)      UCHIJA    Micdoodlecore{} [Micdoodle8 Core] (minecraft.jar)      UCHIJA    NotEnoughItems{2.3.27-GTNH} [NotEnoughItems] (NotEnoughItems-2.3.27-GTNH.jar)      UCHIJA    OpenComputers|Core{@VERSION@} [OpenComputers (Core)] (minecraft.jar)      UCHIJA    MobiusCore{1.3.8-mapless} [MobiusCore] (minecraft.jar)      UCHIJA    PlayerAPI{1.4.2} [Player API] (minecraft.jar)      UCHIJA    ThE-core{1.0.0.1} [Thaumic Energistics Core] (minecraft.jar)      UCHIJA    ThaumicTinkerer-preloader{0.1} [Thaumic Tinkerer Core] (minecraft.jar)      UCHIJA    VillagerMetaFix{0.3} [VillagerMetaFix] (VillagerMetaFix-0.3.jar)      UCHIJA    ChocoPatcher{1.1} [Choco Patcher] (minecraft.jar)      UCHIJA    OpenModsCore{0.10.1} [OpenModsCore] (minecraft.jar)      UCHIJA    <CoFH ASM>{000} [CoFH ASM] (minecraft.jar)      UCHIJA    txloader{1.5} [TX Loader] (txloader-1.5.jar)      UCHIJA    NettyPatch_ASM{0.3.1} [NettyPatch_ASM] (minecraft.jar)      UCHIJA    debug{1.0} [debug] (denseores-1.6.2.jar)      UCHIJA    unimixins{0.1.6} [UniMixins] (!unimixins-all-1.7.10-0.1.6.jar)      UCHIJA    unimixins-mixin{0.1.6} [UniMixins: Mixin (UniMix)] (!unimixins-all-1.7.10-0.1.6.jar)      UCHIJA    unimixins-compat{0.1.6} [UniMixins: Compatibility] (!unimixins-all-1.7.10-0.1.6.jar)      UCHIJA    mixingasm{0.2.2} [UniMixins: Mixingasm] (!unimixins-all-1.7.10-0.1.6.jar)      UCHIJA    gtnhmixins{2.1.9} [UniMixins: GTNHMixins] (!unimixins-all-1.7.10-0.1.6.jar)      UCHIJA    spongemixins{2.0.1} [UniMixins: SpongeMixins] (!unimixins-all-1.7.10-0.1.6.jar)      UCHIJA    mixinbooterlegacy{1.2.1} [UniMixins: MixinBooterLegacy] (!unimixins-all-1.7.10-0.1.6.jar)      UCHIJA    gasstation{0.5.1} [UniMixins: GasStation] (!unimixins-all-1.7.10-0.1.6.jar)      UCHIJA    mixinextras{0.1.6} [UniMixins: MixinExtras] (!unimixins-all-1.7.10-0.1.6.jar)      UCHIJA    securitycraft{v1.8.13} [SecurityCraft] ([1.7.10] SecurityCraft v1.8.13.jar)      UCHIJA    bspkrsCore{6.16} [bspkrsCore] ([1.7.10]bspkrsCore-universal-6.16.jar)      UCHIJA    Treecapitator{1.7.10} [Treecapitator] ([1.7.10]Treecapitator-universal-2.0.4.jar)      UCHIJA    battlegear2{1.1.2.4} [Mine & Blade Battlegear 2] (battlegear2-1.1.2.4.jar)      UCHIJA    aether_legacy{v1.1.2.2} [The Aether] (aether-1.7.10-v1.1.2.2.jar)      UCHIJA    AppleCore{3.2.10} [AppleCore] (AppleCore-3.2.10.jar)      UCHIJA    appliedenergistics2{rv3-beta-6} [Applied Energistics 2] (appliedenergistics2-rv3-beta-6.jar)      UCHIJA    archaicfix{0.5.0} [ArchaicFix] (archaicfix-0.5.0.jar)      UCHIJA    ArchitectureCraft{1.7.6} [ArchitectureCraft] (ArchitectureCraft-1.7.10-1.7.6.jar)      UCHIJA    Aroma1997CoreHelper{1.0.2.16} [Aroma1997Core|Helper] (Aroma1997Core-1.7.10-1.0.2.16.jar)      UCHIJA    Aroma1997sDimension{1.0} [Aroma1997's Dimensional World] (Aroma1997s-Dimensional-World-1.7.10-1.1.0.1.jar)      UCHIJA    AromaBackup{0.1.0.0} [AromaBackup] (AromaBackup-1.7.10-0.1.0.0.jar)      UCHIJA    AromaBackupRecovery{1.0} [AromaBackup Recovery] (AromaBackup-1.7.10-0.1.0.0.jar)      UCHIJA    ascribe{1.7.10-0.1} [Ascribe] (Ascribe-1.7.10-0.1.jar)      UCHIJA    CoFHCore{1.7.10R3.1.4} [CoFH Core] (CoFHCore-[1.7.10]3.1.4-329.jar)      UCHIJA    asielib{0.4.9} [asielib] (AsieLib-1.7.10-0.4.9.jar)      UCHIJA    asmc{1.0.2} [ dASMC] (ASMC-1.7.10-1.0.2.jar)      UCHIJA    Baubles{1.0.1.10} [Baubles] (Baubles-1.7.10-1.0.1.10.jar)      UCHIJA    Thaumcraft{4.2.3.5} [Thaumcraft] (Thaumcraft-1.7.10-4.2.3.5.jar)      UCHIJA    Waila{1.5.10} [Waila] (Waila-1.5.10_1.7.10.jar)      UCHIJA    Automagy{0.28.2} [Automagy] (Automagy-1.7.10-0.28.2.jar)      UCHIJA    AWWayofTime{v1.3.3} [Blood Magic: Alchemical Wizardry] (BloodMagic-1.7.10-1.3.3-17.jar)      UCHIJA    Botania{r1.8-249} [Botania] (Botania r1.8-249.jar)      UCHIJA    Avaritia{1.34} [Avaritia] (Avaritia-1.34.jar)      UCHIJA    Backpack{2.0.1} [Backpack] (backpack-2.0.1-1.7.x.jar)      UCHIJA    bdlib{1.9.8-GTNH} [BD lib] (bdlib-1.7.10-1.9.8-GTNH.jar)      UCHIJA    BetterAchievements{0.1.3} [Better Achievements] (BetterAchievements-1.7.10-0.1.3.jar)      UCHIJA    betterbuilderswands{0.9.6-GTNH} [BetterBuildersWands] (BetterBuildersWands-1.7.10-0.9.6-GTNH.jar)      UCHIJA    bettercrashes{1.1.9-GTNH} [BetterCrashes] (bettercrashes-1.7.10-1.1.9-GTNH.jar)      UCHIJA    betterloadingscreen{1.3.39-GTNH} [Better Loading Screen GTNH] (betterloadingscreen-1.3.39-GTNH.jar)      UCHIJA    BiblioCraft{1.11.7} [BiblioCraft] (BiblioCraft[v1.11.7][MC1.7.10].jar)      UCHIJA    Mantle{1.7.10-0.3.2.jenkins191} [Mantle] (Mantle-1.7.10-0.3.2b.jar)      UCHIJA    ThermalFoundation{1.7.10R1.2.6} [Thermal Foundation] (ThermalFoundation-[1.7.10]1.2.6-118.jar)      UCHIJA    ForgeMultipart{1.2.0.347} [Forge Multipart] (ForgeMultipart-1.7.10-1.2.0.347-universal.jar)      UCHIJA    BuildCraft|Core{7.1.25} [BuildCraft] (buildcraft-7.1.25.jar)      UCHIJA    ExtraUtilities{1.2.12} [Extra Utilities] (extrautilities-1.2.12.jar)      UCHIJA    ThermalExpansion{1.7.10R4.1.5} [Thermal Expansion] (ThermalExpansion-[1.7.10]4.1.5-248.jar)      UCHIJA    TConstruct{1.9.25-GTNH} [Tinkers' Construct] (TConstruct-1.9.25-GTNH.jar)      UCHIJA    Natura{2.5.5} [Natura] (Natura-1.7.10-2.5.5.jar)      UCHIJA    BiomesOPlenty{2.1.0} [Biomes O' Plenty] (BiomesOPlenty-1.7.10-2.1.0.2308-universal.jar)      UCHIJA    BiblioWoodsBoP{1.9} [BiblioWoods Biomes O'Plenty Edition] (BiblioWoods[BiomesOPlenty][v1.9].jar)      UCHIJA    gtnhlib{0.0.13} [GTNH Lib] (gtnhlib-0.0.13.jar)      UCHIJA    HardcoreEnderExpansion{1.9.7-GTNH} [Hardcore Ender Expansion] (HardcoreEnderExpansion-1.7.10-1.9.7-GTNH.jar)      UCHIJA    IC2{2.2.827-experimental} [IndustrialCraft 2] (industrialcraft-2-2.2.827-experimental.jar)      UCHIJA    Forestry{4.6.0} [Forestry] (Forestry-4.6.0.jar)      UCHIJA    BiblioWoodsForestry{1.7} [BiblioWoods Forestry Edition] (BiblioWoods[Forestry][v1.7].jar)      UCHIJA    BiblioWoodsNatura{1.5} [BiblioWoods Natura Edition] (BiblioWoods[Natura][v1.5].jar)      UCHIJA    biggerpacketsplz{1.2} [Bigger Packets, please !] (biggerpacketsplz-upto1.7.10-1.2.jar)      UCHIJA    BigReactors{0.4.3A} [Big Reactors] (BigReactors-0.4.3A.jar)      UCHIJA    BinnieCore{2.0.22.7} [Binnie Core] (binnie-mods-1.7.10-2.0.22.7.jar)      UCHIJA    Botany{2.0.22.7} [Botany] (binnie-mods-1.7.10-2.0.22.7.jar)      UCHIJA    ExtraTrees{2.0.22.7} [Extra Trees] (binnie-mods-1.7.10-2.0.22.7.jar)      UCHIJA    Genetics{2.0.22.7} [Genetics] (binnie-mods-1.7.10-2.0.22.7.jar)      UCHIJA    ExtraBees{2.0.22.7} [Extra Bees] (binnie-mods-1.7.10-2.0.22.7.jar)      UCHIJA    YAMCore{0.5.84} [YAMCore] (YAMCore-1.7.10-0.5.84.jar)      UCHIJA    blocklimiter{0.55} [BlockLimiter. Restrict your Blocks] (BlockLimiter-1.7.10-0.55.jar)      UCHIJA    blockrenderer6343{1.0.0-RC7} [BlockRenderer6343] (blockrenderer6343-1.7.10-1.0.0-RC7.jar)      UCHIJA    ComputerCraft{1.75} [ComputerCraft] (ComputerCraft1.75.jar)      UCHIJA    ThaumicTinkerer{unspecified} [Thaumic Tinkerer] (ThaumicTinkerer-2.5-1.7.10-542.jar)      UCHIJA    ForbiddenMagic{1.7.10-0.575} [Forbidden Magic] (Forbidden Magic-1.7.10-0.575.jar)      UCHIJA    guideapi{1.7.10-1.0.1-20} [Guide-API] (Guide-API-1.7.10-1.0.1-20.jar)      UCHIJA    BloodArsenal{1.2.9} [Blood Arsenal] (BloodArsenal-1.7.10-1.2.9.jar)      UCHIJA    bookshelf{1.0.4.187} [Bookshelf] (Bookshelf-1.7.10-1.0.4.187.jar)      UCHIJA    BrandonsCore{1.0.0.13-GTNH} [Brandon's Core] (BrandonsCore-1.7.10-1.0.0.13-GTNH.jar)      UCHIJA    bugtorch{1.2.5GTNH} [BugTorch] (bugtorch-1.2.5GTNH.jar)      UCHIJA    BuildCraft|Builders{7.1.25} [BC Builders] (buildcraft-7.1.25.jar)      UCHIJA    BuildCraft|Robotics{7.1.25} [BC Robotics] (buildcraft-7.1.25.jar)      UCHIJA    BuildCraft|Silicon{7.1.25} [BC Silicon] (buildcraft-7.1.25.jar)      UCHIJA    BuildCraft|Energy{7.1.25} [BC Energy] (buildcraft-7.1.25.jar)      UCHIJA    BuildCraft|Transport{7.1.25} [BC Transport] (buildcraft-7.1.25.jar)      UCHIJA    BuildCraft|Factory{7.1.25} [BC Factory] (buildcraft-7.1.25.jar)      UCHIJA    BuildCraft|Compat{7.1.12} [BuildCraft Compat] (buildcraft-compat-1.7.10-7.1.12.jar)      UCHIJA    OilTweak{1.0.4} [BuildCraft Oil Tweak] (BuildCraftOilTweak-1.7.10-1.0.4.jar)      UCHIJA    catwalks{2.0.4} [Catwalks Mod] (catwalks-1.7.10-2.1.4-GTNH.jar)      UCHIJA    ChickenChunks{1.3.4.19} [ChickenChunks] (ChickenChunks-1.7.10-1.3.4.19-universal.jar)      UCHIJA    TwilightForest{2.3.8dev} [The Twilight Forest] (twilightforest-1.7.10-2.3.8.jar)      UCHIJA    chisel{2.9.5.11} [Chisel] (Chisel-2.9.5.11.jar)      UCHIJA    colorchat{1.7.2-0.1.0} [ColorChat] (colorchat-1.7.10-0.1.0-22.jar)      UCHIJA    compacter{1.2.1.15} [Compacter] (compacter-1.2.1.15-mc1.7.10.jar)      UCHIJA    compactkineticgenerators{1.7.10-1.0} [Compact Kinetic Wind and Water Generators] (CompactKineticGenerators-1.7.10-1.0.jar)      UCHIJA    CompactSolars{4.4.41.316} [Compact Solar Arrays] (CompactSolars-1.7.10-4.4.41.316-universal.jar)      UCHIJA    endercore{1.7.10-0.2.0.39_beta} [EnderCore] (EnderCore-1.7.10-0.2.0.39_beta.jar)      UCHIJA    EnderIO{1.7.10-2.3.0.429_beta} [Ender IO] (EnderIO-1.7.10-2.3.0.429_beta.jar)      UCHIJA    EnderStorage{1.4.7.38} [EnderStorage] (EnderStorage-1.7.10-1.4.7.38-universal.jar)      UCHIJA    MrTJPCoreMod{1.1.4} [MrTJPCore] (MrTJPCore-1.7.10-1.1.4.jar)      UCHIJA    ProjRed|Core{4.7.0pre12.95} [ProjectRed Core] (ProjectRed-1.7.10-4.7.0pre12.95-Base.jar)      UCHIJA    ProjRed|Transmission{4.7.0pre12.95} [ProjectRed Transmission] (ProjectRed-1.7.10-4.7.0pre12.95-Integration.jar)      UCHIJA    OpenComputers{1.8.0.13-GTNH} [OpenComputers] (OpenComputers-1.8.0.13-GTNH.jar)      UCHIJA    GalacticraftCore{3.0.12} [Galacticraft Core] (GalacticraftCore-1.7-3.0.12.504.jar)      UCHIJA    Mekanism{9.1.0} [Mekanism] (Mekanism-1.7.10-9.1.0.281.jar)      UCHIJA    computronics{1.6.19-GTNH} [Computronics] (Computronics-1.6.19-GTNH.jar)      UCHIJA    controlling{1.0.0.5} [Controlling] (controlling-1.0.0.5.jar)      UCHIJA    cookingbook{1.0.140} [Cooking for Blockheads] (cookingbook-mc1.7.10-1.0.140.jar)      UCHIJA    cookingforblockheads{1.2.14-GTNH} [Cooking For Blockheads] (CookingForBlockheads-1.2.14-GTNH.jar)      UCHIJA    coretweaks{0.3.0.3} [CoreTweaks] (CoreTweaks-1.7.10-0.3.0.3+nomixin.jar)      UCHIJA    creativecore{1.3.27-GTNH} [CreativeCore] (creativecore-1.7.10-1.3.27-GTNH.jar)      UCHIJA    DummyCore{1.15} [DummyCore] (DummyCore-1.7.10-1.15.jar)      UCHIJA    thaumicbases{1.4.33} [Thaumic Bases] (Thaumic-Based-1.4.33.jar)      UCHIJA    witchery{0.24.1} [Witchery] (witchery-1.7.10-0.24.1.jar)      UCHIJA    Ztones{1.7.10} [Ztones] (Ztones-1.7.10-2.2.2.jar)      UCHIJA    croploadcore{0.1.10} [CropLoadCore] (CropLoadCore-1.7.10-0.1.10.jar)      UCHIJA    berriespp{1.3.6.12} [Crops++] (CropsPP-1.7.10-1.3.6.12.jar)      UCHIJA    customnpcs{1.7.10d} [CustomNpcs] (CustomNPCs_1.7.10d(29oct17).jar)      UCHIJA    DeathCounter{4.0.0} [DeathCounter] (DeathCounter-4.0.0.jar)      UCHIJA    PTRModelLib{1.0.0} [PTRModelLib] (Decocraft-2.4.2_1.7.10.jar)      UCHIJA    props{2.4.2} [Decocraft] (Decocraft-2.4.2_1.7.10.jar)      UCHIJA    defaultserverlist{1.4.0} [DefaultServerList] (defaultserverlist-1.7.10-1.4.0.jar)      UCHIJA    DefenseTech{1.0.1} [DefenseTech] (DefenseTech-1.7.10-1.0.1.46.jar)      UCHIJA    ImmibisCore{59.1.4} [Immibis Core] (Immibis-Core-1.7.10.jar)      UCHIJA    DimensionalAnchors{59.0.3} [Dimensional Anchors] (dimensional-anchor-59.0.3.jar)      UCHIJA    doge{0.5.3} [Doge] (DogeMod-[1.7.10]-0.5.3.jar)      UCHIJA    DraconicEvolution{1.1.15-GTNH} [Draconic Evolution] (Draconic-Evolution-1.1.15-GTNH.jar)      UCHIJA    EMT{1.2.6.6} [Electro-Magic Tools] (ElectroMagicTools-1.2.6.7.1.7.10.jar)      UCHIJA    eplus{4.0.0..73} [Enchanting Plus] (EnchantingPlus-1.7.10-4.0.0.74.jar)      UCHIJA    EnderTech{1.7.10-0.3.2.405} [EnderTech] (EnderTech-1.7.10-0.3.2.405.jar)      UCHIJA    enhancedlootbags{1.0.8} [Enhanced LootBags] (EnhancedLootBags-1.0.8.jar)      UCHIJA    etfuturum{2.4.0} [ 5 oEt Futurum Requiem] (Et_Futurum_Requiem-2.4.0.jar)      UCHIJA    eternalsingularity{1.0.10} [Eternal Singularity] (eternalsingularity-1.0.10.jar)      UCHIJA    extracells{2.4.0} [Extra Cells 2] (ExtraCells-1.7.10-2.4.0.jar)      UCHIJA    GalacticraftMars{3.0.12} [Galacticraft Planets] (Galacticraft-Planets-1.7-3.0.12.504.jar)      UCHIJA    RedstoneArsenal{1.7.10R1.1.2} [Redstone Arsenal] (RedstoneArsenal-[1.7.10]1.1.2-92.jar)      UCHIJA    MagicBees{2.4.4} [Magic Bees] (magicbees-1.7.10-2.4.4.jar)      UCHIJA    gendustry{1.6.5.5-GTNH} [Gendustry] (gendustry-1.7.10-1.6.5.5-GTNH.jar)      UCHIJA    GraviSuite{1.7.10-2.0.3} [Graviation Suite] (GraviSuite-1.7.10-2.0.3.jar)      UCHIJA    gravisuiteneo{1.0.8} [Gravitation Suite Neo] (gravisuiteneo-1.0.8.jar)      UCHIJA    HardcoreDarkness{1.7} [Hardcore Darkness] (HardcoreDarkness-MC1.7.10-1.7.jar)      UCHIJA    harvestcraft{1.0.21-GTNH} [Pam's HarvestCraft] (harvestcraft-1.0.21-GTNH.jar)      UCHIJA    iChunUtil{4.2.3} [iChunUtil] (iChunUtil-4.2.3.jar)      UCHIJA    Hats{4.0.1} [Hats] (Hats-4.0.1.jar)      UCHIJA    HatStand{4.0.0} [HatStand] (HatStand-4.0.0.jar)      UCHIJA    HelpFixer{1.1.0} [HelpFixer] (HelpFixer-1.7.10-1.1.0.jar)      UCHIJA    hodgepodge{2.0.43} [Hodgepodge] (hodgepodge-2.0.43.jar)      UCHIJA    holoinventory{2.1.19-GTNH} [Holo Inventory] (holoinventory-1.7.10-2.1.19-GTNH.jar)      UCHIJA    HardcoreQuesting{4.4.4} [Hardcore Questing Mode] (HQM-The Journey-4.4.4.jar)      UCHIJA    Ic2Nei{1.2.1} [IC2 Crop Plugin] (IC2 Crop Plugin Version 1.7.10-1.3.1.jar)      UCHIJA    IC2NuclearControl{2.4.16} [Nuclear Control 2] (IC2NuclearControl-1.7.10-2.4.16.jar)      UCHIJA    InfernalMobs{1.7.7-GTNH} [Infernal Mobs] (InfernalMobs-1.7.10-1.7.7-GTNH.jar)      UCHIJA    LunatriusCore{1.1.7-GTNH} [LunatriusCore] (LunatriusCore-1.7.10-1.1.7-GTNH.jar)      UCHIJA    InGameInfoXML{2.8.3.96} [InGame Info XML] (InGameInfoXML-1.7.10-2.8.3.96.jar)      UCHIJA    inpure|core{1.7.10R1.0.0B9} [INpureCore] (INpureCore-[1.7.10]1.0.0B9-62.jar)      UCHIJA    InventoryPets{1.5.2} [Inventory Pets] (inventorypets-1.7.10-1.5.2-universal.jar)      UCHIJA    inventorytweaks{1.5.16} [Inventory Tweaks] (inventorytweaks-1.5.16.jar)      UCHIJA    IronChest{6.0.62.742} [Iron Chest] (ironchest-1.7.10-6.0.62.742-universal.jar)      UCHIJA    ironchestminecarts{1.0.8} [Iron Chest Minecarts] (IronChestMinecarts-1.7.10-1.0.8.jar)      UCHIJA    irontank{1.7.10-1.1.16.16} [Iron Tanks] (irontanks-1.7.10-1.1.16.16.jar)      UCHIJA    itlt{1.0.4} [It's the little things] (itlt-1.7.10-1.0.4.jar)      UCHIJA    JABBA{1.2.2} [JABBA] (Jabba-1.2.2_1.7.10.jar)      UCHIJA    journeymap{5.1.4p1} [JourneyMap] (journeymap-1.7.10-5.1.4p1-unlimited.jar)      UCHIJA    littletiles{1.2.7-GTNH} [LittleTiles] (littletiles-1.7.10-1.2.7-GTNH.jar)      UCHIJA    login_shield{1.7.10-2-gf6e21a7} [Login Shield] (Login_Shield-1.7.10-2-gf6e21a7.jar)      UCHIJA    LogisticsPipes{0.9.3.132} [Logistics Pipes] (logisticspipes-0.9.3.132.jar)      UCHIJA    lucky{5.1.0} [Lucky Block] (lucky-block-forge-1.7.10-1.0.jar)      UCHIJA    magicalcrops{4.0.0_PUBLIC_BETA_4b} [Magical Crops: Core] (magicalcrops-4.0.0_PUBLIC_BETA_5.jar)      UCHIJA    magicalcropsarmour{4.0.0_PUBLIC_BETA_4} [Magical Crops: Armoury] (magicalcropsarmoury-4.0.0_PUBLIC_BETA_4.jar)      UCHIJA    magicalcropsdeco{4.0.0_PUBLIC_BETA_4a} [Magical Crops: Decorative] (magicalcropsdeco-4.0.0_PUBLIC_BETA_4a.jar)      UCHIJA    malisiscore{0.14.7-GTNH} [Malisis Core] (malisiscore-0.14.7-GTNH.jar)      UCHIJA    MekanismGenerators{9.1.0} [MekanismGenerators] (MekanismGenerators-1.7.10-9.1.0.281.jar)      UCHIJA    MekanismTools{9.1.0} [MekanismTools] (MekanismTools-1.7.10-9.1.0.281.jar)      UCHIJA    MineMenu{1.2.0} [MineMenu] (MineMenu-1.7.10-1.2.0.B44-universal.jar)      UCHIJA    testdummy{1.0} [MmmMmmMmmMmm] (MmmMmmMmmMmm-1.7.10-1.9.jar)      UCHIJA    numina{1.7.10} [Numina] (Numina-0.4.1.106.jar)      UCHIJA    powersuits{1.7.10-0.11.1.117} [MachineMuse's Modular Powersuits] (ModularPowersuits-1.7.10-0.11.1.117.jar)      UCHIJA    modularui{1.0.71} [ModularUI] (modularui-1.0.71.jar)      UCHIJA    Morph{0.9.3} [Morph] (Morph-Beta-0.9.3.jar)      UCHIJA    MouseTweaks{2.4.8-GTNH} [Mouse Tweaks] (MouseTweaks-2.4.8-GTNH.jar)      UCHIJA    cfm{3.4.8} [ 9MrCrayfish's Furniture Mod] (MrCrayfishFurnitureModv3.4.8(1.7.10).jar)      UCHIJA    naturescompass{1.3.1} [Nature's Compass] (NaturesCompass-1.7.10-1.3.1.jar)      UCHIJA    necromancy{1.7.2} [Necromancy] (Necromancy-1.7.10a.jar)      UCHIJA    NEIAddons|ExNihilo{1.12.22} [NEI Addons: Ex Nihilo] (NEIAddons-1.7.10-1.12.22.jar)      UCHIJA    NEIAddons{1.12.22} [NEI Addons] (NEIAddons-1.7.10-1.12.22.jar)      UCHIJA    NEIAddons|Forestry{1.12.22} [NEI Addons: Forestry] (NEIAddons-1.7.10-1.12.22.jar)      UCHIJA    NEIAddons|AppEng{1.12.22} [NEI Addons: Applied Energistics 2] (NEIAddons-1.7.10-1.12.22.jar)      UCHIJA    NEIAddons|Botany{1.12.22} [NEI Addons: Botany] (NEIAddons-1.7.10-1.12.22.jar)      UCHIJA    NEIAddons|Developer{1.12.22} [NEI Addons: Developer Tools] (NEIAddons-1.7.10-1.12.22.jar)      UCHIJA    NEIAddons|CraftingTables{1.12.22} [NEI Addons: Crafting Tables] (NEIAddons-1.7.10-1.12.22.jar)      UCHIJA    neicustomdiagram{1.5.1} [NEI Custom Diagram] (NEICustomDiagram-1.5.1.jar)      UCHIJA    neiintegration{1.2.3} [NEIIntegration] (NEIIntegration-1.7.10-1.2.3.jar)      UCHIJA    netherlicious{3.2.8} [ 6Netherlicious] (netherlicious-3.2.8.jar)      UCHIJA    NetherOres{1.7.10R2.3.1} [Nether Ores] (NetherOres-[1.7.10]2.3.1-22.jar)      UCHIJA    netherportalfix{1.1.2} [Nether Portal Fix] (netherportalfix-1.7.10-1.1.2.jar)      UCHIJA    NettyPatch{0.3.1} [NettyPatch] (NettyPatch-1.7.10-0.3.1.jar)      UCHIJA    TaintedMagic{r7.6} [Tainted Magic] (Tainted-Magic-7.6.2-GTNH.jar)      UCHIJA    NodalMechanics{1.1.-6-GTNH} [NodalMechanics] (NodalMechanics-1.7.10-1.1.-6-GTNH.jar)      UCHIJA    recipehandler{1.7.10} [NoMoreRecipeConflict] (NoMoreRecipeConflict-0.3(1.7.10).jar)      UCHIJA    notenoughIDs{1.4.6} [notenoughIDs] (notenoughIDs-1.7.10-1.4.6.jar)      UCHIJA    neresources{0.1.0.ManuallyBuilt} [Not Enough Resources] (NotEnoughResources-1.7.10-0.1.0-128.jar)      UCHIJA    oauth{1.06.1-GTNH} [OAuth] (oauth-1.7.10-1.06.1-GTNH.jar)      UCHIJA    ObsidiPlates{3.0.0.18} [ObsidiPlates] (ObsidiPlates-1.7.10-universal-3.0.0.18.jar)      UCHIJA    openglasses{1.2.5-GTNH} [OC Glasses] (OpenGlasses-1.7.10-1.2.5-GTNH.jar)      UCHIJA    OpenMods{0.10.1} [OpenMods] (OpenModsLib-1.7.10-0.10.1.jar)      UCHIJA    openmodularturrets{2.2.11-245} [Open Modular Turrets] (OpenModularTurrets-1.7.10-2.2.11-245.jar)      UCHIJA    OpenPeripheralCore{1.4} [OpenPeripheralCore] (OpenPeripheral-1.7.10-AIO-8.jar)      UCHIJA    OpenPeripheralIntegration{0.6} [OpenPeripheralIntegration] (OpenPeripheral-1.7.10-AIO-8.jar)      UCHIJA    OpenPeripheral{0.6} [OpenPeripheralAddons] (OpenPeripheral-1.7.10-AIO-8.jar)      UCHIJA    opensecurity{1.0.120-GTNH} [OpenSecurity] (opensecurity-1.7.10-1.0.120-GTNH.jar)      UCHIJA    Opis{1.3.8-mapless} [Opis] (Opis-1.7.10-1.3.8-mapless.jar)      UCHIJA    OreSpawn{1.7.10.20} [OreSpawn] (orespawn-1.7.10-20.0.jar)      UCHIJA    overloadedarmorbar{1.0.1} [Overloaded Armor Bar] (overloadedarmorbar-1.7.10-1.0.1.jar)      UCHIJA    p455w0rdslib{1.0.4} [p455w0rd's Library] (p455w0rdslib-1.7.10-1.0.4.jar)      UCHIJA    harvestthenether{1.7.10} [Pam's Harvest the Nether] (Pam_s Harvest the Nether 1.7.10a.jar)      UCHIJA    personalspace{1.0.23} [PersonalSpace] (personalspace-1.0.23.jar)      UCHIJA    PneumaticCraft{1.12.7-152} [PneumaticCraft] (PneumaticCraft-1.7.10-1.12.7-152-universal.jar)      UCHIJA    PortalGun{4.0.0-beta-6} [PortalGun] (PortalGun-4.0.0-beta-6-fix-1.jar)      UCHIJA    progressiveautomation{1.6.35} [Progressive Automation] (ProgressiveAutomation-1.7.10-1.6.35.jar)      UCHIJA    ProjectE{1.7.10-PE1.10.1} [ProjectE] (ProjectE-1.7.10-PE1.10.1.jar)      UCHIJA    ProjRed|Transportation{4.7.0pre12.95} [ProjectRed Transportation] (ProjectRed-1.7.10-4.7.0pre12.95-Mechanical.jar)      UCHIJA    ProjRed|Exploration{4.7.0pre12.95} [ProjectRed Exploration] (ProjectRed-1.7.10-4.7.0pre12.95-World.jar)      UCHIJA    ProjRed|Compatibility{4.7.0pre12.95} [ProjectRed Compatibility] (ProjectRed-1.7.10-4.7.0pre12.95-Compat.jar)      UCHIJA    ProjRed|Integration{4.7.0pre12.95} [ProjectRed Integration] (ProjectRed-1.7.10-4.7.0pre12.95-Integration.jar)      UCHIJA    ProjRed|Fabrication{4.7.0pre12.95} [ProjectRed Fabrication] (ProjectRed-1.7.10-4.7.0pre12.95-Fabrication.jar)      UCHIJA    ProjRed|Illumination{4.7.0pre12.95} [ProjectRed Illumination] (ProjectRed-1.7.10-4.7.0pre12.95-Lighting.jar)      UCHIJA    ProjRed|Expansion{4.7.0pre12.95} [ProjectRed Expansion] (ProjectRed-1.7.10-4.7.0pre12.95-Mechanical.jar)      UCHIJA    qCraft{1.7.10-1.2.2} [qCraft] (qCraft-1.7.10-1.2.2.jar)      UCHIJA    RandomThings{2.4.3} [RandomThings] (RandomThings-1.7.10-2.4.3.jar)      UCHIJA    reccomplex{0.9.7.1.1} [Recurrent Complex] (RecurrentComplex-0.9.7.1.1.jar)      UCHIJA    RefinedRelocation{1.1.34} [Refined Relocation] (RefinedRelocation-mc1.7.10-1.1.34.jar)      UCHIJA    libsandstone{1.0.0} [libsandstone] (Reliquary-1.7.10-1.2.1.483.jar)      UCHIJA    xreliquary{1.2} [Reliquary] (Reliquary-1.7.10-1.2.1.483.jar)      UCHIJA    RIO{2.4.8} [RemoteIO] (RemoteIO-1.7.10-2.4.8.jar)      UCHIJA    Roguelike{1.5.0} [Roguelike Dungeons] (roguelike-1.7.10-1.5.0b.jar)      UCHIJA    RWG{alpha-1.3.3.2} [Realistic World Gen Alpha] (RWG-1.7.10-alpha-1.3.3.2.jar)      UCHIJA    Schematica{1.9.2-GTNH} [Schematica] (Schematica-1.7.10-1.9.2-GTNH.jar)      UCHIJA    SetNow{1.7.10-1.0.0-3} [SetNow] (SetNow-1.7.10-1.0.0-3.jar)      UCHIJA    SGCraft{1.3.13-GTNH} [SG Craft] (SGCraft-1.7.10-1.3.13-GTNH.jar)      UCHIJA    simplyjetpacks{1.5.3} [Simply Jetpacks] (SimplyJetpacks-MC1.7.10-1.5.3.jar)      UCHIJA    spatialio-compat{build-9} [Spatial IO Compat] (spatialiocompat-build-9.jar)      UCHIJA    SpecialMobs{3.3.15} [Special Mobs] (SpecialMobs-3.3.15.jar)      UCHIJA    SpiceOfLife{2.0.9-carrot} [The Spice of Life - Carrot Edition] (SpiceOfLife-2.0.9-carrot.jar)      UCHIJA    StacksOnStacks{{$version}} [Stacks on Stacks!] (StacksOnStacks-1.7.10-2.1.0.jar)      UCHIJA    statues{2.1.4} [Statues] (statues-1.7.10-2.1.4.jar)      UCHIJA    statuesmodfix{1.0b} [StatuesMod Fix] (statuesmodfix-1.0b.jar)      UCHIJA    StevesFactoryManager{1.1.7-GTNH} [Steve's Factory Manager] (StevesFactoryManager-1.1.7-GTNH.jar)      UCHIJA    StevesAddons{0.10.16} [Steve's Addons] (StevesAddons-1.7.10-0.10.16.jar)      UCHIJA    StevesCarts{2.0.2} [Steve's Carts 2] (StevesCarts-1.7.10-2.0.2.jar)      UCHIJA    StevesWorkshop{0.5.1} [Steve's Workshop] (StevesWorkshop-0.5.1.jar)      UCHIJA    StorageDrawers{1.11.20-GTNH} [Storage Drawers] (StorageDrawers-1.11.20-GTNH.jar)      UCHIJA    StorageDrawersBop{1.11.17-GTNH} [Storage Drawers: Biomes O' Plenty Pack] (StorageDrawersBop-1.7.10-1.11.17-GTNH.jar)      UCHIJA    StorageDrawersForestry{1.11.17-GTNH} [Storage Drawers: Forestry Pack] (StorageDrawersForestry-1.7.10-1.11.17-GTNH.jar)      UCHIJA    StorageDrawersMisc{1.11.18-GTNH} [Storage Drawers: Misc Pack] (StorageDrawersMisc-1.7.10-1.11.18-GTNH.jar)      UCHIJA    StorageDrawersNatura{1.11.17-GTNH} [Storage Drawers: Natura Pack] (StorageDrawersNatura-1.7.10-1.11.17-GTNH.jar)      UCHIJA    structurecompat{0.3.0} [StructureCompat] (structurecompat-1.7.10-0.3.0.jar)      UCHIJA    structurelib{1.2.6} [StructureLib] (structurelib-1.2.6.jar)      UCHIJA    SuperTic{1.2.5} [SuperTic] (SuperTic-1.7.10-1.2.5.jar)      UCHIJA    SwordPedestal{1.0(1.7.10)} [Sword Pedestal] (Sword-Pedestal-Mod-1.7.10.jar)      UCHIJA    Sync{4.0.1} [Sync] (Sync-4.0.1.jar)      UCHIJA    tcinventoryscan{1.0.12-GTNH} [TC Inventory Scanning] (tcinventoryscan-1.7.10-1.0.12-GTNH.jar)      UCHIJA    thaumcraftneiplugin{@VERSION@} [Thaumcraft NEI Plugin] (thaumcraftneiplugin-1.7.10-1.7a.jar)      UCHIJA    tcneiadditions{1.1.1.10} [Thaumcraft NEI Additions] (tcneiadditions-1.1.1.10.jar)      UCHIJA    tcnodetracker{1.1.7} [TC Node Tracker] (tcnodetracker-1.7.10-1.1.7.jar)      UCHIJA    tc4tweak{1.5.15} [TC4 Tweak] (Thaumcraft4Tweaks-1.5.15.jar)      UCHIJA    ThaumcraftMobAspects{1.0.0-GTNH} [Thaumcraft Mob Aspects] (ThaumcraftMobAspects-1.7.10-1.0.0-GTNH.jar)      UCHIJA    ThaumicMachina{0.2.1} [Thaumic Machina] (Thaumic Machina-1.7.10-0.2.1.jar)      UCHIJA    ThaumicExploration{1.1.94-GTNH} [Thaumic Exploration] (Thaumic-Exploration-1.7.10-1.1.94-GTNH.jar)      UCHIJA    thaumicenergistics{1.1.3.0} [Thaumic Energistics] (thaumicenergistics-1.1.3.0.jar)      UCHIJA    ThaumicHorizons{1.2.1.12} [ThaumicHorizons] (ThaumicHorizons-1.2.1.12.jar)      UCHIJA    thaumicinsurgence{0.1.4} [Thaumic Insurgence] (thaumicinsurgence-0.1.4.jar)      UCHIJA    ThermalDynamics{1.7.10R1.2.1} [Thermal Dynamics] (ThermalDynamics-[1.7.10]1.2.1-172.jar)      UCHIJA    TiCTooltips{1.2.10} [TiC Tooltips] (TiCTooltips-1.7.10-1.2.10.jar)      UCHIJA    tinkersdefense{1.2} [Tinkers' Defense] (Tinkers-Defense-1.2.1d.jar)      UCHIJA    TMechworks{0.2.15.106} [Tinkers' Mechworks] (TMechworks-1.7.10-0.2.15.106.jar)      UCHIJA    TML{4.1.0-GTNH} [TooMuchLoot] (TooMuchLoot-1.7.10-4.1.0-GTNH.jar)      UCHIJA    torohealthmod{1.0.1} [ToroHealth Damage Indicators] (torohealth-1.7.10-1.0.1.jar)      UCHIJA    Translocator{1.1.2.16} [Translocator] (Translocator-1.7.10-1.1.2.16-universal.jar)      UCHIJA    travellersgearneo{1.0} [TravellersGearNeo] (travellersgearneo-1.0.jar)      UCHIJA    universalsingularities{8.6.6} [UniversalSingularities] (Universal-Singularities-8.6.6.jar)      UCHIJA    WailaHarvestability{1.1.10-GTNH} [Waila Harvestability] (WailaHarvestability-1.7.10-1.1.10-GTNH.jar)      UCHIJA    wailaplugins{0.2.6} [WAILA Plugins] (WAILAPlugins-0.2.6.jar)      UCHIJA    wanionlib{1.8.4} [WanionLib] (WanionLib-1.8.4.jar)      UCHIJA    warpbook{2.0.null} [Warp Book] (warpbook-1.7.10_2.0.37.jar)      UCHIJA    WarpTheory{1.2.12-GTNH} [WarpTheory] (WarpTheory-1.2.12-GTNH.jar)      UCHIJA    wawla{1.1.3-GTNH} [What Are We Looking At] (Wawla-1.7.10-1.1.3-GTNH.jar)      UCHIJA    waystones{1.0.4} [Waystones] (Waystones-mc1.7.10-1.0.4.jar)      UCHIJA    WR-CBE|Core{1.4.1.11} [WR-CBE Core] (WR-CBE-1.7.10-1.4.1.11-universal.jar)      UCHIJA    WR-CBE|Addons{1.4.1.11} [WR-CBE Addons] (WR-CBE-1.7.10-1.4.1.11-universal.jar)      UCHIJA    WR-CBE|Logic{1.4.1.11} [WR-CBE Logic] (WR-CBE-1.7.10-1.4.1.11-universal.jar)      UCHIJA    Your Records Mod{Alpha} [ aYour Records Mod] (Your-Records-Mod-1.7.10.jar)      UCHIJA    zettaindustries{1.1} [Zetta Industries] (zettaindustries-1.1-120.jar)      UCHIJA    ForgeMicroblock{1.2.0.347} [Forge Microblocks] (ForgeMultipart-1.7.10-1.2.0.347-universal.jar)      UCHIJA    McMultipart{1.2.0.347} [Minecraft Multipart Plugin] (ForgeMultipart-1.7.10-1.2.0.347-universal.jar)      UCHIJA    ForgeRelocation{0.0.1.4} [ForgeRelocation] (ForgeRelocation-1.7.10-0.0.1.4-universal.jar)      UCHIJA    MCFrames{1.0} [MCFrames] (ForgeRelocation-1.7.10-0.0.1.4-universal.jar)      UCHIJA    RelocationFMP{0.0.1.2} [RelocationFMP] (ForgeRelocationFMP-1.7.10-0.0.1.2-universal.jar)      UCHIJA    ServerTools{1.7.10-2.2.0.79} [ServerTools] (ServerTools-CORE-1.7.10-2.2.0.79.jar)      UCHIJA    aobd{2.9.2} [Another One Bites The Dust] (AOBD-2.9.2.jar)      UCHIJA    denseores{1.0} [Dense Ores] (denseores-1.6.2.jar)      UCHIJA    HungerOverhaul{1.0.4-GTNH} [Hunger Overhaul] (HungerOverhaul-1.7.10-1.0.4-GTNH.jar)      UCHIJA    UniDict{1.7.10-2.9.2} [UniDict] (UniDict-1.7.10-2.9.2.jar)      OpenModsLib class transformers: [stencil_patches:FINISHED],[movement_callback:ACTIVATED],[player_damage_hook:FINISHED],[map_gen_fix:FINISHED],[gl_capabilities_hook:FINISHED],[player_render_hook:FINISHED]     Class transformer null safety: all safe     AE2 Version: beta rv3-beta-6 for Forge 10.13.4.1448     CoFHCore: -[1.7.10]3.1.4-329     Mantle Environment: Environment healthy.     ThermalFoundation: -[1.7.10]1.2.6-118     ThermalExpansion: -[1.7.10]4.1.5-248     RedstoneArsenal: -[1.7.10]1.1.2-92     NetherOres: -[1.7.10]2.3.1-22     Spatial IO Compat: erogenousbeef.core.multiblock.MultiblockTileEntityBase, cpw.mods.ironchest.TileEntityIronChest, thaumcraft.common.tiles.TileAlchemyFurnace, thaumcraft.common.tiles.TileAlembic, thaumcraft.common.tiles.TileArcaneBore, thaumcraft.common.tiles.TileArcaneFurnace, thaumcraft.common.tiles.TileArcaneLamp, thaumcraft.common.tiles.TileArcaneLampFertility, thaumcraft.common.tiles.TileArcaneLampGrowth, thaumcraft.common.tiles.TileArcaneLampLight, thaumcraft.common.tiles.TileArcaneWorkbench, thaumcraft.common.tiles.TileBellows, thaumcraft.common.tiles.TileBrainbox, thaumcraft.common.tiles.TileCentrifuge, thaumcraft.common.tiles.TileChestHungry, thaumcraft.common.tiles.TileCrucible, thaumcraft.common.tiles.TileCrystal, thaumcraft.common.tiles.TileDeconstrucionTable, thaumcraft.common.tiles.TileJar, thaumcraft.common.tiles.TileLifter, thaumcraft.common.tiles.TileMagicBox, thaumcraft.common.tiles.TileMagicWorkbench, thaumcraft.common.tiles.TileMirror, thaumcraft.common.tiles.TileMirrorEssentia, thaumcraft.common.tiles.TileNitor, thaumcraft.common.tiles.TileNode, thaumcraft.common.tiles.TileNodeStabilizer, thaumcraft.common.tiles.TileSensor, thaumcraft.common.tiles.TileTube, thaumcraft.common.tiles.TileTubeBuffer, thaumcraft.common.tiles.TileWandPedestal, thaumcraft.common.tiles.TileEldritchAltar, thaumcraft.common.tiles.TileEldritchCap, thaumcraft.common.tiles.TileEldritchObelisk, thaumcraft.common.tiles.TileEldritchPortal, thaumcraft.common.tiles.TileBanner, thaumcraft.common.tiles.TileGrate, thaumcraft.common.tiles.TileSpa     TC4Tweak signing signature: 473C3A397676978FF4877ABA2D57860DDA20E2FC, Built by: glease     ThermalDynamics: -[1.7.10]1.2.1-172     List of loaded APIs:          * AppleCoreAPI (3.2.10) from AppleCore-3.2.10.jar         * appliedenergistics2|API (rv3) from appliedenergistics2-rv3-beta-6.jar         * AromaBackupAPI (1.0) from AromaBackup-1.7.10-0.1.0.0.jar         * asielibAPI (1.1) from AsieLib-1.7.10-0.4.9.jar         * asielibAPI|chat (1.0) from AsieLib-1.7.10-0.4.9.jar         * asielibAPI|tile (1.0) from AsieLib-1.7.10-0.4.9.jar         * asielibAPI|tool (1.1) from AsieLib-1.7.10-0.4.9.jar         * BattlePlayer (0.1) from battlegear2-1.1.2.4.jar         * Baubles|API (1.0.1.4) from Reliquary-1.7.10-1.2.1.483.jar         * BetterAchievements|API (0.1.3) from BetterAchievements-1.7.10-0.1.3.jar         * BiomesOPlentyAPI (1.0.0) from BiomesOPlenty-1.7.10-2.1.0.2308-universal.jar         * BloodMagicAPI (1.3.3-13) from BloodMagic-1.7.10-1.3.3-17.jar         * BotaniaAPI (76) from Botania r1.8-249.jar         * BuildCraftAPI|blocks (1.0) from buildcraft-7.1.25.jar         * BuildCraftAPI|blueprints (1.5) from buildcraft-7.1.25.jar         * BuildCraftAPI|boards (2.0) from buildcraft-7.1.25.jar         * BuildCraftAPI|core (1.0) from extrautilities-1.2.12.jar         * BuildCraftAPI|crops (1.1) from buildcraft-7.1.25.jar         * BuildCraftAPI|events (2.0) from buildcraft-7.1.25.jar         * BuildCraftAPI|facades (1.1) from buildcraft-7.1.25.jar         * BuildCraftAPI|filler (4.0) from buildcraft-7.1.25.jar         * BuildCraftAPI|fuels (2.0) from buildcraft-7.1.25.jar         * BuildCraftAPI|gates (4.1) from buildcraft-7.1.25.jar         * BuildCraftAPI|items (1.1) from buildcraft-7.1.25.jar         * BuildCraftAPI|library (2.0) from buildcraft-7.1.25.jar         * BuildCraftAPI|lists (1.0) from buildcraft-7.1.25.jar         * BuildCraftAPI|power (1.3) from buildcraft-7.1.25.jar         * BuildCraftAPI|recipes (3.1) from buildcraft-7.1.25.jar         * BuildCraftAPI|robotics (3.0) from buildcraft-7.1.25.jar         * BuildCraftAPI|statements (1.1) from buildcraft-7.1.25.jar         * BuildCraftAPI|tablet (1.0) from buildcraft-7.1.25.jar         * BuildCraftAPI|tiles (1.2) from buildcraft-7.1.25.jar         * BuildCraftAPI|tools (1.0) from buildcraft-7.1.25.jar         * BuildCraftAPI|transport (4.1) from buildcraft-7.1.25.jar         * ChiselAPI (0.1.1) from Chisel-2.9.5.11.jar         * ChiselAPI|Carving (0.1.1) from Chisel-2.9.5.11.jar         * ChiselAPI|Rendering (0.1.1) from Chisel-2.9.5.11.jar         * CoFHAPI (1.7.10R1.1.0) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHAPI|block (1.7.10R1.1.0) from ProgressiveAutomation-1.7.10-1.6.35.jar         * CoFHAPI|core (1.7.10R1.3.1) from CoFHCore-[1.7.10]3.1.4-329.jar         * CoFHAPI|energy (1.7.10R1.1.0) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHAPI|fluid (1.7.10R1.1.0) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHAPI|inventory (1.7.10R1.1.0) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHAPI|item (1.7.10R1.0.13) from EnderIO-1.7.10-2.3.0.429_beta.jar         * CoFHAPI|modhelpers (1.7.10R1.1.0) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHAPI|tileentity (1.7.10R1.0.13) from EnderIO-1.7.10-2.3.0.429_beta.jar         * CoFHAPI|transport (1.7.10R1.1.0) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHAPI|world (1.7.10R1.3.1) from CoFHCore-[1.7.10]3.1.4-329.jar         * CoFHLib (1.7.10R1.0.4B1) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHLib|audio (1.7.10R1.2.1) from CoFHCore-[1.7.10]3.1.4-329.jar         * CoFHLib|gui (1.7.10R1.0.4B1) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHLib|gui|container (1.7.10R1.0.4B1) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHLib|gui|element (1.7.10R1.2.1) from CoFHCore-[1.7.10]3.1.4-329.jar         * CoFHLib|gui|element|listbox (1.7.10R1.0.4B1) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHLib|gui|slot (1.7.10R1.2.1) from CoFHCore-[1.7.10]3.1.4-329.jar         * CoFHLib|inventory (1.7.10R1.2.1) from CoFHCore-[1.7.10]3.1.4-329.jar         * CoFHLib|render (1.7.10R1.0.4B1) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHLib|render|particle (1.7.10R1.0.4B1) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHLib|util (1.7.10R1.2.1) from CoFHCore-[1.7.10]3.1.4-329.jar         * CoFHLib|util|helpers (1.7.10R1.2.1) from CoFHCore-[1.7.10]3.1.4-329.jar         * CoFHLib|util|position (1.7.10R1.0.4B1) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHLib|world (1.7.10R1.0.4B1) from EnderTech-1.7.10-0.3.2.405.jar         * CoFHLib|world|feature (1.7.10R1.0.4B1) from EnderTech-1.7.10-0.3.2.405.jar         * ComputerCraft|API (1.75) from ComputerCraft1.75.jar         * ComputerCraft|API|FileSystem (1.75) from ComputerCraft1.75.jar         * ComputerCraft|API|Lua (1.75) from ComputerCraft1.75.jar         * ComputerCraft|API|Media (1.75) from ComputerCraft1.75.jar         * ComputerCraft|API|Peripheral (1.75) from ComputerCraft1.75.jar         * ComputerCraft|API|Permissions (1.75) from ComputerCraft1.75.jar         * ComputerCraft|API|Redstone (1.75) from ComputerCraft1.75.jar         * ComputerCraft|API|Turtle (1.75) from ComputerCraft1.75.jar         * computronicsAPI (1.3) from Computronics-1.6.19-GTNH.jar         * computronicsAPI|audio (1.0) from Computronics-1.6.19-GTNH.jar         * computronicsAPI|chat (1.3) from Computronics-1.6.19-GTNH.jar         * computronicsAPI|multiperipheral (1.1) from Computronics-1.6.19-GTNH.jar         * computronicsAPI|tape (1.0) from Computronics-1.6.19-GTNH.jar         * CSLib|API (0.3.0) from Decocraft-2.4.2_1.7.10.jar         * DraconicEvolution|API (1.2) from Draconic-Evolution-1.1.15-GTNH.jar         * DualWield (0.1) from battlegear2-1.1.2.4.jar         * EnderIOAPI (0.0.2) from EnderIO-1.7.10-2.3.0.429_beta.jar         * EnderIOAPI|Redstone (0.0.2) from EnderIO-1.7.10-2.3.0.429_beta.jar         * EnderIOAPI|Teleport (0.0.2) from EnderIO-1.7.10-2.3.0.429_beta.jar         * EnderIOAPI|Tools (0.0.2) from EnderIO-1.7.10-2.3.0.429_beta.jar         * ForestryAPI|apiculture (5.0.0) from Forestry-4.6.0.jar         * ForestryAPI|arboriculture (4.2.1) from Forestry-4.6.0.jar         * ForestryAPI|circuits (3.1.0) from Forestry-4.6.0.jar         * ForestryAPI|core (5.0.0) from Forestry-4.6.0.jar         * ForestryAPI|farming (2.1.0) from Forestry-4.6.0.jar         * ForestryAPI|food (1.1.0) from Forestry-4.6.0.jar         * ForestryAPI|fuels (2.0.1) from Forestry-4.6.0.jar         * ForestryAPI|genetics (4.7.1) from Forestry-4.6.0.jar         * ForestryAPI|hives (4.1.0) from Forestry-4.6.0.jar         * ForestryAPI|lepidopterology (1.3.0) from Forestry-4.6.0.jar         * ForestryAPI|mail (3.0.0) from Forestry-4.6.0.jar         * ForestryAPI|multiblock (3.0.0) from Forestry-4.6.0.jar         * ForestryAPI|recipes (5.4.0) from Forestry-4.6.0.jar         * ForestryAPI|storage (3.0.0) from Forestry-4.6.0.jar         * ForestryAPI|world (2.1.0) from Forestry-4.6.0.jar         * ForgeRelocation|API (0.0.1.4) from ForgeRelocation-1.7.10-0.0.1.4-universal.jar         * Galacticraft API (1.0) from GalacticraftCore-1.7-3.0.12.504.jar         * gendustryAPI (2.3.0) from gendustry-1.7.10-1.6.5.5-GTNH.jar         * Guide-API|API (1.7.10-1.0.1-20) from Guide-API-1.7.10-1.0.1-20.jar         * Heraldry (alpha) from battlegear2-1.1.2.4.jar         * IC2API (1.0) from industrialcraft-2-2.2.827-experimental.jar         * inpure|api (1.7) from INpureCore-[1.7.10]1.0.0B9-62.jar         * MekanismAPI|core (9.0.0) from Mekanism-1.7.10-9.1.0.281.jar         * MekanismAPI|energy (9.0.0) from Mekanism-1.7.10-9.1.0.281.jar         * MekanismAPI|gas (9.0.0) from Mekanism-1.7.10-9.1.0.281.jar         * MekanismAPI|infuse (9.0.0) from Mekanism-1.7.10-9.1.0.281.jar         * MekanismAPI|laser (9.0.0) from Mekanism-1.7.10-9.1.0.281.jar         * MekanismAPI|reactor (9.0.0) from Mekanism-1.7.10-9.1.0.281.jar         * MekanismAPI|recipe (9.0.0) from Mekanism-1.7.10-9.1.0.281.jar         * MekanismAPI|transmitter (9.0.0) from Mekanism-1.7.10-9.1.0.281.jar         * MekanismAPI|util (9.0.0) from Mekanism-1.7.10-9.1.0.281.jar         * neresources|API (1.0) from NotEnoughResources-1.7.10-0.1.0-128.jar         * NuclearControlAPI (v1.0.5) from IC2NuclearControl-1.7.10-2.4.16.jar         * OilTweakAPI (1.0.4) from BuildCraftOilTweak-1.7.10-1.0.4.jar         * OilTweakAPI|blacklist (1.0.0) from BuildCraftOilTweak-1.7.10-1.0.4.jar         * OpenComputersAPI|Component (6.0.0-alpha) from OpenComputers-1.8.0.13-GTNH.jar         * OpenComputersAPI|Core (6.0.0-alpha) from OpenComputers-1.8.0.13-GTNH.jar         * OpenComputersAPI|Driver (6.0.0-alpha) from OpenComputers-1.8.0.13-GTNH.jar         * OpenComputersAPI|Driver|Item (6.0.0-alpha) from OpenComputers-1.8.0.13-GTNH.jar         * OpenComputersAPI|Event (6.0.0-alpha) from OpenComputers-1.8.0.13-GTNH.jar         * OpenComputersAPI|FileSystem (6.0.0-alpha) from OpenComputers-1.8.0.13-GTNH.jar         * OpenComputersAPI|Internal (6.0.0-alpha) from OpenComputers-1.8.0.13-GTNH.jar         * OpenComputersAPI|Machine (6.0.0-alpha) from OpenComputers-1.8.0.13-GTNH.jar         * OpenComputersAPI|Manual (6.0.0-alpha) from OpenComputers-1.8.0.13-GTNH.jar         * OpenComputersAPI|Network (6.0.0-alpha) from OpenComputers-1.8.0.13-GTNH.jar         * OpenComputersAPI|Prefab (6.0.0-alpha) from OpenComputers-1.8.0.13-GTNH.jar         * OpenPeripheralAddonsApi (1.0) from OpenPeripheral-1.7.10-AIO-8.jar         * OpenPeripheralApi (3.4.2) from OpenPeripheral-1.7.10-AIO-8.jar         * PneumaticCraftApi (1.0) from PneumaticCraft-1.7.10-1.12.7-152-universal.jar         * ProjectEAPI (7) from ProjectE-1.7.10-PE1.10.1.jar         * Quiver (0.2) from battlegear2-1.1.2.4.jar         * RefinedRelocationAPI (1.0.0) from RefinedRelocation-mc1.7.10-1.1.34.jar         * SchematicaAPI (1.1) from Schematica-1.7.10-1.9.2-GTNH.jar         * SchematicaAPI|Events (1.1) from Schematica-1.7.10-1.9.2-GTNH.jar         * SecurityCraftAPI (1.2.2) from [1.7.10] SecurityCraft v1.8.13.jar         * Shield (0.1) from battlegear2-1.1.2.4.jar         * StorageDrawersAPI (1.7.10-1.2.0) from StorageDrawers-1.11.20-GTNH.jar         * StorageDrawersAPI|config (1.7.10-1.2.0) from StorageDrawers-1.11.20-GTNH.jar         * StorageDrawersAPI|event (1.7.10-1.2.0) from StorageDrawers-1.11.20-GTNH.jar         * StorageDrawersAPI|inventory (1.7.10-1.2.0) from StorageDrawers-1.11.20-GTNH.jar         * StorageDrawersAPI|pack (1.7.10-1.2.0) from StorageDrawers-1.11.20-GTNH.jar         * StorageDrawersAPI|registry (1.7.10-1.2.0) from StorageDrawers-1.11.20-GTNH.jar         * StorageDrawersAPI|render (1.7.10-1.2.0) from StorageDrawers-1.11.20-GTNH.jar         * StorageDrawersAPI|storage (1.7.10-1.2.0) from StorageDrawers-1.11.20-GTNH.jar         * StorageDrawersAPI|storage-attribute (1.7.10-1.2.0) from StorageDrawers-1.11.20-GTNH.jar         * Thaumcraft|API (4.2.0.0) from Pam_s Harvest the Nether 1.7.10a.jar         * thaumicenergistics|API (1.1) from thaumicenergistics-1.1.3.0.jar         * WailaAPI (1.2) from Waila-1.5.10_1.7.10.jar         * Weapons (0.1) from battlegear2-1.1.2.4.jar     Chisel: Errors like "[FML]: Unable to lookup ..." are NOT the cause of this crash. You can safely ignore these errors. And update forge while you're at it.     EnderIO: Found the following problem(s) with your installation:                   * An unknown AE2 API is installed (rv3 from appliedenergistics2-rv3-beta-6.jar).                     Ender IO was build against API version rv2 and may or may not work with a newer version.                   * The RF API that is being used (1.7.10R1.3.1 from <unknown>) differes from that that is reported as being loaded (1.7.10R1.1.0 from EnderTech-1.7.10-0.3.2.405.jar).                     It is a supported version, but that difference may lead to problems.                  This may have caused the error. Try reproducing the crash WITHOUT this/these mod(s) before reporting it.     Stencil buffer state: Function set: GL30, pool: forge, bits: 8     AE2 Integration: IC2:ON, RotaryCraft:OFF, RC:OFF, BuildCraftCore:ON, BuildCraftTransport:ON, BuildCraftBuilder:ON, RF:ON, RFItem:ON, MFR:OFF, DSU:ON, FZ:OFF, FMP:ON, RB:OFF, CLApi:OFF, Waila:ON, InvTweaks:ON, NEI:ON, CraftGuide:OFF, Mekanism:ON, ImmibisMicroblocks:OFF, BetterStorage:OFF, OpenComputers:ON, PneumaticCraft:ON     Mixins in Stacktrace:          net.minecraft.client.network.NetHandlerPlayClient:             mixins.archaicfix.early.json:client.core.MixinNetHandlerPlayClient from mod archaicfix             mixins.bugtorch.early.json:minecraft.logcleanup.MixinNetHandlerPlayClient from mod bugtorch             mixins.modularui.json:NetHandlerPlayClientMixin from mod modularui             coretweaks.mixin.json:bugfix.restoretravelsound.MixinNetHandlerPlayClient from mod coretweaks         net.minecraft.client.Minecraft:             mixins.hodgepodge.early.json:minecraft.MixinMinecraft_UnfocusedFullscreen from mod hodgepodge             mixins.archaicfix.early.json:client.lighting.MixinMinecraft from mod archaicfix             mixins.bettercrashes.json:minecraft.MinecraftMixin from mod bettercrashes             mixins.hodgepodge.early.json:minecraft.MixinMinecraft_ToggleDebugMessage from mod hodgepodge             mixins.archaicfix.early.json:client.core.MixinMinecraft from mod archaicfix             mixins.hodgepodge.early.json:minecraft.MixinMinecraft_ResizableFullscreen from mod hodgepodge             mixins.hodgepodge.early.json:minecraft.profiler.MinecraftMixin from mod hodgepodge         net.minecraft.network.NetworkManager:             mixins.archaicfix.early.json:common.core.MixinNetworkManager from mod archaicfix     Suspected Mods: Unknown     Launched Version: forge-10.13.4.1614     LWJGL: 2.9.1     OpenGL: AMD Radeon(TM) Graphics GL version 4.6.0 Compatibility Profile Context 24.3.1.240216, ATI Technologies Inc.     GL Caps: Using GL 1.3 multitexturing. Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported. Anisotropic filtering is supported and maximum anisotropy is 16. Shaders are available because OpenGL 2.1 is supported.     Is Modded: Definitely; Client brand changed to 'fml,forge'     Type: Client (map_client.txt)     Resource Packs: []     Current Language: English (US)     Profiler Position: N/A (disabled)     Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used     Anisotropic Filtering: Off (1)     Client Crashes Since Restart: 2     Integrated Server Crashes Since Restart: 0
    • so i can load into minecraft but when i join it gives me an "minecraft ran into a problem and crashed" then says "the following mod(s) have been identified as potential causes: unknown
    • Looks like paste.ee is currently down - use https://mclo.gs/  
  • Topics

×
×
  • Create New...

Important Information

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