Posted January 17, 20178 yr Hi, I'm making a barrel which can contain a lot of fluids. In the tileentity of the barrel I have an enum variable (from the enum FluidTypes), with the value of the current type of fluid inside the barrel. I was wondering if there was a way to write to and read from the NBT for this value? Thanks. Creator of the Master Chef Mod and many more to come. If I helped you, please click the 'thank you' button.
January 17, 20178 yr You can save the Enum as a string. Call enum#name() , to get a String representation of the enum. To convert back, use Enum__.valueOf(String) . Example: String estr = EnumHand.MainHand.name(); Reverse: EnumHand hand = EnumHand.valueOf(estr); Of course, if an enum is not found for that string, it will be null, so be sure to null-check. All you really need to do then is save the string to NBT. Also previously known as eAndPi. "Pi, is there a station coming up where we can board your train of thought?" -Kronnn Published Mods: Underworld Handy links: Vic_'s Forge events Own WIP Tutorials.
January 17, 20178 yr Author Thanks! Creator of the Master Chef Mod and many more to come. If I helped you, please click the 'thank you' button.
January 18, 20178 yr Reverse: EnumHand hand = EnumHand.valueOf(estr); Of course, if an enum is not found for that string, it will be null, so be sure to null-check. Actually, Enum#valueOf() will throw an IllegalArgumentException if the string isn't known. Checking for null won't help; you need to wrap the call in a try/catch block.
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.