Jump to content

[SOLVED][1.7.2]Custom "Furnace" crashing the game


Graphicscore

Recommended Posts

Hello there,

I recently started to mod in minecraft again, I saw that there're were major changes in how the things work.

I've started to code a Macerator, that uses redstone as fuel and macerates the ore, I've no error is my classes but the Block itself is not visible in Creative inventory and If I craft it and want to take it out of the craftingfield the game crashes.

 

Thank you very much for helping me with my problem and greetings from germany :)

 

* I havent set up textures for the block or the gui I don't know if that's the crashing reason but normally missing stuff is replaced with this purple black texture isn't it?*

 

Error.log

 

 

[[13:41:21] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[13:41:21] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[13:41:21] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker
[13:41:21] [main/INFO] [FML]: Forge Mod Loader version 7.2.129.1046 for Minecraft 1.7.2 loading
[13:41:21] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.7.0_45, running on Windows 7:amd64:6.1, installed at C:\Program Files\Java\jre7
[13:41:21] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[13:41:21] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[13:41:21] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLDeobfTweaker
[13:41:21] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[13:41:21] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[13:41:21] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[13:41:21] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
[13:41:22] [main/ERROR] [FML]: The minecraft jar file:/C:/Users/Dominik/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.0.1046/forgeSrc-1.7.2-10.12.0.1046.jar!/net/minecraft/client/ClientBrandRetriever.class appears to be corrupt! There has been CRITICAL TAMPERING WITH MINECRAFT, it is highly unlikely minecraft will work! STOP NOW, get a clean copy and try again!
[13:41:22] [main/ERROR] [FML]: FML has been ordered to ignore the invalid or missing minecraft certificate. This is very likely to cause a problem!
[13:41:22] [main/ERROR] [FML]: Technical information: ClientBrandRetriever was at jar:file:/C:/Users/Dominik/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.0.1046/forgeSrc-1.7.2-10.12.0.1046.jar!/net/minecraft/client/ClientBrandRetriever.class, there were 0 certificates for it
[13:41:22] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[13:41:22] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[13:41:22] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLDeobfTweaker
[13:41:22] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[13:41:23] [main/INFO]: Setting user: Player271
[13:41:24] [Client thread/INFO]: LWJGL Version: 2.9.0
[13:41:24] [Client thread/INFO] [MinecraftForge]: Attempting early MinecraftForge initialization
[13:41:24] [Client thread/INFO] [FML]: MinecraftForge v10.12.0.1046 Initialized
[13:41:24] [Client thread/INFO] [FML]: Replaced 141 ore recipies
[13:41:24] [Client thread/INFO] [MinecraftForge]: Completed early MinecraftForge initialization
[13:41:24] [Client thread/INFO] [FML]: Searching I:\Programming\Minecraft\eclipse\mods for mods
[13:41:24] [Client thread/INFO] [graphicscore]: Mod graphicscore is missing the required element 'name'. Substituting graphicscore
[13:41:25] [Client thread/ERROR] [FML]: FML has detected a mod that is using a package name based on 'net.minecraft.src' : net.minecraft.src.FMLRenderAccessLibrary. This is generally a severe programming error.  There should be no mod code in the minecraft namespace. MOVE YOUR MOD! If you're in eclipse, select your source code and 'refactor' it into a new package. Go on. DO IT NOW!
[13:41:26] [Client thread/INFO] [FML]: Forge Mod Loader has identified 4 mods to load
[13:41:26] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:graphicscore
[13:41:26] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0
[13:41:26] [Client thread/WARN]: Adding duplicate key 'graphicscore:Masher' to registry
[13:41:26] [Client thread/WARN]: Adding duplicate key 'graphicscore:Masher' to registry

Starting up SoundSystem...
Initializing LWJGL OpenAL
    (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
OpenAL initialized.
[13:41:27] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/blocks/MISSING_ICON_BLOCK_166_null.png
java.io.FileNotFoundException: minecraft:textures/blocks/MISSING_ICON_BLOCK_166_null.png
at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:128) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:93) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58) [TextureManager.class:?]
at net.minecraft.client.Minecraft.startGame(Minecraft.java:623) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:934) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
[13:41:27] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/blocks/MISSING_ICON_BLOCK_167_null.png
java.io.FileNotFoundException: minecraft:textures/blocks/MISSING_ICON_BLOCK_167_null.png
at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:128) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:93) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58) [TextureManager.class:?]
at net.minecraft.client.Minecraft.startGame(Minecraft.java:623) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:934) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]

