Posted March 2, 201312 yr In my mod my GUI has buttons, and I want to change a string in my tile entity but it doesn't change the value in the tile entity when I press the button. It also doesn't change the item in slot 1 and slot 2 because of this. https://github.com/code-lyoko-modding/CodeLyokoMod/blob/master/lyoko/entities/TileEntitySuperCalc.java https://github.com/code-lyoko-modding/CodeLyokoMod/blob/master/lyoko/client/GuiSuperCalc.java EDIT: I ended up doing something different in the end
March 3, 201312 yr Author I already read and did that. EDIT: I just don't know how to send it to the tile entity
March 3, 201312 yr Author what I'd put in the tile entity to send the packet of the coordinates. I understand it fine, until it gets to EntityPlayer part
March 3, 201312 yr Author I'm already sending a packet from the GUI. do i also need to send the coordinates from the GUI?
March 3, 201312 yr Author sorry I meant do I send it from the GUI instead of the tile entity. now that I told the GUI to send the packet, how do I make it change the data in the tile entity?
March 3, 201312 yr Author is there a way i could send a reference of the tile entity from the gui to the packet handler?
March 3, 201312 yr Author but how would I initialize the reference? would I do this? TileEntitySuperCalc tsc = new TileEntitySuperCalc(); tsc.xCoord = x; tsc.yCoord = y; tsc.zCoord = z; tsc.selectedSector = sector;
March 3, 201312 yr Author I used the player variable in onPacketData to get the sender of the packet. it isn't changing the variable of the tile entity. here's the code I have now. https://github.com/code-lyoko-modding/CodeLyokoMod/blob/master/lyoko/entities/TileEntitySuperCalc.java https://github.com/code-lyoko-modding/CodeLyokoMod/blob/master/lyoko/PacketHandler.java https://github.com/code-lyoko-modding/CodeLyokoMod/blob/master/lyoko/client/GuiSuperCalc.java
March 3, 201312 yr Author so let me make sure I understand you correctly. I need to implement IPacketHandler in the tile entity and in onDataPacket I call world.markBlockForUpdate(x, y, z). and where is getDescriptionPacket?
March 4, 201312 yr Author this is kind of confusing for me so could you write show me exactly what I need to write and where? because I tend to learn what to do better from seeing it than being told what to do. Seeing an example of this being already implemented would work as well.
March 4, 201312 yr example of TE synchronization: https://github.com/mnn/jaffas/blob/59b59f01a1f2f6b21b0dc87e5a15e6761a3f3f19/src/minecraft/monnef/jaffas/food/block/TileEntityPie.java#L117 mnn.getNativeLang() != English If I helped you please click on the "thank you" button.
March 4, 201312 yr Author I'm still confused about what I do in the methods themselves. private void sendUpdate() { worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); } @Override public Packet getDescriptionPacket() { Packet132TileEntityData packet = (Packet132TileEntityData) super.getDescriptionPacket(); NBTTagCompound tag = packet != null ? packet.customParam1 : new NBTTagCompound(); return new Packet132TileEntityData(xCoord, yCoord, zCoord, 1, tag); } @Override public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt) { super.onDataPacket(net, pkt); } what do I do once I add that into my code?
March 5, 201312 yr in the posted example I synchronize fields "rotation" and "type". markBlockForUpdate forces server to send update to a client; onDataPacket is fired when client recieves synchronization packet from server, client gets data from unpacked tag from packet and saves it to its TE (=synchronize it); getDescriptionPacket is called on a server-side when TE on client needs to be synchronized, so server here puts data to NBT tag and that packs into a packet. mnn.getNativeLang() != English If I helped you please click on the "thank you" button.
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.