Files
TinkersConstruct/src/main/java/tconstruct/tools/gui/ChestSlot.java
T

60 lines
1.8 KiB
Java
Raw Normal View History

package tconstruct.tools.gui;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ChestSlot extends Slot {
/*
* A Slot, used for adjacent Chest Inventories, that can be disabled.
*/
public boolean enabled = true;
private int accessSide;
private int visualIndex;
public ChestSlot(IInventory inventory, int index, int visualIndex, int xPosition, int yPosition, int accessSide) {
super(inventory, index, xPosition, yPosition);
this.accessSide = accessSide;
this.visualIndex = visualIndex;
}
@SideOnly(Side.CLIENT)
@Override
public boolean func_111238_b/*isEnabled*/() {
return enabled;
}
public int getVisualIndex() {
return visualIndex;
}
public void disable() {
enabled = false;
}
public void enable() {
enabled = true;
}
@Override
public boolean isItemValid(ItemStack itemStack) {
if (inventory instanceof ISidedInventory) {
ISidedInventory sided = (ISidedInventory) inventory;
return sided.canInsertItem(this.getSlotIndex(), itemStack, accessSide);
}
return inventory.isItemValidForSlot(this.getSlotIndex(), itemStack);
}
@Override
public boolean canTakeStack(EntityPlayer player) {
if (inventory instanceof ISidedInventory) {
ISidedInventory sided = (ISidedInventory) inventory;
return sided.canExtractItem(this.getSlotIndex(), this.getStack(), accessSide);
}
return super.canTakeStack(player);
}
}