diff options
author | Alkalus <draknyte1@hotmail.com> | 2017-09-22 15:50:16 +1000 |
---|---|---|
committer | Alkalus <draknyte1@hotmail.com> | 2017-09-22 15:50:16 +1000 |
commit | ee27545b71bd091377b5e77fab056999a740315a (patch) | |
tree | 5e82beb96b25fec7b7ca089f605f0aaa3e927d9c /src/Java/gtPlusPlus/core/util/nbt | |
parent | aa563b79fea267830f563a9d3d5d61f9f531b16f (diff) | |
download | GT5-Unofficial-ee27545b71bd091377b5e77fab056999a740315a.tar.gz GT5-Unofficial-ee27545b71bd091377b5e77fab056999a740315a.tar.bz2 GT5-Unofficial-ee27545b71bd091377b5e77fab056999a740315a.zip |
+ More work on Trade Table.
Diffstat (limited to 'src/Java/gtPlusPlus/core/util/nbt')
-rw-r--r-- | src/Java/gtPlusPlus/core/util/nbt/NBTUtils.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/core/util/nbt/NBTUtils.java b/src/Java/gtPlusPlus/core/util/nbt/NBTUtils.java index 2d76742e38..a82a4f1ba4 100644 --- a/src/Java/gtPlusPlus/core/util/nbt/NBTUtils.java +++ b/src/Java/gtPlusPlus/core/util/nbt/NBTUtils.java @@ -2,11 +2,16 @@ package gtPlusPlus.core.util.nbt; import static gtPlusPlus.core.item.ModItems.ZZZ_Empty; +import java.util.Iterator; +import java.util.Map; + import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.ItemUtils; +import gtPlusPlus.core.util.reflect.ReflectionUtils; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; @@ -137,5 +142,63 @@ public class NBTUtils { return rStack; } + public static void setBoolean(ItemStack aStack, String aTag, boolean aBoolean) { + NBTTagCompound tNBT = getNBT(aStack); + tNBT.setBoolean(aTag, aBoolean); + GT_Utility.ItemNBT.setNBT(aStack, tNBT); + } + + public static boolean getBoolean(ItemStack aStack, String aTag) { + NBTTagCompound tNBT = getNBT(aStack); + return tNBT.getBoolean(aTag); + } + + public static void setInteger(ItemStack aStack, String aTag, int aInt) { + NBTTagCompound tNBT = getNBT(aStack); + tNBT.setInteger(aTag, aInt); + GT_Utility.ItemNBT.setNBT(aStack, tNBT); + } + + public static int getInteger(ItemStack aStack, String aTag) { + NBTTagCompound tNBT = getNBT(aStack); + return tNBT.getInteger(aTag); + } + + public static void setString(ItemStack aStack, String aTag, String aString) { + NBTTagCompound tNBT = getNBT(aStack); + tNBT.setString(aTag, aString); + GT_Utility.ItemNBT.setNBT(aStack, tNBT); + } + + public static String getString(ItemStack aStack, String aTag) { + NBTTagCompound tNBT = getNBT(aStack); + return tNBT.getString(aTag); + } + + public static boolean tryIterateNBTData(ItemStack aStack){ + NBTTagCompound aNBT = NBTUtils.getNBT(aStack); + if (aNBT != null){ + if (!aNBT.hasNoTags()){ + int tagCount = 0; + Map<?, ?> mInternalMap = ReflectionUtils.getField(aNBT, "tagMap"); + + if (mInternalMap != null){ + mInternalMap.forEach( (k,v) -> System.out.println("Key: " + k + ": Value: " + v)); + } + else { + Utils.LOG_INFO("Data map reflected from NBTTagCompound was not valid."); + return false; + } + } + else { + return false; + } + } + else { + return false; + } + return true; + } + } |