[13:41:27] [sound Library Loader/INFO]: Sound engine started
[13:41:27] [Client thread/INFO]: Created: 512x256 textures/blocks-atlas
[13:41:27] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/items/MISSING_ICON_ITEM_4097_null.png
java.io.FileNotFoundException: minecraft:textures/items/MISSING_ICON_ITEM_4097_null.png
at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:128) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:93) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58) [TextureManager.class:?]
at net.minecraft.client.Minecraft.startGame(Minecraft.java:624) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:934) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
[13:41:27] [Client thread/INFO]: Created: 256x256 textures/items-atlas
[13:41:27] [Client thread/INFO] [FML]: Forge Mod Loader has successfully loaded 4 mods
[13:41:27] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:graphicscore
[13:41:28] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/items/MISSING_ICON_ITEM_4097_null.png
java.io.FileNotFoundException: minecraft:textures/items/MISSING_ICON_ITEM_4097_null.png
at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:128) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:93) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.onResourceManagerReload(TextureManager.java:170) [TextureManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:134) [simpleReloadableResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:118) [simpleReloadableResourceManager.class:?]
at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:668) [Minecraft.class:?]
at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:282) [FMLClientHandler.class:?]
at net.minecraft.client.Minecraft.startGame(Minecraft.java:627) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:934) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
[13:41:28] [Client thread/INFO]: Created: 256x256 textures/items-atlas
[13:41:28] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/blocks/MISSING_ICON_BLOCK_166_null.png
java.io.FileNotFoundException: minecraft:textures/blocks/MISSING_ICON_BLOCK_166_null.png
at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:128) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:93) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.onResourceManagerReload(TextureManager.java:170) [TextureManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:134) [simpleReloadableResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:118) [simpleReloadableResourceManager.class:?]
at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:668) [Minecraft.class:?]
at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:282) [FMLClientHandler.class:?]
at net.minecraft.client.Minecraft.startGame(Minecraft.java:627) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:934) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
[13:41:28] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/blocks/MISSING_ICON_BLOCK_167_null.png
java.io.FileNotFoundException: minecraft:textures/blocks/MISSING_ICON_BLOCK_167_null.png
at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:128) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:93) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.onResourceManagerReload(TextureManager.java:170) [TextureManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:134) [simpleReloadableResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:118) [simpleReloadableResourceManager.class:?]
at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:668) [Minecraft.class:?]
at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:282) [FMLClientHandler.class:?]
at net.minecraft.client.Minecraft.startGame(Minecraft.java:627) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:934) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
[13:41:28] [Client thread/INFO]: Created: 512x256 textures/blocks-atlas

SoundSystem shutting down...
    Author: Paul Lamb, www.paulscode.com


Starting up SoundSystem...
Initializing LWJGL OpenAL
    (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
OpenAL initialized.

[13:41:29] [sound Library Loader/INFO]: Sound engine started
[13:41:30] [MCO Availability Checker #1/ERROR]: Couldn't connect to Realms
[13:41:32] [server thread/INFO]: Starting integrated minecraft server version 1.7.2
[13:41:32] [server thread/INFO]: Generating keypair
[13:41:32] [server thread/INFO] [FML]: Injecting new block and item data into this server instance
[13:41:32] [server thread/INFO] [FML]: Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@49466500)
[13:41:32] [server thread/INFO] [FML]: Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@49466500)
[13:41:32] [server thread/INFO] [FML]: Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@49466500)
[13:41:32] [server thread/INFO]: Preparing start region for level 0
POKEE false
[13:41:33] [Netty Client IO #0/INFO] [FML]: Server protocol version 1
[13:41:33] [Netty IO #1/INFO] [FML]: Client protocol version 1
[13:41:33] [Netty IO #1/INFO] [FML]: Client attempting to join with 4 mods : mcp@8.09,FML@7.2.129.1046,graphicscore@0.1 Pre Release,Forge@10.12.0.1046
[13:41:33] [Netty IO #1/INFO] [FML]: Attempting connection with missing mods [] at CLIENT
[13:41:33] [Netty Client IO #0/INFO] [FML]: Attempting connection with missing mods [] at SERVER
[13:41:33] [server thread/INFO] [FML]: [server thread] Server side modded connection established
[13:41:33] [server thread/INFO]: Player271[local:E:e3138399] logged in with entity id 245 at (-36.22558286498607, 65.0, 153.68870809933114)
[13:41:33] [server thread/INFO]: Player271 joined the game
[13:41:33] [Client thread/INFO] [FML]: [Client thread] Client side modded connection established
[13:41:38] [server thread/INFO]: Stopping server
[13:41:38] [server thread/INFO]: Saving players
[13:41:38] [server thread/INFO]: Saving worlds
[13:41:38] [server thread/INFO]: Saving chunks for level 'New World'/Overworld
[13:41:38] [server thread/INFO]: Saving chunks for level 'New World'/Nether
[13:41:38] [server thread/INFO]: Saving chunks for level 'New World'/The End
[13:41:38] [server thread/INFO] [FML]: Unloading dimension 0
[13:41:38] [server thread/INFO] [FML]: Unloading dimension -1
[13:41:38] [server thread/INFO] [FML]: Unloading dimension 1
[13:41:38] [Client thread/FATAL]: Reported exception thrown!
net.minecraft.util.ReportedException: Updating screen events
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1743) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1038) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:954) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at net.minecraft.item.ItemStack.onCrafting(ItemStack.java:473) ~[itemStack.class:?]
at net.minecraft.inventory.SlotCrafting.onCrafting(SlotCrafting.java:76) ~[slotCrafting.class:?]
at net.minecraft.inventory.SlotCrafting.onPickupFromSlot(SlotCrafting.java:133) ~[slotCrafting.class:?]
at net.minecraft.inventory.Container.slotClick(Container.java:353) ~[Container.class:?]
at net.minecraft.client.multiplayer.PlayerControllerMP.windowClick(PlayerControllerMP.java:500) ~[PlayerControllerMP.class:?]
at net.minecraft.client.gui.inventory.GuiContainer.handleMouseClick(GuiContainer.java:691) ~[GuiContainer.class:?]
at net.minecraft.client.gui.inventory.GuiContainer.mouseClicked(GuiContainer.java:434) ~[GuiContainer.class:?]
at net.minecraft.client.gui.GuiScreen.handleMouseInput(GuiScreen.java:353) ~[GuiScreen.class:?]
at net.minecraft.client.gui.GuiScreen.handleInput(GuiScreen.java:317) ~[GuiScreen.class:?]
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1729) ~[Minecraft.class:?]
... 9 more
---- Minecraft Crash Report ----
// Don't be sad, have a hug! <3

Time: 15.03.14 13:41
Description: Updating screen events

java.lang.ArrayIndexOutOfBoundsException: -1
at net.minecraft.item.ItemStack.onCrafting(ItemStack.java:473)
at net.minecraft.inventory.SlotCrafting.onCrafting(SlotCrafting.java:76)
at net.minecraft.inventory.SlotCrafting.onPickupFromSlot(SlotCrafting.java:133)
at net.minecraft.inventory.Container.slotClick(Container.java:353)
at net.minecraft.client.multiplayer.PlayerControllerMP.windowClick(PlayerControllerMP.java:500)
at net.minecraft.client.gui.inventory.GuiContainer.handleMouseClick(GuiContainer.java:691)
at net.minecraft.client.gui.inventory.GuiContainer.mouseClicked(GuiContainer.java:434)
at net.minecraft.client.gui.GuiScreen.handleMouseInput(GuiScreen.java:353)
at net.minecraft.client.gui.GuiScreen.handleInput(GuiScreen.java:317)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1729)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1038)
at net.minecraft.client.Minecraft.run(Minecraft.java:954)
at net.minecraft.client.main.Main.main(Main.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134)
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:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
at net.minecraft.item.ItemStack.onCrafting(ItemStack.java:473)
at net.minecraft.inventory.SlotCrafting.onCrafting(SlotCrafting.java:76)
at net.minecraft.inventory.SlotCrafting.onPickupFromSlot(SlotCrafting.java:133)
at net.minecraft.inventory.Container.slotClick(Container.java:353)
at net.minecraft.client.multiplayer.PlayerControllerMP.windowClick(PlayerControllerMP.java:500)
at net.minecraft.client.gui.inventory.GuiContainer.handleMouseClick(GuiContainer.java:691)
at net.minecraft.client.gui.inventory.GuiContainer.mouseClicked(GuiContainer.java:434)
at net.minecraft.client.gui.GuiScreen.handleMouseInput(GuiScreen.java:353)
at net.minecraft.client.gui.GuiScreen.handleInput(GuiScreen.java:317)

