68 lines
2.3 KiB
Java
68 lines
2.3 KiB
Java
package mods.tinker.tconstruct.container;
|
|
|
|
import java.util.Random;
|
|
|
|
import mods.tinker.tconstruct.library.ToolCore;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.inventory.IInventory;
|
|
import net.minecraft.inventory.Slot;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
|
|
public class SlotTool extends Slot
|
|
{
|
|
/** The player that is using the GUI where this slot resides. */
|
|
private EntityPlayer player;
|
|
Random random = new Random();
|
|
|
|
public SlotTool(EntityPlayer entityplayer, IInventory builder, int par3, int par4, int par5)
|
|
{
|
|
super(builder, par3, par4, par5);
|
|
this.player = entityplayer;
|
|
}
|
|
|
|
/**
|
|
* Check if the stack is a valid item for this slot. Always true beside for the armor slots.
|
|
*/
|
|
public boolean isItemValid(ItemStack stack)
|
|
{
|
|
return false;
|
|
//return stack.getItem() instanceof ToolCore;
|
|
}
|
|
|
|
public void onPickupFromSlot(EntityPlayer par1EntityPlayer, ItemStack stack)
|
|
{
|
|
this.onCrafting(stack);
|
|
//stack.setUnlocalizedName("\u00A7f" + toolName);
|
|
super.onPickupFromSlot(par1EntityPlayer, stack);
|
|
}
|
|
|
|
/**
|
|
* the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood. Typically increases an
|
|
* internal count then calls onCrafting(item).
|
|
*/
|
|
protected void onCrafting(ItemStack stack, int par2)
|
|
{
|
|
//this.field_75228_b += par2;
|
|
this.onCrafting(stack);
|
|
}
|
|
|
|
/**
|
|
* the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood.
|
|
*/
|
|
protected void onCrafting(ItemStack stack)
|
|
{
|
|
NBTTagCompound tags = stack.getTagCompound();
|
|
if (!tags.getCompoundTag("InfiTool").hasKey("Built"))
|
|
{
|
|
tags.getCompoundTag("InfiTool").setBoolean("Built", true);
|
|
Boolean full = (inventory.getStackInSlot(2) != null || inventory.getStackInSlot(3) != null);
|
|
for (int i = 1; i <= 3; i++)
|
|
inventory.decrStackSize(i, 1);
|
|
if (!player.worldObj.isRemote && full )
|
|
//player.worldObj.playSoundEffect(player.posX, player.posY, player.posZ, "crafting.saw", 0.5F, 0.4F / (random.nextFloat() * 0.4F + 0.8F));
|
|
player.worldObj.playAuxSFX(1021, (int)player.posX, (int)player.posY, (int)player.posZ, 0);
|
|
}
|
|
}
|
|
}
|