Search in sources :

Example 1 with ItemSigilHolding

use of WayofTime.bloodmagic.item.sigil.ItemSigilHolding in project BloodMagic by WayofTime.

the class ContainerHolding method transferStackInSlot.

@Override
public ItemStack transferStackInSlot(EntityPlayer entityPlayer, int slotIndex) {
    ItemStack stack = ItemStack.EMPTY;
    Slot slotObject = inventorySlots.get(slotIndex);
    int slots = inventorySlots.size();
    if (slotObject != null && slotObject.getHasStack()) {
        ItemStack stackInSlot = slotObject.getStack();
        stack = stackInSlot.copy();
        if (stack.getItem() instanceof ISigil) {
            if (slotIndex < ItemSigilHolding.inventorySize) {
                if (!this.mergeItemStack(stackInSlot, ItemSigilHolding.inventorySize, slots, false)) {
                    return ItemStack.EMPTY;
                }
            } else if (!this.mergeItemStack(stackInSlot, 0, ItemSigilHolding.inventorySize, false)) {
                return ItemStack.EMPTY;
            }
        } else if (stack.getItem() instanceof ItemSigilHolding) {
            if (slotIndex < ItemSigilHolding.inventorySize + (PLAYER_INVENTORY_ROWS * PLAYER_INVENTORY_COLUMNS)) {
                if (!this.mergeItemStack(stackInSlot, ItemSigilHolding.inventorySize + (PLAYER_INVENTORY_ROWS * PLAYER_INVENTORY_COLUMNS), inventorySlots.size(), false)) {
                    return ItemStack.EMPTY;
                }
            } else if (!this.mergeItemStack(stackInSlot, ItemSigilHolding.inventorySize, ItemSigilHolding.inventorySize + (PLAYER_INVENTORY_ROWS * PLAYER_INVENTORY_COLUMNS), false)) {
                return ItemStack.EMPTY;
            }
        }
        if (stackInSlot.isEmpty()) {
            slotObject.putStack(ItemStack.EMPTY);
        } else {
            slotObject.onSlotChanged();
        }
        if (stackInSlot.getCount() == stack.getCount()) {
            return ItemStack.EMPTY;
        }
        slotObject.onTake(player, stackInSlot);
    }
    return stack;
}
Also used : Slot(net.minecraft.inventory.Slot) ItemStack(net.minecraft.item.ItemStack) ISigil(WayofTime.bloodmagic.iface.ISigil) ItemSigilHolding(WayofTime.bloodmagic.item.sigil.ItemSigilHolding)

Example 2 with ItemSigilHolding

use of WayofTime.bloodmagic.item.sigil.ItemSigilHolding in project BloodMagic by WayofTime.

the class ClientHandler method onMouseEvent.

@SubscribeEvent
public static void onMouseEvent(MouseEvent event) {
    EntityPlayerSP player = Minecraft.getMinecraft().player;
    if (event.getDwheel() != 0 && player != null && player.isSneaking()) {
        ItemStack stack = player.getHeldItemMainhand();
        if (!stack.isEmpty()) {
            Item item = stack.getItem();
            if (item instanceof ItemSigilHolding) {
                cycleSigil(stack, player, event.getDwheel());
                event.setCanceled(true);
            }
        }
    }
}
Also used : Item(net.minecraft.item.Item) EntityPlayerSP(net.minecraft.client.entity.EntityPlayerSP) ItemStack(net.minecraft.item.ItemStack) ItemSigilHolding(WayofTime.bloodmagic.item.sigil.ItemSigilHolding) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Aggregations

ItemSigilHolding (WayofTime.bloodmagic.item.sigil.ItemSigilHolding)2 ItemStack (net.minecraft.item.ItemStack)2 ISigil (WayofTime.bloodmagic.iface.ISigil)1 EntityPlayerSP (net.minecraft.client.entity.EntityPlayerSP)1 Slot (net.minecraft.inventory.Slot)1 Item (net.minecraft.item.Item)1 SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)1