Posted September 5, 201312 yr Hello, My problem is, that my values that are stored in nbt data are not saving. I need to save the power of my machines, but every time i close minecraft and restart it, the power is 0. Here is my code: http://gw.minecraftforge.net/bDuT And my updateEntity code if it has something to do with that: http://gw.minecraftforge.net/zbSV And no, my vars are not static. ss7 You sir are a god damn hero.
September 5, 201312 yr Author Hello, Thank you very much! One of my machines is now saving the power, but it looks like the others are saving, but the power is not displayed at the client until i give the machine more power. Then the machine updates and shows even the saved power. Do i need to send packets to update the gui of the machine? ss7 You sir are a god damn hero.
September 5, 201312 yr Author Hello, Oh sorry, i missed that updateProgressBar thingy. But how should i do this with my other block, it has a TESR that renders the power on top of the block? And when i place one machine and destroy it and place another machine it crashes with a ClassCastException. It's because the TileEntity still exist, but i made a tileentity = null in the breakBlock method. ss7 You sir are a god damn hero.
September 6, 201312 yr Author Hello, Thank you, that works perfectly. But with the TESR i've got that code in the TileEntity, but it's a little bit buggy: @Override public Packet getDescriptionPacket() { System.out.println("getDescriptionPacket"); NBTTagCompound tag = new NBTTagCompound(); writeToNBT(tag); return new Packet132TileEntityData(xCoord, yCoord, zCoord, 1, tag); } @Override public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt) { System.out.println("onDataPacket"); readFromNBT(pkt.customParam1); } ss7 You sir are a god damn hero.
September 7, 201312 yr Author Hello, Is there a better way to do this? ss7 You sir are a god damn hero.
September 7, 201312 yr And where are you sending your packet (PacketDispatcher.sendPacketToAllPlayers(getDescriptionPacket())) ? I would put that just after you set the progress to 13. Or you can move the checking for progressticks being 0 to only be executed by the server as well, and send the packet when you change the power. Author of PneumaticCraft, MineChess, Minesweeper Mod and Sokoban Mod. Visit www.minemaarten.com to take a look at them.
September 7, 201312 yr world.markBlockForUpdate(x,y,z); would also send the description packet automatically.
September 7, 201312 yr Hmm you guys are right! I'm learning everyday on this forum, thanks Author of PneumaticCraft, MineChess, Minesweeper Mod and Sokoban Mod. Visit www.minemaarten.com to take a look at them.
September 8, 201312 yr Author Hello, But i don't need that for my blocks with a GUI. I can just do it with updateProgressBar. But my battery has no Container, so i can't do that. ss7 You sir are a god damn hero.
September 8, 201312 yr So, no Container means you send your own packets. Before opening the GUI would be a good starting point i think.
September 8, 201312 yr Author Hello, But that block has no GUI! It only has a TESR that renders a label over the block. ss7 You sir are a god damn hero.
September 8, 201312 yr Author Hello, So should i do a world.markBlockForUpdate() each render call? And what should i put in getDescriptionPacket() and onDataPacket()? Should i just do writeToNbt() and readFromNbt()? ss7 You sir are a god damn hero.
September 8, 201312 yr No, only when the data needed to render has changed. Yes, the packet code you showed earlier should be enough.
September 8, 201312 yr Author Hello, Is there a function that gets called when the data changes or should i just do if (olddata != data) ? ss7 You sir are a god damn hero.
September 8, 201312 yr ... This is your code. You are the only one to know what changes you made and when.
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.