mokonaModoki Posted January 3, 2013 Share Posted January 3, 2013 I've got a trouble with GUI. My GUI class has a variable which links to the machine's TileEntity object, but all the fields inside this object are nullified after re-entering the world and as the result, GUI can't have the right data. I used debug and messages to find out that all the data in actual TileEntity object are loaded properly and that might be some kind of a desync problem between the server and client parts of the game. Also, there are some problems with item slots: the items placed inside dissapear from the slot, but when clicking on it again, they are being grabbed as if they were in the slot. I had similar problems when 1.3.1 came out and that was the reason I stopped further development of my mod. Here is the code of all the classes you might need. I count on your help. MainModClass: http://pastebin.com/0v8Qda1H ServerPacketHandler: http://pastebin.com/Tjscq5tE ClientPacketHandler: http://pastebin.com/UkFHyzih GUIHandler: http://pastebin.com/kuXGPXF6 GUIClass: http://pastebin.com/KyTBqp3U TileEntityClass: http://pastebin.com/iKHv730c BlockClass: http://pastebin.com/byrXsT8i ContainerClass: http://pastebin.com/DvY1s47D Quote http://www.minecraftforum.net/topic/1871576-152-161forgealchemy-enhance-your-brewing-expirience-now-with-downloads/ Check it out! Link to comment Share on other sites More sharing options...
Kore Posted January 4, 2013 Share Posted January 4, 2013 check to make sure that you do not set all the data to 0 when you add block to world and if so do a if(i!=null)return 0 else return i Update your mod... many of the things become easier with new forge Quote The Korecraft Mod Link to comment Share on other sites More sharing options...
mokonaModoki Posted January 5, 2013 Author Share Posted January 5, 2013 I am already using latest forge build (6.6.0.495) Just upgraded to latest latest build (6.6.0.497) Still not working at all... Quote http://www.minecraftforum.net/topic/1871576-152-161forgealchemy-enhance-your-brewing-expirience-now-with-downloads/ Check it out! Link to comment Share on other sites More sharing options...
mokonaModoki Posted January 5, 2013 Author Share Posted January 5, 2013 Okay, I've decided to use custom packets to manually sync data between GUI and TileEntity, stored on server. In order to do this I need server world objectto get to the TileEntity I need. Could anyone help me? How do I get to the world object using static access or something..? Quote http://www.minecraftforum.net/topic/1871576-152-161forgealchemy-enhance-your-brewing-expirience-now-with-downloads/ Check it out! Link to comment Share on other sites More sharing options...
Ada2 Posted January 5, 2013 Share Posted January 5, 2013 I had to search a longer time for a stabel way to get the world, this is what I found (wrapped in a method in my commonproxy): /** * Gets the current world. * @param dim int the dimension of the world * * @return World the current world */ public World getWorld(int dim) { return DimensionManager.getWorld(dim); } Quote Link to comment Share on other sites More sharing options...
mokonaModoki Posted January 5, 2013 Author Share Posted January 5, 2013 And is there any way to get dimension ID for the worldObject? Quote http://www.minecraftforum.net/topic/1871576-152-161forgealchemy-enhance-your-brewing-expirience-now-with-downloads/ Check it out! Link to comment Share on other sites More sharing options...
Ada2 Posted January 5, 2013 Share Posted January 5, 2013 Look at world.getWordInfo() append a '.' and look what you can find in there. Quote Link to comment Share on other sites More sharing options...
mokonaModoki Posted January 5, 2013 Author Share Posted January 5, 2013 thank you, that helperd a lot. i'll see what i can do with it Quote http://www.minecraftforum.net/topic/1871576-152-161forgealchemy-enhance-your-brewing-expirience-now-with-downloads/ Check it out! Link to comment Share on other sites More sharing options...
mokonaModoki Posted January 6, 2013 Author Share Posted January 6, 2013 Allright. I solved the problem by rewriting Container class. When disconnecting from the world and logging in again my client apparently had no idea what data is stored in the TileEntity class, since it is stored on the server part. I looked at vanilla ContainerFurnace code and figured out that public void addCraftingToCrafters(ICrafting par1ICrafting) public void detectAndSendChanges() and public void updateProgressBar(int index, int value) are responsible for syncing the client and server GUI parts. I just implemented these methods in my container class and made them do all the syncing stuff properly and voila - everything is displaying correctly and client side has all the data it needs to display machine's GUI properly. That's my COntainer code now: http://pastebin.com/FKP4C0yN Quote http://www.minecraftforum.net/topic/1871576-152-161forgealchemy-enhance-your-brewing-expirience-now-with-downloads/ Check it out! Link to comment Share on other sites More sharing options...
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.