summaryrefslogtreecommitdiff
path: root/src/main/java/gmail/Lance5057/tileentities
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gmail/Lance5057/tileentities')
-rw-r--r--src/main/java/gmail/Lance5057/tileentities/TileEntity_ArmorAnvil.java8
-rw-r--r--src/main/java/gmail/Lance5057/tileentities/TileEntity_FinishingAnvil.java176
2 files changed, 176 insertions, 8 deletions
diff --git a/src/main/java/gmail/Lance5057/tileentities/TileEntity_ArmorAnvil.java b/src/main/java/gmail/Lance5057/tileentities/TileEntity_ArmorAnvil.java
deleted file mode 100644
index 59b823e..0000000
--- a/src/main/java/gmail/Lance5057/tileentities/TileEntity_ArmorAnvil.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package gmail.Lance5057.tileentities;
-
-import net.minecraft.tileentity.TileEntity;
-
-public class TileEntity_ArmorAnvil extends TileEntity
-{
-
-}
diff --git a/src/main/java/gmail/Lance5057/tileentities/TileEntity_FinishingAnvil.java b/src/main/java/gmail/Lance5057/tileentities/TileEntity_FinishingAnvil.java
new file mode 100644
index 0000000..91188b1
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/tileentities/TileEntity_FinishingAnvil.java
@@ -0,0 +1,176 @@
+package gmail.Lance5057.tileentities;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraftforge.common.util.Constants;
+
+public class TileEntity_FinishingAnvil extends TileEntity implements IInventory
+{
+ public static int invSize = 2;
+ public ItemStack[] inventory;
+
+ private final String name = "Anvil Inventory";
+
+ public TileEntity_FinishingAnvil()
+ {
+ super();
+ inventory = new ItemStack[invSize];
+ }
+
+ @Override
+ public void updateEntity()
+ {
+ super.updateEntity();
+ }
+
+ @Override
+ public Packet getDescriptionPacket() {
+ NBTTagCompound tag = new NBTTagCompound();
+ writeToNBT(tag);
+ return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 0, tag);
+ }
+
+ @Override
+ public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) {
+ readFromNBT(pkt.func_148857_g());
+ }
+
+ @Override
+ public int getSizeInventory() {
+ return invSize;
+ }
+
+ @Override
+ public ItemStack getStackInSlot(int slot) {
+ return inventory[slot];
+ }
+
+ @Override
+ public ItemStack decrStackSize(int slot, int amount) {
+ ItemStack stack = getStackInSlot(slot);
+ if (stack != null)
+ {
+ if (stack.stackSize > amount)
+ {
+ stack = stack.splitStack(amount);
+
+ if (stack.stackSize == 0)
+ {
+ setInventorySlotContents(slot, null);
+ }
+ }
+ else
+ {
+ setInventorySlotContents(slot, null);
+ }
+
+ this.markDirty();
+ }
+ return stack;
+ }
+
+ @Override
+ public ItemStack getStackInSlotOnClosing(int slot) {
+ ItemStack stack = getStackInSlot(slot);
+
+ if (stack != null)
+ {
+ setInventorySlotContents(slot, stack);
+ }
+ return stack;
+ }
+
+ @Override
+ public void setInventorySlotContents(int slot, ItemStack itemstack) {
+ this.inventory[slot] = itemstack;
+
+ if (itemstack != null && itemstack.stackSize > this.getInventoryStackLimit())
+ {
+ itemstack.stackSize = this.getInventoryStackLimit();
+ }
+
+ this.markDirty();
+ }
+
+ @Override
+ public String getInventoryName() {
+ return name;
+ }
+
+ @Override
+ public boolean hasCustomInventoryName() {
+ return name.length() > 0;
+ }
+
+ @Override
+ public int getInventoryStackLimit() {
+ return 1;
+ }
+
+ @Override
+ public boolean isUseableByPlayer(EntityPlayer p_70300_1_) {
+ return true;
+ }
+
+ @Override
+ public void openInventory() {
+
+ }
+
+ @Override
+ public void closeInventory() {
+
+ }
+
+ @Override
+ public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) {
+ return true;
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound compound)
+ {
+ super.writeToNBT(compound);
+ writeInventoryToNBT(compound);
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound compound)
+ {
+ super.readFromNBT(compound);
+ readInventoryFromNBT(compound);
+ }
+
+ public void readInventoryFromNBT(NBTTagCompound tags) {
+ NBTTagList nbttaglist = tags.getTagList("Items", Constants.NBT.TAG_COMPOUND);
+ for (int iter = 0; iter < nbttaglist.tagCount(); iter++) {
+ NBTTagCompound tagList = (NBTTagCompound) nbttaglist.getCompoundTagAt(iter);
+ byte slotID = tagList.getByte("Slot");
+ if (slotID >= 0 && slotID < inventory.length) {
+ inventory[slotID] = ItemStack.loadItemStackFromNBT(tagList);
+ }
+ }
+ }
+
+
+public void writeInventoryToNBT(NBTTagCompound tags) {
+ NBTTagList nbttaglist = new NBTTagList();
+ for (int iter = 0; iter < inventory.length; iter++) {
+ if (inventory[iter] != null) {
+ NBTTagCompound tagList = new NBTTagCompound();
+ tagList.setByte("Slot", (byte) iter);
+ inventory[iter].writeToNBT(tagList);
+ nbttaglist.appendTag(tagList);
+ }
+ }
+
+ tags.setTag("Items", nbttaglist);
+ }
+}