package gtPlusPlus.core.slots; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import gtPlusPlus.core.recipe.common.CI; public class SlotIntegratedCircuit extends Slot { public static Item mCircuitItem; private final short mCircuitLock; public SlotIntegratedCircuit(final IInventory inventory, final int slot, final int x, final int y) { this(Short.MAX_VALUE+1, inventory, slot, x, y); } public SlotIntegratedCircuit(int mTypeLock, final IInventory inventory, final int slot, final int x, final int y) { super(inventory, slot, x, y); if (mTypeLock > Short.MAX_VALUE || mTypeLock < Short.MIN_VALUE) { mCircuitLock = -1; } else { mCircuitLock = (short) mTypeLock; } } @Override public synchronized boolean isItemValid(final ItemStack itemstack) { boolean isValid = false; if (mCircuitItem == null) { mCircuitItem = CI.getNumberedCircuit(0).getItem(); } if (mCircuitItem != null) { if (itemstack != null) { if (itemstack.getItem() == mCircuitItem) { if (mCircuitLock == -1) { isValid = true; } else { if (itemstack.getItemDamage() == mCircuitLock) { isValid = true; } } } } } return isValid; } @Override public int getSlotStackLimit() { return 64; } }