-- Affected screen --
Details:
Screen name: net.minecraft.client.gui.inventory.GuiCrafting

-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityClientPlayerMP['Player271'/245, l='MpServer', x=-36,23, y=66,62, z=153,69]]
Chunk stats: MultiplayerChunkCache: 225, 225
Level seed: 0
Level generator: ID 00 - default, ver 1. Features enabled: false
Level generator options: 
Level spawn location: World: (-52,64,240), Chunk: (at 12,4,0 in -4,15; contains blocks -64,0,240 to -49,255,255), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
Level time: 12691 game time, 12691 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: 88 total; [EntityCreeper['Creeper'/141, l='MpServer', x=18,70, y=11,01, z=79,66], EntityClientPlayerMP['Player271'/245, l='MpServer', x=-36,23, y=66,62, z=153,69], EntityBat['Bat'/143, l='MpServer', x=22,43, y=24,68, z=178,12], EntityZombie['Zombie'/142, l='MpServer', x=27,91, y=20,00, z=85,63], EntityChicken['Chicken'/129, l='MpServer', x=10,60, y=71,94, z=233,49], EntityChicken['Chicken'/128, l='MpServer', x=12,53, y=77,47, z=230,53], EntitySquid['Squid'/10, l='MpServer', x=-101,53, y=47,01, z=108,43], EntitySquid['Squid'/12, l='MpServer', x=-94,29, y=39,27, z=120,45], EntitySquid['Squid'/13, l='MpServer', x=-100,90, y=45,21, z=116,63], EntitySquid['Squid'/19, l='MpServer', x=-95,76, y=39,77, z=138,13], EntityZombie['Zombie'/21, l='MpServer', x=-93,50, y=38,00, z=188,50], EntitySquid['Squid'/20, l='MpServer', x=-84,63, y=41,34, z=150,73], EntityBat['Bat'/23, l='MpServer', x=-102,56, y=35,10, z=188,34], EntityBat['Bat'/22, l='MpServer', x=-89,65, y=37,00, z=185,75], EntitySkeleton['Skeleton'/25, l='MpServer', x=-89,91, y=41,00, z=193,50], EntityZombie['Zombie'/144, l='MpServer', x=29,91, y=43,00, z=165,69], EntityCreeper['Creeper'/145, l='MpServer', x=25,97, y=43,00, z=188,50], EntityCreeper['Creeper'/24, l='MpServer', x=-87,38, y=18,00, z=200,91], EntityChicken['Chicken'/146, l='MpServer', x=26,41, y=74,00, z=198,32], EntitySheep['Sheep'/147, l='MpServer', x=28,72, y=75,00, z=207,22], EntitySheep['Sheep'/148, l='MpServer', x=16,55, y=68,00, z=206,36], EntitySheep['Sheep'/149, l='MpServer', x=30,50, y=75,00, z=211,81], EntitySquid['Squid'/31, l='MpServer', x=-71,93, y=50,27, z=168,38], EntitySquid['Squid'/30, l='MpServer', x=-67,83, y=43,28, z=158,11], EntityWitch['Witch'/34, l='MpServer', x=-70,50, y=43,00, z=181,50], EntitySkeleton['Skeleton'/35, l='MpServer', x=-67,50, y=43,00, z=178,50], EntitySquid['Squid'/32, l='MpServer', x=-73,11, y=45,80, z=169,25], EntityChicken['Chicken'/168, l='MpServer', x=34,44, y=86,00, z=229,56], EntityZombie['Zombie'/33, l='MpServer', x=-66,50, y=36,00, z=187,50], EntityZombie['Zombie'/163, l='MpServer', x=37,28, y=35,00, z=232,34], EntityCreeper['Creeper'/162, l='MpServer', x=38,82, y=42,00, z=212,99], EntitySkeleton['Skeleton'/161, l='MpServer', x=40,50, y=43,00, z=169,09], EntitySkeleton['Skeleton'/166, l='MpServer', x=38,47, y=37,00, z=228,88], EntitySpider['Spider'/165, l='MpServer', x=40,75, y=35,00, z=231,00], EntityCreeper['Creeper'/164, l='MpServer', x=35,97, y=37,00, z=231,53], EntitySpider['Spider'/51, l='MpServer', x=-48,00, y=18,00, z=136,00], EntityCreeper['Creeper'/50, l='MpServer', x=-56,28, y=16,69, z=131,54], EntitySquid['Squid'/49, l='MpServer', x=-63,38, y=45,13, z=122,03], EntityZombie['Zombie'/48, l='MpServer', x=-50,63, y=28,00, z=81,13], EntityBat['Bat'/55, l='MpServer', x=-52,20, y=39,49, z=186,58], EntityCreeper['Creeper'/428, l='MpServer', x=24,50, y=38,00, z=214,50], EntitySkeleton['Skeleton'/54, l='MpServer', x=-61,50, y=45,00, z=179,50], EntitySkeleton['Skeleton'/53, l='MpServer', x=-61,88, y=35,00, z=191,50], EntitySquid['Squid'/52, l='MpServer', x=-58,99, y=52,10, z=172,86], EntityCreeper['Creeper'/59, l='MpServer', x=-48,34, y=16,00, z=198,00], EntitySkeleton['Skeleton'/58, l='MpServer', x=-48,50, y=16,00, z=202,50], EntitySquid['Squid'/57, l='MpServer', x=-62,47, y=49,00, z=179,47], EntityBat['Bat'/56, l='MpServer', x=-53,71, y=38,00, z=189,58], EntitySquid['Squid'/61, l='MpServer', x=-57,89, y=52,98, z=190,43], EntitySquid['Squid'/60, l='MpServer', x=-58,84, y=51,32, z=191,13], EntityCreeper['Creeper'/68, l='MpServer', x=-41,97, y=18,00, z=139,41], EntityZombie['Zombie'/69, l='MpServer', x=-34,62, y=17,00, z=169,75], EntityZombie['Zombie'/70, l='MpServer', x=-38,25, y=17,00, z=163,84], EntityZombie['Zombie'/71, l='MpServer', x=-36,31, y=9,90, z=198,47], EntityZombie['Zombie'/67, l='MpServer', x=-44,50, y=31,00, z=83,00], EntitySquid['Squid'/76, l='MpServer', x=-48,82, y=54,37, z=195,83], EntityZombie['Zombie'/77, l='MpServer', x=-38,91, y=13,00, z=209,59], EntityCreeper['Creeper'/78, l='MpServer', x=-46,75, y=17,00, z=216,94], EntityZombie['Zombie'/79, l='MpServer', x=-47,63, y=17,00, z=217,13], EntityZombie['Zombie'/72, l='MpServer', x=-40,66, y=13,00, z=206,34], EntityZombie['Zombie'/73, l='MpServer', x=-44,50, y=36,00, z=198,50], EntityBat['Bat'/74, l='MpServer', x=-45,25, y=36,12, z=194,82], EntitySquid['Squid'/75, l='MpServer', x=-43,63, y=51,38, z=189,65], EntitySpider['Spider'/87, l='MpServer', x=-20,66, y=36,00, z=185,44], EntitySkeleton['Skeleton'/86, l='MpServer', x=-19,14, y=36,00, z=182,48], EntityZombie['Zombie'/80, l='MpServer', x=-41,78, y=16,00, z=217,50], EntitySpider['Spider'/89, l='MpServer', x=-22,25, y=14,00, z=202,72], EntitySpider['Spider'/88, l='MpServer', x=-25,19, y=35,00, z=190,41], EntitySpider['Spider'/102, l='MpServer', x=-1,28, y=13,00, z=148,59], EntityCreeper['Creeper'/103, l='MpServer', x=-1,50, y=13,00, z=159,50], EntityCreeper['Creeper'/100, l='MpServer', x=-0,59, y=21,00, z=89,31], EntityCreeper['Creeper'/101, l='MpServer', x=-1,72, y=21,00, z=90,57], EntityCreeper['Creeper'/99, l='MpServer', x=-11,50, y=21,00, z=83,50], EntityChicken['Chicken'/106, l='MpServer', x=-15,53, y=62,29, z=208,59], EntityChicken['Chicken'/107, l='MpServer', x=-5,47, y=71,00, z=230,28], EntitySkeleton['Skeleton'/104, l='MpServer', x=-6,94, y=27,00, z=176,53], EntityCreeper['Creeper'/105, l='MpServer', x=-8,53, y=28,00, z=183,00], EntitySkeleton['Skeleton'/119, l='MpServer', x=2,44, y=21,00, z=93,69], EntitySkeleton['Skeleton'/118, l='MpServer', x=5,38, y=21,00, z=92,47], EntitySkeleton['Skeleton'/117, l='MpServer', x=4,44, y=21,00, z=92,53], EntityChicken['Chicken'/127, l='MpServer', x=4,47, y=70,00, z=226,47], EntityChicken['Chicken'/126, l='MpServer', x=14,58, y=72,47, z=220,48], EntitySheep['Sheep'/125, l='MpServer', x=8,74, y=68,00, z=212,14], EntityChicken['Chicken'/124, l='MpServer', x=1,53, y=66,00, z=218,47], EntityChicken['Chicken'/123, l='MpServer', x=5,56, y=67,00, z=218,53], EntityZombie['Zombie'/122, l='MpServer', x=1,14, y=35,00, z=193,09], EntityBat['Bat'/121, l='MpServer', x=4,27, y=34,18, z=190,04], EntitySkeleton['Skeleton'/120, l='MpServer', x=-1,65, y=21,00, z=92,45]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:418)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2559)
at net.minecraft.client.Minecraft.run(Minecraft.java:976)
at net.minecraft.client.main.Main.main(Main.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

-- System Details --
Details:
Minecraft Version: 1.7.2
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.7.0_45, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 870104888 bytes (829 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
AABB Pool Size: 17299 (968744 bytes; 0 MB) allocated, 2 (112 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95
FML: MCP v9.01-pre FML v7.2.129.1046 Minecraft Forge 10.12.0.1046 4 mods loaded, 4 mods active
mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
FML{7.2.129.1046} [Forge Mod Loader] (forgeSrc-1.7.2-10.12.0.1046.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Forge{10.12.0.1046} [Minecraft Forge] (forgeSrc-1.7.2-10.12.0.1046.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
graphicscore{0.1 Pre Release} [graphicscore] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Launched Version: 1.6
LWJGL: 2.9.0
OpenGL: GeForce GTX 570/PCIe/SSE2 GL version 4.4.0, NVIDIA Corporation
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: 14174 (793744 bytes; 0 MB) allocated, 23 (1288 bytes; 0 MB) used
Anisotropic Filtering: Off (1)
#@!@# Game crashed! Crash report saved to: #@!@# I:\Programming\Minecraft\eclipse\.\crash-reports\crash-2014-03-15_13.41.38-client.txt
AL lib: (EE) alc_cleanup: 1 device not closed

 

 

And here my classes :

 

FruityGraphic.java

 

 

 

package net.graphicscore.mod;

import net.graphicscore.blocks.BlockMasher;
import net.graphicscore.blocks.BlockTomato;
import net.graphicscore.entities.TileEntityMasher;
import net.graphicscore.gui.GuiHandler;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemSeedFood;
import net.minecraft.item.ItemStack;
import net.minecraft.world.biome.BiomeGenBase;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;

@Mod(modid = FruityGraphic.MODID, version = FruityGraphic.VERSION)
public class FruityGraphic
{
    public static final String MODID = "graphicscore";
    public static final String VERSION = "0.1 Pre Release";
    public static FruityGraphic instance;
    //MISC
        
    
    //ITEMS
    
    
    //FOOD
    

    //BLOCKS
    public static Block blockMasherIdle;
    public static Block blockMasherActive;

   //GUI
   public static final int guiIdMasher = 8;

@EventHandler
   public void preInit(FMLPreInitializationEvent e)
   {
   blockMasherIdle = new BlockMasher(false).setHardness(3.7F).setCreativeTab(CreativeTabs.tabRedstone);
   blockMasherActive = new BlockMasher(true).setHardness(3.7F).setLightLevel(0.9F);
   blockTomato = new BlockTomato();
   itemTomato = new ItemSeedFood(0, 0.0F,blockTomato, null).setUnlocalizedName("TomatoItem").setTextureName(MODID + ":" + "seeds_tomato");
   foodTomato = new ItemFood(1, 0.25F, false);
   GameRegistry.registerBlock(blockTomato, "Tomato");
   GameRegistry.registerBlock(blockMasherIdle, "Masher");
   GameRegistry.registerBlock(blockMasherActive, "Masher");
   GameRegistry.registerTileEntity(TileEntityMasher.class, "Masher");
   GameRegistry.registerTileEntity(TileEntityMasher.class, "containerMachineGlaces");
   NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler());
   GameRegistry.addRecipe(new ItemStack(blockMasherIdle, 3), new Object[] { "   ", " X ", "   ", Character.valueOf('X'), Blocks.dirt });
  
   }

@EventHandler
    public void init(FMLInitializationEvent event)
    {

    }

}

 

 

 

BlockMasher.java

 

 

package net.graphicscore.blocks;

import java.util.Random;

import javax.swing.Icon;

import net.graphicscore.entities.TileEntityMasher;
import net.graphicscore.mod.FruityGraphic;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
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 net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class BlockMasher extends BlockContainer{

private final Random maceratorRand = new Random();

private final boolean isActive;

private static boolean keepMaceratorInventory;
@SideOnly(Side.CLIENT)
private IIcon maceratorIconTop;

public BlockMasher(boolean isActive) {
	super(Material.rock);

	this.isActive = isActive;
}

@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister){
	this.blockIcon = iconRegister.registerIcon(FruityGraphic.MODID + ":" + "macerator_side");
	this.maceratorIconTop = iconRegister.registerIcon(FruityGraphic.MODID + ":" + (this.isActive ? "macerator_front_lit" : "macerator_front_idle"));
}

@SideOnly(Side.CLIENT)

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

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

/**
 * 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)
	{

		byte b0 = 3;

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

public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
	if(!world.isRemote) {
		FMLNetworkHandler.openGui(player, FruityGraphic.instance, FruityGraphic.guiIdMasher, world, x, y, z);
	}

	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.getTileEntity(par2, par3, par4);
	keepMaceratorInventory = true;

	if (par0)
	{
		par1World.setBlock(par2, par3, par4, FruityGraphic.blockMasherActive);
	}
	else
	{
		par1World.setBlock(par2, par3, par4, FruityGraphic.blockMasherIdle);
	}

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

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

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

/**
 * Called when the block is placed in the world.
 */
public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLivingBase par5EntityLivingBase, ItemStack par6ItemStack)
{
	int l = MathHelper.floor_double((double)(par5EntityLivingBase.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())
	{
		((TileEntityMasher)par1World.getTileEntity(par2, par3, par4)).setGuiDisplayName(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, Block par5, int par6)
{
	if (!keepMaceratorInventory)
	{
		TileEntityMasher TileEntityMacerator = (TileEntityMasher)par1World.getTileEntity(par2, par3, par4);

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

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

					while (itemstack.stackSize > 0)
					{
						int k1 = this.maceratorRand.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.getItem(), k1, itemstack.getItemDamage()));

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

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

			par1World.func_147453_f(par2, par3, par4, FruityGraphic.blockMasherIdle);

		}
	}

	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.getTileEntity(par2, par3, par4));
}

@SideOnly(Side.CLIENT)

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

@Override
public TileEntity createNewTileEntity(World var1, int var2) {
	return null;
}

}

 

 

 

TileEntityMasher.java

 

 

package net.graphicscore.entities;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.graphicscore.blocks.BlockMasher;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.Constants.NBT;
import net.minecraftforge.oredict.OreDictionary;

public class TileEntityMasher extends TileEntity implements ISidedInventory{
	private static final int[] slots_top = new int[] {0};
	private static final int[] slots_bottom = new int[] {2, 1};
	private static final int[] slots_sides = new int[] {1};

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

	/** the speed of this furnace, 200 is normal / how many ticks it takes : 30 ticks = 1 second */
	public int maceratingSpeed = 100;

	/** The number of ticks that the furnace will keep burning */
	public int power;
	public int maxPower = 15000;

	/** The number of ticks that the current item has been cooking for */
	public int cookTime;

	private String field_94130_e;

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

    	/**
     	* Returns the stack in slot i
     	*/
    	public ItemStack getStackInSlot(int par1)
    	{
        	return this.slots[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.slots[par1] != null)
        	{
            		ItemStack itemstack;

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

                		if (this.slots[par1].stackSize == 0)
                		{
                    			this.slots[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.slots[par1] != null)
        	{
            		ItemStack itemstack = this.slots[par1];
            		this.slots[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.slots[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.macerator";
    	}

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

    	/**
     	* Sets the custom display name to use when opening a GUI linked to this tile entity.
     	*/
    	public void setGuiDisplayName(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",NBT.TAG_COMPOUND);
        	this.slots = new ItemStack[this.getSizeInventory()];

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

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

        	this.power = par1NBTTagCompound.getShort("power");
        	this.cookTime = par1NBTTagCompound.getShort("CookTime");

        	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("power", (short)this.power);
        	par1NBTTagCompound.setShort("CookTime", (short)this.cookTime);
        	NBTTagList nbttaglist = new NBTTagList();

        	for (int i = 0; i < this.slots.length; ++i)
        	{	
            		if (this.slots[i] != null)
            		{
                		NBTTagCompound nbttagcompound1 = new NBTTagCompound();
                		nbttagcompound1.setByte("Slot", (byte)i);
                		this.slots[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.cookTime * par1 / this.maceratingSpeed;
    	}
    
    	public int getPowerRemainingScaled(int par1){
        	return this.power * par1 / this.maxPower;
    	}

    	/**
     	* Returns true if the furnace is currently burning
     	*/
    	public boolean hasPower()
    	{
        	return this.power > 0;
    	}
    
    	public boolean isMacerating(){
    		return this.cookTime > 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.power > 0;
        	boolean flag1 = false;
    	
        	if (hasPower() && isMacerating()){
            		this.power--;
        	}

        	if (!this.worldObj.isRemote){
            	if (this.power < this.maxPower && this.getItemPower(this.slots[1]) > 0){
            		this.power += getItemPower(this.slots[1]);

            		flag1 = true;
            	
            		if (this.slots[1] != null){
                    		this.slots[1].stackSize--;

                    		if (this.slots[1].stackSize == 0){
                        		this.slots[1] = this.slots[1].getItem().getContainerItem(slots[1]);
                    		}
                	}                
            	}

            	if (this.hasPower() && this.canSmelt())
            	{
                	++this.cookTime;

                	if (this.cookTime == this.maceratingSpeed)
                	{
                    	this.cookTime = 0;
                    	this.smeltItem();
                   	flag1 = true;
                	}
            	}
            	else
            	{
                	this.cookTime = 0;
            	}

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

        	if (flag1){
            		this.updateEntity();
        	}
    	}
    
    	public boolean isOre(ItemStack itemstack){
    		String[] oreNames = OreDictionary.getOreNames();
    	
    		for(int i = 0; i < oreNames.length; i++){
    			if(oreNames[i].contains("ore")){
    			if(OreDictionary.getOres(oreNames[i]) != null){
    				if(OreDictionary.getOres(oreNames[i]).get(0).getItem() == itemstack.getItem()){
    					return true;        			
    				}
    			}
    			}
    		}
    	
    		return false;
    	}

    	/**
     	* 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.slots[0] == null){
            	return false;
        	}else{
            		ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]);
            		if(itemstack == null) return false;
            		if(!isOre(this.slots[0])) return false;
            		if(this.slots[2] == null) return true;
            		if(!this.slots[2].isItemEqual(itemstack)) return false;
            		int result = slots[2].stackSize + (itemstack.stackSize*2);
            		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 = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]);
            
            	if(this.slots[2] == null){
                	this.slots[2] = itemstack.copy();
                	this.slots[2].stackSize*=2;
            	}else if (this.slots[2].isItemEqual(itemstack)){
                	slots[2].stackSize += (itemstack.stackSize*2);
            	}

            	--this.slots[0].stackSize;

            	if(this.slots[0].stackSize <= 0){
                	this.slots[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 getItemPower(ItemStack par0ItemStack){
        	if (par0ItemStack == null){
            	return 0;
        	}else{
        		Item i = par0ItemStack.getItem();
        	
        		if (i == Items.redstone) return 10;
            	return 0;
        	}
    	}

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

    	/**
     	* Do not make give this method the name canInteractWith because it clashes with Container
     	*/
    	public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)
    	{
        	return this.worldObj.getTileEntity(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 isItemValidForSlot(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 ? slots_bottom : (par1 == 1 ? slots_top : slots_sides);
    	}

    	/**
     	* 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.isItemValidForSlot(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.getItem() == Items.bucket;
	}


	public String getInventoryName() {

		return null;
	}


	public boolean hasCustomInventoryName() {

		return false;
	}


	public void openInventory() {


	}


	public void closeInventory() {

	}
}

 

 

 

ContainerMasher.java

 

 

package net.graphicscore.gui;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.graphicscore.entities.TileEntityMasher;
import net.graphicscore.other.OreRecipes;
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.inventory.SlotFurnace;
import net.minecraft.item.ItemStack;

public class ContainerMasher extends Container
{
private TileEntityMasher masher;
private int lastCookTime;
private int lastBurnTime;

public ContainerMasher(InventoryPlayer par1InventoryPlayer, TileEntityMasher par2TileEntityFurnace)
{
	this.masher = par2TileEntityFurnace;
	this.addSlotToContainer(new Slot(par2TileEntityFurnace, 0, 56, 35));
	this.addSlotToContainer(new Slot(par2TileEntityFurnace, 1, 8, 56));
	this.addSlotToContainer(new SlotFurnace(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.masher.cookTime);
	par1ICrafting.sendProgressBarUpdate(this, 1, this.masher.power);
}

/**
 * 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.masher.cookTime)
		{
			icrafting.sendProgressBarUpdate(this, 0, this.masher.cookTime);
		}

		if (this.lastBurnTime != this.masher.power)
		{
			icrafting.sendProgressBarUpdate(this, 1, this.masher.power);
		}
	}

	this.lastCookTime = this.masher.cookTime;
	this.lastBurnTime = this.masher.power;
}

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

	if (par1 == 1)
	{
		this.masher.power = par2;
	}
}

public boolean canInteractWith(EntityPlayer par1EntityPlayer)
{
	return this.masher.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 (OreRecipes.ores().smelting().getSmeltingResult(itemstack1) != null)
			{
				if (!this.mergeItemStack(itemstack1, 0, 1, false))
				{
					return null;
				}
			}
			else if (TileEntityMasher.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;
}
}

 

 

 

GuiHandler.java

 

 

package net.graphicscore.gui;

import net.graphicscore.entities.TileEntityMasher;
import net.graphicscore.mod.FruityGraphic;
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.GameRegistry;

public class GuiHandler implements IGuiHandler {

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

	if(entity != null){
		switch (id) {
			case FruityGraphic.guiIdMasher:
				if (entity instanceof TileEntityMasher) {
					return new ContainerMasher(player.inventory, (TileEntityMasher) entity);
				} 

				return null;
			default:
				return null;
		}
	}

	return null;
}

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

	if(entity != null){
		switch (id) {
			case FruityGraphic.guiIdMasher:
				if (entity instanceof TileEntityMasher) {
					return new GuiMasher(player.inventory, (TileEntityMasher) entity);
				} 

				return null;
			default:
				return null;
		}
	}

	return null;
}	
}
[/spoiler]

 

GuiMasher.java

 

 

package net.graphicscore.gui;

import org.lwjgl.opengl.GL11;

import com.sun.imageio.plugins.common.I18N;

import net.graphicscore.entities.TileEntityMasher;
import net.graphicscore.mod.FruityGraphic;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;

public class GuiMasher extends GuiContainer{
public static final ResourceLocation texture = new ResourceLocation(FruityGraphic.MODID, "textures/gui/macerator.png");

public TileEntityMasher macerator;

public GuiMasher(InventoryPlayer invPlayer, TileEntityMasher entity) {
	super(new ContainerMasher(invPlayer, entity));

	this.macerator = entity;

	this.xSize = 176;
	this.ySize = 165;
}

public void drawGuiContainerForegroundLayer(int par1, int par2){
	String s = this.macerator.isInvNameLocalized() ? this.macerator.getInvName() : I18N.getString(this.macerator.getInvName());
	this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 4210752);
	this.fontRendererObj.drawString(I18N.getString("container.inventory"), 8, this.ySize - 96 + 5, 4210752);
}

public void drawGuiContainerBackgroundLayer(float f, int j, int i) {
	GL11.glColor4f(1F, 1F, 1F, 1F);

	Minecraft.getMinecraft().getTextureManager().
	bindTexture(texture);

	drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);

	int i1;

	if(this.macerator.hasPower()){
		i1 = this.macerator.getPowerRemainingScaled(45);
		this.drawTexturedModalRect(guiLeft + 8, guiTop + 53 - i1, 176, 62 - i1, 16, i1);
	}

	i1 = this.macerator.getCookProgressScaled(24);
	this.drawTexturedModalRect(guiLeft + 79, guiTop + 34, 176, 0, i1 + 1, 16);
}
}
[/spoiler]
[/spoiler]

 

OreRecipes.java

 

 

package net.graphicscore.other;

import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;

public class OreRecipes{

private static final FurnaceRecipes oreBase = FurnaceRecipes.smelting();

public static FurnaceRecipes ores(){
	return oreBase;
}

static{
	oreBase.func_151393_a(Blocks.coal_ore, new ItemStack(Items.coal), 1F);
}

}
[/spoiler]

Link to comment
Share on other sites

I've had to change major parts of the code to even get it run in 1.7.2 and you won't help me because it's based on a tutorial ?

Really ? I wanted to change functions,features and other stuff later and wanted to get the block and functions working first to see if I get it running in 1.7.2 , so wheres the problem ?

If you've never been into minecraft mod coding or you done it long time ago why should I not look how other people have done it and update it to the newest version of minecraft. After that change Texture,Function,Features and other stuff but he basic stuff.

 

Link to comment
Share on other sites

It's not because of that, but It's because I'd have to follow the tutorial myself..

Are you sure that tutorial wasn't made for 1.6.4?

Anyways, I can still look at your code, don't rage on me..

By the way, does the game also crash when you click on your creative tab? If yes, since this happened me quite a few times, It's an ID problem...

 

EDIT: Oh but you're using 1.7.2. Sorry, I can't help you, I'm still using 1.6.4, never got onto newer versions..

I try my best, so apologies if I said something obviously stupid!

Link to comment
Share on other sites

GameRegistry.registerBlock(blockMasherIdle, "Masher");
GameRegistry.registerBlock(blockMasherActive, "Masher");

I saw this code, and i saw that you registered the active and the idle block with the same name. I don't know if this will do anything, but you can change it and see what happens then.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Yeah I know that , but I can't even get the block to set so it's crashing when I'm crafting it , and it's not in the creative tabs.

 

//EDIT :

I've changed the

GameRegistry.registerBlock(blockMasherIdle, "Masher");
   GameRegistry.registerBlock(blockMasherActive, "Masher");

to

GameRegistry.registerBlock(blockMasherIdle, "Masher");
   GameRegistry.registerBlock(blockMasherActive, "Masher_Active");

 

Now I can get the block but the gui isn't showing up any Idea why ?

Link to comment
Share on other sites

  GameRegistry.registerTileEntity(TileEntityMasher.class, "Masher");

  GameRegistry.registerTileEntity(TileEntityMasher.class, "containerMachineGlaces");

wasnt the tileentity register like this:

  GameRegistry.registerTileEntity(TileEntityMasher.class, "modid.Masher");

  GameRegistry.registerTileEntity(TileEntityMasher.class, "modid.containerMachineGlaces");

I'm always happy to help others!

 

Java is not my main programming language but I have alot experience in PHP/HTML/JS/CSS3/C#/SQL

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

    • As the title says i keep on crashing on forge 1.20.1 even without any mods downloaded, i have the latest drivers (nvidia) and vanilla minecraft works perfectly fine for me logs: https://pastebin.com/5UR01yG9
    • Hello everyone, I'm making this post to seek help for my modded block, It's a special block called FrozenBlock supposed to take the place of an old block, then after a set amount of ticks, it's supposed to revert its Block State, Entity, data... to the old block like this :  The problem I have is that the system breaks when handling multi blocks (I tried some fix but none of them worked) :  The bug I have identified is that the function "setOldBlockFields" in the item's "setFrozenBlock" function gets called once for the 1st block of multiblock getting frozen (as it should), but gets called a second time BEFORE creating the first FrozenBlock with the data of the 1st block, hence giving the same data to the two FrozenBlock :   Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=head] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@73681674 BlockEntityData : id:"minecraft:bed",x:3,y:-60,z:-6} Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=3, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=2, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} here is the code inside my custom "freeze" item :    @Override     public @NotNull InteractionResult useOn(@NotNull UseOnContext pContext) {         if (!pContext.getLevel().isClientSide() && pContext.getHand() == InteractionHand.MAIN_HAND) {             BlockPos blockPos = pContext.getClickedPos();             BlockPos secondBlockPos = getMultiblockPos(blockPos, pContext.getLevel().getBlockState(blockPos));             if (secondBlockPos != null) {                 createFrozenBlock(pContext, secondBlockPos);             }             createFrozenBlock(pContext, blockPos);             return InteractionResult.SUCCESS;         }         return super.useOn(pContext);     }     public static void createFrozenBlock(UseOnContext pContext, BlockPos blockPos) {         BlockState oldState = pContext.getLevel().getBlockState(blockPos);         BlockEntity oldBlockEntity = oldState.hasBlockEntity() ? pContext.getLevel().getBlockEntity(blockPos) : null;         CompoundTag oldBlockEntityData = oldState.hasBlockEntity() ? oldBlockEntity.serializeNBT() : null;         if (oldBlockEntity != null) {             pContext.getLevel().removeBlockEntity(blockPos);         }         BlockState FrozenBlock = setFrozenBlock(oldState, oldBlockEntity, oldBlockEntityData);         pContext.getLevel().setBlockAndUpdate(blockPos, FrozenBlock);     }     public static BlockState setFrozenBlock(BlockState blockState, @Nullable BlockEntity blockEntity, @Nullable CompoundTag blockEntityData) {         BlockState FrozenBlock = BlockRegister.FROZEN_BLOCK.get().defaultBlockState();         ((FrozenBlock) FrozenBlock.getBlock()).setOldBlockFields(blockState, blockEntity, blockEntityData);         return FrozenBlock;     }  
    • It is an issue with quark - update it to this build: https://www.curseforge.com/minecraft/mc-mods/quark/files/3642325
    • Remove Instant Massive Structures Mod from your server     Add new crash-reports with sites like https://paste.ee/  
  • Topics

×
×
  • Create New...

Important Information

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