Posted September 21, 201410 yr How do people get or set the nbt tag from a tile entity? I already know how to get the tileentity from the world, but I need a way to read/write the nbt tag to the tileentity itself.
September 21, 201410 yr Actually you can use normal variables in a tileEntity and get and set them with that, If you make them public it's as simple as "TileEntity.variableName" if you make it private and you have getter and setters it'd be "tileEntity.getValue()" and to read and write the NBT (for saving and loading) @Override public void readFromNBT(NBTTagCompound nbtTag) @Override public void writeToNBT(NBTTagCompound nbtTag) you do your saving and loading in the respected methods. Currently updating my Mod to 1.10.2 https://bitbucket.org/hugo_the_dwarf/riseoftristram2016/src?at=master
September 21, 201410 yr TileEntities, unlike ItemStacks don't have their own NBTTagCompounds, I believe. What are you trying to do? You're probably just thinking of thinking about the problem the wrong way. BEFORE ASKING FOR HELP READ THE EAQ! I'll help if I can. Apologies if I do something obviously stupid. If you don't know basic Java yet, go and follow these tutorials.
September 21, 201410 yr NBTTagCompound tag = new NBTTagCompound(); p_tileEntity.writeToNBT(tag); // examine or do something with the NBT Data tag // if you change the values for some silly reason p_tileEntity.readFromNBT(changedTag); But, beware! Messing with the NBT data of an unknown TE can cause nasty behavior or crashes. -S- (if I helped, please click Thank and applaud) http://6upnqa.dm2301.livefilestore.com/y2mtf-vG7Tqq1TiiVpIm53KWj7294NDPoHfSHHb4PzZiMAUfRCfK0UY0MwOu7Q3zTBNVTKqWjr2-xgBfFRpQT5p-QivtvknPpoABMNUw9br9WuZcBFkjePhnAbW500gVm-P/sequiturian.png[/img]
September 21, 201410 yr Go with hugo_the_dwarf way. It's definitely the way to go Check out my blog! http://www.whov.altervista.org
September 21, 201410 yr Author I think I am asking the wrong question. I need a way to write a tile entity to a nbt tag on an itemstack.
September 21, 201410 yr just write the TileEntities coords into the itemstack. then all you need to do is get them and find the tileEntity usually "World.getTileEntity(x,y,z)" the method "onItemUseFirst" on items should help you grab your tileEntity as this method gives the blocks coords that you right clicked from there you can make a check to make sure the tileEntity you got is the one you want, then write the coords to NBT, and the next time you use it you can check to see if you have coords written, get the tileEntity with the coords and do your thing. Currently updating my Mod to 1.10.2 https://bitbucket.org/hugo_the_dwarf/riseoftristram2016/src?at=master
September 22, 201410 yr Author What if the tile entity will not exist at the previous location when I click?
September 22, 201410 yr this is why you have a check to make sure that what you got is what you wanted and is not null. Normally if(tileEntityGotten instanceof TileEntityMyTargetType) covers null and well your TE. if that passes and goes in you can then use TileEntityMyTargetType targetTe = (TileEntityMyTargetType)tileEntityGotten; targetTe.doWhatEverItIsThatPleasesYou(); now if you mean you these tileEntities have to be unique (place one, use item to save it's location, someone breaks it and places it down(new tileEntity, same location)) then I am not sure how to deal with that, I guess you could have that tileEntity store a special number or code in itself and the item that records it. Then when you right-click or activate your recorder item it loads up the tileEntity, checks the instance (covers null aswell) if that pans out, check the special ID in the tileEntity and match it with the one in the recorder. If that fails clear out the info on the Item (because it lost its tileEntity) Currently updating my Mod to 1.10.2 https://bitbucket.org/hugo_the_dwarf/riseoftristram2016/src?at=master
September 22, 201410 yr @bcwadsworth, I have given you the code to get a tag containing all of the TE's NBTData. Saving it in your entity is basic java. Read the inline comments. Also, beware that you will have no way of knowing how to recreate a tile entity just by its NBT data. You need its class, as well as the associated Block's class. So, if the TE is deleted as Hugo said, your item is no longer associated with anything. @Whov, if you understood the question, the answer is not "Go the <someperson> way." State what you think the problem is and offer a suggestion. @bcwadsworth, you could get more focussed help here by explaining what you are trying to accomplish with this method you seek. -S- (if I helped, please click Thank and applaud) http://6upnqa.dm2301.livefilestore.com/y2mtf-vG7Tqq1TiiVpIm53KWj7294NDPoHfSHHb4PzZiMAUfRCfK0UY0MwOu7Q3zTBNVTKqWjr2-xgBfFRpQT5p-QivtvknPpoABMNUw9br9WuZcBFkjePhnAbW500gVm-P/sequiturian.png[/img]
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.