package pneumaticCraft.common.inventory;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import pneumaticCraft.common.NBTUtil;
import pneumaticCraft.common.item.ItemPneumaticArmor;
import pneumaticCraft.common.network.NetworkHandler;
import pneumaticCraft.common.network.PacketUpdateSearchStack;

public class InventorySearch implements IInventory{

    private final ItemStack helmetStack;

    public InventorySearch(EntityPlayer player){
        helmetStack = player.getCurrentArmor(3);
    }

    @Override
    public int getSizeInventory(){
        return 1;
    }

    @Override
    public ItemStack getStackInSlot(int i){
        return ItemPneumaticArmor.getSearchedStack(helmetStack);
    }

    @Override
    public ItemStack decrStackSize(int i, int j){
        return null;
    }

    @Override
    public ItemStack getStackInSlotOnClosing(int i){
        return null;
    }

    @Override
    public void setInventorySlotContents(int i, ItemStack itemstack){
        NBTTagCompound tag = NBTUtil.getCompoundTag(helmetStack, "SearchStack");
        tag.setInteger("itemID", itemstack != null ? Item.getIdFromItem(itemstack.getItem()) : -1);
        tag.setInteger("itemDamage", itemstack != null ? itemstack.getItemDamage() : -1);
        NetworkHandler.sendToServer(new PacketUpdateSearchStack(itemstack));
    }

    @Override
    public String getInventoryName(){
        return "Inventory Search";
    }

    @Override
    public int getInventoryStackLimit(){
        return 1;
    }

    @Override
    public boolean isUseableByPlayer(EntityPlayer entityplayer){
        return true;
    }

    @Override
    public boolean isItemValidForSlot(int i, ItemStack itemstack){
        return false;
    }

    @Override
    public boolean hasCustomInventoryName(){
        return true;
    }

    @Override
    public void markDirty(){}

    @Override
    public void openInventory(){}

    @Override
    public void closeInventory(){}

}