aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/util/nbt
diff options
context:
space:
mode:
authorAlkalus <draknyte1@hotmail.com>2017-09-22 15:50:16 +1000
committerAlkalus <draknyte1@hotmail.com>2017-09-22 15:50:16 +1000
commitee27545b71bd091377b5e77fab056999a740315a (patch)
tree5e82beb96b25fec7b7ca089f605f0aaa3e927d9c /src/Java/gtPlusPlus/core/util/nbt
parentaa563b79fea267830f563a9d3d5d61f9f531b16f (diff)
downloadGT5-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.java63
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;
+ }
+
}