package micdoodle8.mods.galacticraft.core.inventory; import micdoodle8.mods.galacticraft.api.inventory.IInventoryGC; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.IChatComponent; public class InventoryExtended implements IInventoryGC { public ItemStack[] inventoryStacks = new ItemStack[11]; @Override public int getSizeInventory() { return this.inventoryStacks.length; } @Override public ItemStack getStackInSlot(int i) { return this.inventoryStacks[i]; } @Override public ItemStack decrStackSize(int i, int j) { if (this.inventoryStacks[i] != null) { ItemStack var3; if (this.inventoryStacks[i].stackSize <= j) { var3 = this.inventoryStacks[i]; this.inventoryStacks[i] = null; return var3; } else { var3 = this.inventoryStacks[i].splitStack(j); if (this.inventoryStacks[i].stackSize == 0) { this.inventoryStacks[i] = null; } return var3; } } else { return null; } } @Override public ItemStack removeStackFromSlot(int i) { return null; } @Override public void setInventorySlotContents(int i, ItemStack itemstack) { this.inventoryStacks[i] = itemstack; if (itemstack != null && itemstack.stackSize > this.getInventoryStackLimit()) { itemstack.stackSize = this.getInventoryStackLimit(); } } @Override public String getName() { return "Galacticraft Player Inventory"; } @Override public boolean hasCustomName() { return true; } @Override public int getInventoryStackLimit() { return 64; } @Override public void markDirty() { } @Override public boolean isUseableByPlayer(EntityPlayer entityplayer) { return true; } @Override public void openInventory(EntityPlayer player) { } @Override public void closeInventory(EntityPlayer player) { } @Override public boolean isItemValidForSlot(int i, ItemStack itemstack) { return false; } @Override public void dropExtendedItems(EntityPlayer player) { for (int i = 0; i < this.inventoryStacks.length; i++) { ItemStack stack = this.inventoryStacks[i]; if (stack != null) { player.dropPlayerItemWithRandomChoice(stack, true); } this.inventoryStacks[i] = null; } } // Backwards compatibility for old inventory public void readFromNBTOld(NBTTagList par1NBTTagList) { this.inventoryStacks = new ItemStack[11]; for (int i = 0; i < par1NBTTagList.tagCount(); ++i) { final NBTTagCompound nbttagcompound = par1NBTTagList.getCompoundTagAt(i); final int j = nbttagcompound.getByte("Slot") & 255; final ItemStack itemstack = ItemStack.loadItemStackFromNBT(nbttagcompound); if (itemstack != null) { if (j >= 200 && j < this.inventoryStacks.length + 200 - 1) { this.inventoryStacks[j - 200] = itemstack; } } } } public void readFromNBT(NBTTagList tagList) { this.inventoryStacks = new ItemStack[11]; for (int i = 0; i < tagList.tagCount(); ++i) { final NBTTagCompound nbttagcompound = tagList.getCompoundTagAt(i); final int j = nbttagcompound.getByte("Slot") & 255; final ItemStack itemstack = ItemStack.loadItemStackFromNBT(nbttagcompound); if (itemstack != null) { this.inventoryStacks[j] = itemstack; } } } public NBTTagList writeToNBT(NBTTagList tagList) { NBTTagCompound nbttagcompound; for (int i = 0; i < this.inventoryStacks.length; ++i) { if (this.inventoryStacks[i] != null) { nbttagcompound = new NBTTagCompound(); nbttagcompound.setByte("Slot", (byte) i); this.inventoryStacks[i].writeToNBT(nbttagcompound); tagList.appendTag(nbttagcompound); } } return tagList; } @Override public void copyInventory(IInventoryGC par1InventoryPlayer) { InventoryExtended toCopy = (InventoryExtended) par1InventoryPlayer; for (int i = 0; i < this.inventoryStacks.length; ++i) { this.inventoryStacks[i] = ItemStack.copyItemStack(toCopy.inventoryStacks[i]); } } @Override public int getField(int id) { return 0; } @Override public void setField(int id, int value) { } @Override public int getFieldCount() { return 0; } @Override public void clear() { } @Override public IChatComponent getDisplayName() { return null; } }