aboutsummaryrefslogtreecommitdiff
path: root/src
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
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')
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java3
-rw-r--r--src/Java/gtPlusPlus/core/container/Container_TradeTable.java2
-rw-r--r--src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockNBT.java16
-rw-r--r--src/Java/gtPlusPlus/core/tileentities/machines/TileEntityTradeTable.java8
-rw-r--r--src/Java/gtPlusPlus/core/util/nbt/NBTUtils.java63
5 files changed, 89 insertions, 3 deletions
diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java b/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java
index 6af3aa36e4..a5ba90013d 100644
--- a/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java
+++ b/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java
@@ -6,6 +6,7 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gtPlusPlus.GTplusplus;
import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.item.base.itemblock.ItemBlockNBT;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.tileentities.machines.TileEntityTradeTable;
import gtPlusPlus.core.util.Utils;
@@ -32,7 +33,7 @@ public class Machine_TradeTable extends BlockContainer
super(Material.leaves);
this.setBlockName("blockTradeBench");
this.setCreativeTab(AddToCreativeTab.tabMachines);
- GameRegistry.registerBlock(this, "blockTradeBench");
+ GameRegistry.registerBlock(this, ItemBlockNBT.class, "blockTradeBench");
LanguageRegistry.addName(this, "Trade-o-Mat");
}
diff --git a/src/Java/gtPlusPlus/core/container/Container_TradeTable.java b/src/Java/gtPlusPlus/core/container/Container_TradeTable.java
index bdf349abb8..3e89c1ddaf 100644
--- a/src/Java/gtPlusPlus/core/container/Container_TradeTable.java
+++ b/src/Java/gtPlusPlus/core/container/Container_TradeTable.java
@@ -44,7 +44,7 @@ public class Container_TradeTable extends Container {
//Output slots
- this.addSlotToContainer(new SlotDataStick(this.inventoryOutputs, 0, 26+(18*6), 8));
+ this.addSlotToContainer(new SlotGeneric(this.inventoryOutputs, 0, 26+(18*6), 8));
this.addSlotToContainer(new SlotNoInput(this.inventoryOutputs, 1, 26+(18*6), 44));
//this.addSlotToContainer(new SlotCraftingNoCollect(inventory.player, this.craftMatrix, this.craftResult, 0, 26+(18*4), 25));
diff --git a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockNBT.java b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockNBT.java
index 454b41ffe5..3510bbb392 100644
--- a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockNBT.java
+++ b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockNBT.java
@@ -1,8 +1,13 @@
package gtPlusPlus.core.item.base.itemblock;
+import gtPlusPlus.core.util.nbt.NBTUtils;
+import gtPlusPlus.core.util.player.PlayerUtils;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
public class ItemBlockNBT extends ItemBlock {
@@ -11,5 +16,16 @@ public class ItemBlockNBT extends ItemBlock {
this.setCreativeTab(tab);
}
+ @Override
+ public void onCreated(ItemStack item, World world, EntityPlayer player) {
+ if (player != null){
+ NBTUtils.setString(item, "mOwner", player.getDisplayName());
+ NBTUtils.setString(item, "mUUID", ""+player.getUniqueID());
+ boolean mOP = PlayerUtils.isPlayerOP(player);
+ NBTUtils.setBoolean(item, "mOP", mOP);
+ }
+ super.onCreated(item, world, player);
+ }
+
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityTradeTable.java b/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityTradeTable.java
index c8998b5bab..d244785b47 100644
--- a/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityTradeTable.java
+++ b/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityTradeTable.java
@@ -6,6 +6,7 @@ import java.util.Vector;
import gtPlusPlus.core.container.Container_TradeTable;
import gtPlusPlus.core.inventories.tradetable.InventoryTradeMain;
import gtPlusPlus.core.inventories.tradetable.InventoryTradeOutput;
+import gtPlusPlus.core.util.nbt.NBTUtils;
import ic2.api.network.INetworkDataProvider;
import ic2.api.network.INetworkUpdateListener;
import ic2.api.tile.IWrenchable;
@@ -109,7 +110,12 @@ public class TileEntityTradeTable extends TileEntity implements INetworkDataProv
}
@Override
- public void updateEntity() {
+ public void updateEntity() {
+ ItemStack slot0 = this.inventoryOutputs.getStackInSlot(0);
+ if (slot0 != null && slot0.hasTagCompound()){
+ NBTUtils.tryIterateNBTData(slot0);
+ this.inventoryOutputs.setInventorySlotContents(0, null);
+ }
super.updateEntity();
}
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;
+ }
+
}