/*
 * This file ("SlotFilter.java") is part of the Actually Additions Mod for Minecraft.
 * It is created and owned by Ellpeck and distributed
 * under the Actually Additions License to be found at
 * http://ellpeck.de/actaddlicense/
 * View the source code at https://github.com/Ellpeck/ActuallyAdditions
 *
 * © 2016 Ellpeck
 */

package de.ellpeck.actuallyadditions.mod.inventory.slot;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;

public class SlotFilter extends Slot{

    public SlotFilter(IInventory inv, int slot, int x, int y){
        super(inv, slot, x, y);
    }

    /**
     * Gets called when the Filter Slot is clicked
     * Needs to be called in slotClick() in the Container!
     *
     * @param player The player
     * @return Nothing, as the Item didn't really get "transferred"
     */
    public ItemStack slotClick(EntityPlayer player){
        ItemStack heldStack = player.inventory.getItemStack();

        //Delete the stack in the inventory
        if(this.getStack() != null && heldStack == null){
            this.putStack(null);
        }
        //Put the current Item as a filter
        else{
            if(heldStack != null){
                ItemStack stack = heldStack.copy();
                stack.stackSize = 1;
                this.putStack(stack);
            }
        }

        return null;
    }

    @Override
    public boolean isItemValid(ItemStack stack){
        return false;
    }

    @Override
    public void putStack(ItemStack stack){
        ItemStack theStack = (stack != null ? stack.copy() : null);
        super.putStack(theStack);
    }

    @Override
    public boolean canTakeStack(EntityPlayer player){
        return false;
    }
}
