kenoba10 Posted August 1, 2013 Posted August 1, 2013 How could I make a machine similar to a furnace that would craft certain items? Quote
hydroflame Posted August 1, 2013 Posted August 1, 2013 well you could start by looking at how vanilla did this and use the search field (top right of thsi screen) theres was already a couple of threads on this Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution-
kenoba10 Posted August 4, 2013 Author Posted August 4, 2013 I've done a lot of research and I think it should work but whenever I run it it crashes: ---- Minecraft Crash Report ---- // Oh - I know what I did wrong! Time: 8/3/13 10:25 PM Description: There was a severe problem during mod loading that has caused the game to fail cpw.mods.fml.common.LoaderException: cpw.mods.fml.common.LoaderException at cpw.mods.fml.common.ProxyInjector.inject(ProxyInjector.java:75) at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:519) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:193) at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:173) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:104) at cpw.mods.fml.common.Loader.loadMods(Loader.java:510) at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:172) at net.minecraft.client.Minecraft.startGame(Minecraft.java:470) at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:796) at net.minecraft.client.main.Main.main(Main.java:93) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) at net.minecraft.launchwrapper.Launch.main(Launch.java:18) Caused by: cpw.mods.fml.common.LoaderException at cpw.mods.fml.common.ProxyInjector.inject(ProxyInjector.java:68) ... 33 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details: Minecraft Version: 1.6.2 Operating System: Windows 7 (amd64) version 6.1 Java Version: 1.7.0_25, Oracle Corporation Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 806523264 bytes (769 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used Suspicious classes: FML and Forge are installed IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP v8.04 FML v6.2.19.787 Minecraft Forge 9.10.0.787 4 mods loaded, 4 mods active mcp{8.04} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed FML{6.2.19.787} [Forge Mod Loader] (coremods) Unloaded->Constructed Forge{9.10.0.787} [Minecraft Forge] (coremods) Unloaded->Constructed ToolCraft{1.0.0} [Tool Craft] (bin) Unloaded->Errored Any help? Quote
Alix_The_Alicorn Posted August 4, 2013 Posted August 4, 2013 Maybe try looking at the source of IC2 and see how they did it. Maybe look at the macerator source. It is sort of a custom furnace. Just use things from vanilla furnace or iron furnace from IC2 to use fuel instead of EU. You get the point. Quote
Moritz Posted August 4, 2013 Posted August 4, 2013 Nope that problem has something todo with your common and client proxy! Maybe your path is not right^^. Check that! Quote
kenoba10 Posted August 4, 2013 Author Posted August 4, 2013 On 8/4/2013 at 11:59 AM, Moritz said: Nope that problem has something todo with your common and client proxy! Maybe your path is not right^^. Check that! It worked before but now after coding this it crashes I'll check something though Quote
kenoba10 Posted August 4, 2013 Author Posted August 4, 2013 I keep getting the crash: ---- Minecraft Crash Report ---- // Sorry Time: 8/4/13 8:50 AM Description: There was a severe problem during mod loading that has caused the game to fail cpw.mods.fml.common.LoaderException: cpw.mods.fml.common.LoaderException at cpw.mods.fml.common.ProxyInjector.inject(ProxyInjector.java:75) at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:519) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:193) at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:173) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:104) at cpw.mods.fml.common.Loader.loadMods(Loader.java:510) at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:172) at net.minecraft.client.Minecraft.startGame(Minecraft.java:470) at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:796) at net.minecraft.client.main.Main.main(Main.java:93) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) at net.minecraft.launchwrapper.Launch.main(Launch.java:18) Caused by: cpw.mods.fml.common.LoaderException at cpw.mods.fml.common.ProxyInjector.inject(ProxyInjector.java:68) ... 33 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details: Minecraft Version: 1.6.2 Operating System: Windows 7 (amd64) version 6.1 Java Version: 1.7.0_25, Oracle Corporation Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 806500568 bytes (769 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used Suspicious classes: FML and Forge are installed IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP v8.04 FML v6.2.19.787 Minecraft Forge 9.10.0.787 4 mods loaded, 4 mods active mcp{8.04} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed FML{6.2.19.787} [Forge Mod Loader] (coremods) Unloaded->Constructed Forge{9.10.0.787} [Minecraft Forge] (coremods) Unloaded->Constructed ToolCraft{1.0.0} [Tool Craft] (bin) Unloaded->Errored And my paths are right Quote
kenoba10 Posted August 4, 2013 Author Posted August 4, 2013 Nevermind I fixed my errors somehow but now my block class is crashing: package Kenoba10.Too_Much_Tools.machine; import java.util.Random; import Kenoba10.Too_Much_Tools.common.Too_Much_Tools; import cpw.mods.fml.relauncher.Side; 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.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class BlockIngotOven extends BlockContainer{ private Icon top; private Icon bottom; private Icon front; private Icon side1; private Icon main; private Icon [][] iconBuffer; private Random random; private boolean keepInventory = false; public BlockIngotOven(int par1, Material par2Material) { super(par1, par2Material); random = new Random(); } public void registerIcons(IconRegister iconRegister) { top = iconRegister.registerIcon("Too_Much_Tools:Ingot_Oven_Top"); bottom = iconRegister.registerIcon("Too_Much_Tools:Ingot_Oven_Bottom"); front = iconRegister.registerIcon("Too_Much_Tools:Ingot_Oven_Front"); side1 = iconRegister.registerIcon("Too_Much_Tools:Ingot_Oven_Side"); } public Icon getIcon(int side, int meta) { if(side == 0) { return bottom; } if(side == 1) { return top; } if(side == 2) { return front; } if(side == 3 || side == 4 || side == 5) { return side1; } else { return main; } } public TileEntity createNewTileEntity(World world) { return new TileEntityIngotOven(); } public void onBlockAdded(World world, int x, int y, int z) { super.onBlockAdded(world, x, y, z); setDefaultDirection(world, x, y, z); world.markBlockForUpdate(x, y, z); } private void setDefaultDirection(World world, int x, int y, int z) { TileEntity entityBlock = world.getBlockTileEntity(x, y, z); if(world.isRemote) { return; } int i = world.getBlockId(x, y, z - 1); int j = world.getBlockId(x, y, z + 1); int k = world.getBlockId(x - 1, y, z); int l = world.getBlockId(x + 1, y, z); byte byte0 = 3; if(Block.opaqueCubeLookup[i] && !Block.opaqueCubeLookup[j]) { byte0 = 3; } if(Block.opaqueCubeLookup[j] && !Block.opaqueCubeLookup[i]) { byte0 = 2; } if(Block.opaqueCubeLookup[k] && !Block.opaqueCubeLookup[l]) { byte0 = 5; } if(Block.opaqueCubeLookup[l] && !Block.opaqueCubeLookup[k]) { byte0 = 4; } ((TileEntityIngotOven)entityBlock).setFrontDirection(byte0); } public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving entity) { int var = MathHelper.floor_double((double)(entity.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; TileEntity blockEntity = (TileEntity) world.getBlockTileEntity(x, y, z); switch(var) { case 0: ((TileEntityIngotOven)blockEntity).setFrontDirection(2);break; case 1: ((TileEntityIngotOven)blockEntity).setFrontDirection(5);break; case 2: ((TileEntityIngotOven)blockEntity).setFrontDirection(3);break; case 3: ((TileEntityIngotOven)blockEntity).setFrontDirection(4);break; } } public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float a, float b, float c) { TileEntityIngotOven ingotOven = (TileEntityIngotOven)world.getBlockTileEntity(x, y, z); player.openGui(Too_Much_Tools.instance, 0, world, x, y, z); return true; } public void breakBlock(World world, int par1, int par2, int par3, int par4, int par5) { if(!keepInventory) { TileEntityIngotOven ingotOven = (TileEntityIngotOven)world.getBlockTileEntity(par1, par2, par3); if(ingotOven != null) { for(int i = 0; i < ingotOven.getSizeInventory(); i++) { ItemStack item = ingotOven.getStackInSlot(i); if(item != null) { float var1 = random.nextFloat() * 0.8F + 0.1F; float var2 = random.nextFloat() * 0.8F + 0.1F; float var3 = random.nextFloat() * 0.8F + 0.1F; while(item.stackSize > 0) { int var4 = random.nextInt(21) + 10; if(var4 > item.stackSize) { var4 = item.stackSize; } item.stackSize -= var4; EntityItem entityItem = new EntityItem(world, (double)((float)par1 + var1), (double)((float)par2 + var2), (double)((float)par3 + var3), new ItemStack(item.itemID, var4, item.getItemDamage())); if(item.hasTagCompound()) { entityItem.getEntityItem().setTagCompound((NBTTagCompound)item.getTagCompound().copy()); } float var5 = 0.05F; entityItem.motionX = (double)((float)random.nextGaussian() * var5); entityItem.motionY = (double)((float)random.nextGaussian() * var5 + 0.2F); entityItem.motionZ = (double)((float)random.nextGaussian() * var5); world.spawnEntityInWorld(entityItem); } } } } } super.breakBlock(world, par1, par2, par3, par4, par5); } } Quote
Moritz Posted August 4, 2013 Posted August 4, 2013 Does eclipse tell you the block class? if thats true just click on the error (the blue letters) then eclipse showes you the exact line what does crash the game^^. Quote
kenoba10 Posted August 4, 2013 Author Posted August 4, 2013 On 8/4/2013 at 1:47 PM, Moritz said: Does eclipse tell you the block class? if thats true just click on the error (the blue letters) then eclipse showes you the exact line what does crash the game^^. Apparently its the super(); from Block.java, BlockContainer.java and my Block.java and IngotOven = new BlockIngotOven(23294, Material.rock, false).setHardness(0.5F).setResistance(0.5F).setUnlocalizedName("Ingot Oven").setCreativeTab(CreativeTabs.tabDecorations); from my main class Quote
kenoba10 Posted August 4, 2013 Author Posted August 4, 2013 On 8/4/2013 at 1:47 PM, Moritz said: Does eclipse tell you the block class? if thats true just click on the error (the blue letters) then eclipse showes you the exact line what does crash the game^^. I've managed to fix it but now when I place the block my Minecraft crashes because of this line: public TextureManager textureManager = mc.func_110434_K(); Quote
GotoLink Posted August 4, 2013 Posted August 4, 2013 If mc is an instance of Minecraft, this should work. Quote
kenoba10 Posted August 4, 2013 Author Posted August 4, 2013 On 8/4/2013 at 4:29 PM, GotoLink said: If mc is an instance of Minecraft, this should work. I figured it out but I'm trying to figure out now is updating textures: GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); mc.renderEngine.func_110577_a(texture); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); if (ingotInventory.isBurning()) { int burn = ingotInventory.getBurnTimeRemainingScaled(14); drawTexturedModalRect(x + 57, y + 36, 176, 0, burn, 10); } int update = ingotInventory.getCookProgressScaled(16); drawTexturedModalRect(x + 79, y + 34, 176, 14, -update , -update); Quote
Recommended Posts
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.