2014-12-15 00:11:48 +00:00
|
|
|
package com.cricketcraft.chisel.inventory;
|
|
|
|
|
|
2014-10-27 16:26:14 -04:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
|
import net.minecraft.inventory.IInventory;
|
|
|
|
|
import net.minecraft.inventory.Slot;
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
|
|
2014-12-16 22:27:44 +00:00
|
|
|
import com.cricketcraft.chisel.utils.General;
|
|
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
public class SlotChiselSelection extends Slot {
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
public SlotChiselSelection(ContainerChisel container, InventoryChiselSelection inv, IInventory iinventory, int i, int j, int k) {
|
|
|
|
|
super(iinventory, i, j, k);
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
this.container = container;
|
|
|
|
|
selInventory = inv;
|
|
|
|
|
}
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
@Override
|
|
|
|
|
public boolean isItemValid(ItemStack itemstack) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
@Override
|
|
|
|
|
public boolean canTakeStack(EntityPlayer par1EntityPlayer) {
|
|
|
|
|
if (container.finished)
|
|
|
|
|
return false;
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
return par1EntityPlayer.inventory.getItemStack() == null;
|
|
|
|
|
}
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
@Override
|
|
|
|
|
public void onPickupFromSlot(EntityPlayer player, ItemStack itemstack) {
|
|
|
|
|
ItemStack stack = player.inventory.getItemStack();
|
|
|
|
|
ItemStack crafted = selInventory.inventory[InventoryChiselSelection.normalSlots];
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
if (stack == null) {
|
|
|
|
|
if (crafted != null && crafted.stackSize > 0)
|
|
|
|
|
crafted.stackSize--;
|
|
|
|
|
if (crafted.stackSize == 0)
|
|
|
|
|
crafted = null;
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
selInventory.setInventorySlotContents(InventoryChiselSelection.normalSlots, crafted);
|
|
|
|
|
} else {
|
|
|
|
|
putStack(new ItemStack(itemstack.getItem(), itemstack.stackSize, itemstack.getItemDamage()));
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
player.inventory.setItemStack(null);
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
if (selInventory.inventory[InventoryChiselSelection.normalSlots] == null)
|
|
|
|
|
return;
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
player.inventory.setItemStack(new ItemStack(itemstack.getItem(), selInventory.inventory[InventoryChiselSelection.normalSlots].stackSize, itemstack.getItemDamage()));
|
|
|
|
|
selInventory.setInventorySlotContents(InventoryChiselSelection.normalSlots, null);
|
|
|
|
|
}
|
2014-10-27 16:26:14 -04:00
|
|
|
|
|
|
|
|
selInventory.updateItems();
|
|
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
String sound = container.carving.getVariationSound(itemstack.getItem(), itemstack.getItemDamage());
|
2014-10-27 16:26:14 -04:00
|
|
|
player.worldObj.playSoundAtEntity(player, sound, 0.3f + 0.7f * General.rand.nextFloat(), 0.6f + 0.4f * General.rand.nextFloat());
|
|
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
/*
|
|
|
|
|
* ItemStack stack=player.inventory.getItemStack();
|
|
|
|
|
*
|
|
|
|
|
* putStack(new ItemStack(itemstack.itemID, itemstack.stackSize,
|
|
|
|
|
* itemstack.getItemDamage()));
|
|
|
|
|
*
|
|
|
|
|
* super.onPickupFromSlot(player,itemstack);
|
|
|
|
|
*
|
|
|
|
|
* player.inventory.setItemStack(null);
|
|
|
|
|
*
|
|
|
|
|
* if(selInventory.items[InventoryChiselSelection.normalSlots]==null)
|
|
|
|
|
* return;
|
|
|
|
|
*
|
|
|
|
|
* player.inventory.setItemStack(new ItemStack(itemstack.itemID,
|
|
|
|
|
* selInventory.items[InventoryChiselSelection.normalSlots].stackSize,
|
|
|
|
|
* itemstack.getItemDamage()));
|
|
|
|
|
* selInventory.setInventorySlotContents(InventoryChiselSelection
|
|
|
|
|
* .normalSlots,null);
|
|
|
|
|
*
|
|
|
|
|
* selInventory.updateItems();
|
|
|
|
|
*
|
|
|
|
|
* String sound=Carving.chisel.getVariationSound(itemstack.itemID,
|
|
|
|
|
* itemstack.getItemDamage()); player.worldObj.playSoundAtEntity(player,
|
|
|
|
|
* sound, 0.3f + 0.7f * General.rand.nextFloat(), 0.6f + 0.4f *
|
|
|
|
|
* General.rand.nextFloat());
|
|
|
|
|
*/
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ContainerChisel container;
|
|
|
|
|
InventoryChiselSelection selInventory;
|
2014-10-27 16:26:14 -04:00
|
|
|
}
|