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 | |
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')
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; + } + } |