Files
Chisel/src/main/java/com/cricketcraft/chisel/inventory/SlotChiselSelection.java
T

105 lines
3.6 KiB
Java
Raw Normal View History

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;
import net.minecraft.util.MathHelper;
2014-10-27 16:26:14 -04:00
import com.cricketcraft.chisel.Chisel;
2015-01-09 01:50:32 -05:00
import com.cricketcraft.chisel.api.IChiselItem;
import com.cricketcraft.chisel.carving.Carving;
2015-01-18 14:40:39 -05:00
import com.cricketcraft.chisel.utils.General;
import com.cricketcraft.chisel.utils.GeneralClient;
2014-12-16 22:27:44 +00:00
public class SlotChiselSelection extends Slot {
2014-10-27 16:26:14 -04: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
this.container = container;
selInventory = inv;
}
2014-10-27 16:26:14 -04:00
@Override
public boolean isItemValid(ItemStack itemstack) {
return false;
}
2014-10-27 16:26:14 -04:00
@Override
public boolean canTakeStack(EntityPlayer par1EntityPlayer) {
if (container.finished)
return false;
2014-10-27 16:26:14 -04:00
return par1EntityPlayer.inventory.getItemStack() == null;
}
2014-10-27 16:26:14 -04: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
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
selInventory.setInventorySlotContents(InventoryChiselSelection.normalSlots, crafted);
} else {
putStack(new ItemStack(itemstack.getItem(), itemstack.stackSize, itemstack.getItemDamage()));
2014-10-27 16:26:14 -04:00
player.inventory.setItemStack(null);
2014-10-27 16:26:14 -04:00
if (selInventory.inventory[InventoryChiselSelection.normalSlots] == null)
return;
2014-10-27 16:26:14 -04: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-09 01:50:32 -05:00
if (((IChiselItem) container.chisel.getItem()).onChisel(player.worldObj, player.inventory, player.inventory.currentItem, container.chisel, General.getVariation(crafted))) {
container.chisel.damageItem(1, player);
if (container.chisel.stackSize <= 0) {
player.inventory.mainInventory[player.inventory.currentItem] = null;
}
}
2014-10-27 16:26:14 -04:00
if (player.worldObj.isRemote) {
String sound = Carving.chisel.getVariationSound(crafted.getItem(), crafted.getItemDamage());
GeneralClient.playChiselSound(player.worldObj, MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ), sound);
}
/*
* 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
}