Java Code Examples for net.minecraft.inventory.Slot#getSlotStackLimit()

The following examples show how to use net.minecraft.inventory.Slot#getSlotStackLimit() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SlotUtil.java    From GregTech with GNU Lesser General Public License v3.0 6 votes vote down vote up
private static void adjustPhantomSlot(Slot slot, int mouseButton, ClickType clickTypeIn) {
    ItemStack stackSlot = slot.getStack();
    int stackSize;
    if (clickTypeIn == ClickType.QUICK_MOVE) {
        stackSize = mouseButton == 0 ? (stackSlot.getCount() + 1) / 2 : stackSlot.getCount() * 2;
    } else {
        stackSize = mouseButton == 0 ? stackSlot.getCount() - 1 : stackSlot.getCount() + 1;
    }

    if (stackSize > slot.getSlotStackLimit()) {
        stackSize = slot.getSlotStackLimit();
    }

    stackSlot.setCount(stackSize);

    slot.putStack(stackSlot);
}
 
Example 2
Source File: ContainerBase.java    From Signals with GNU General Public License v3.0 6 votes vote down vote up
protected void adjustPhantomSlot(Slot slot, int mouseButton, int modifier){

        if(!((IPhantomSlot)slot).canAdjust()) {
            return;
        }
        ItemStack stackSlot = slot.getStack();
        int stackSize;
        if(modifier == 1) {
            stackSize = mouseButton == 0 ? (stackSlot.getCount() + 1) / 2 : stackSlot.getCount() * 2;
        } else {
            stackSize = mouseButton == 0 ? stackSlot.getCount() - 1 : stackSlot.getCount() + 1;
        }

        if(stackSize > slot.getSlotStackLimit()) {
            stackSize = slot.getSlotStackLimit();
        }

        stackSlot.setCount(stackSize);
    }
 
Example 3
Source File: ContainerLogistics.java    From PneumaticCraft with GNU General Public License v3.0 6 votes vote down vote up
@Override
public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2){

    Slot var4 = (Slot)inventorySlots.get(par2);

    if(par2 >= 27 && var4 != null && var4.getHasStack()) {
        ItemStack var5 = var4.getStack();
        for(int i = 0; i < 27; i++) {
            Slot slot = (Slot)inventorySlots.get(i);
            if(!slot.getHasStack()) {
                slot.putStack(var5.copy());
                slot.getStack().stackSize = slot.getSlotStackLimit();
                break;
            }
        }
    }

    return null;
}
 
Example 4
Source File: ContainerPneumaticBase.java    From PneumaticCraft with GNU General Public License v3.0 6 votes vote down vote up
protected void adjustPhantomSlot(Slot slot, int mouseButton, int modifier){
    if(!((IPhantomSlot)slot).canAdjust()) {
        return;
    }
    ItemStack stackSlot = slot.getStack();
    int stackSize;
    if(modifier == 1) {
        stackSize = mouseButton == 0 ? (stackSlot.stackSize + 1) / 2 : stackSlot.stackSize * 2;
    } else {
        stackSize = mouseButton == 0 ? stackSlot.stackSize - 1 : stackSlot.stackSize + 1;
    }

    if(stackSize > slot.getSlotStackLimit()) {
        stackSize = slot.getSlotStackLimit();
    }

    stackSlot.stackSize = stackSize;

    if(stackSlot.stackSize <= 0) {
        slot.putStack((ItemStack)null);
    }
}
 
Example 5
Source File: ECContainer.java    From ExtraCells1 with MIT License 6 votes vote down vote up
protected void fillPhantomSlot(Slot slot, ItemStack stackHeld, int mouseButton, int modifier)
{
	if (!((SlotFake) slot).canAdjust())
	{
		return;
	}
	int stackSize = mouseButton == 0 ? stackHeld.stackSize : 1;
	if (stackSize > slot.getSlotStackLimit())
	{
		stackSize = slot.getSlotStackLimit();
	}
	ItemStack phantomStack = stackHeld.copy();
	phantomStack.stackSize = stackSize;

	slot.putStack(phantomStack);
}
 
Example 6
Source File: SlotUtil.java    From GregTech with GNU Lesser General Public License v3.0 5 votes vote down vote up
private static void fillPhantomSlot(Slot slot, ItemStack stackHeld, int mouseButton) {
    if (stackHeld.isEmpty()) {
        slot.putStack(ItemStack.EMPTY);
        return;
    }

    int stackSize = mouseButton == 0 ? stackHeld.getCount() : 1;
    if (stackSize > slot.getSlotStackLimit()) {
        stackSize = slot.getSlotStackLimit();
    }
    ItemStack phantomStack = stackHeld.copy();
    phantomStack.setCount(stackSize);

    slot.putStack(phantomStack);
}
 
Example 7
Source File: ContainerBase.java    From Signals with GNU General Public License v3.0 5 votes vote down vote up
protected void fillPhantomSlot(Slot slot, ItemStack stackHeld, int mouseButton, int modifier){

        if(!((IPhantomSlot)slot).canAdjust()) {
            return;
        }
        int stackSize = mouseButton == 0 ? stackHeld.getCount() : 1;
        if(stackSize > slot.getSlotStackLimit()) {
            stackSize = slot.getSlotStackLimit();
        }
        ItemStack phantomStack = stackHeld.copy();
        phantomStack.setCount(stackSize);

        slot.putStack(phantomStack);
    }
 
Example 8
Source File: FastTransferManager.java    From NotEnoughItems with MIT License 5 votes vote down vote up
public void retrieveItem(GuiContainer window, int toSlot) {
    Slot slot = window.inventorySlots.getSlot(toSlot);
    ItemStack slotStack = slot.getStack();
    if (slotStack.isEmpty() || slotStack.getCount() == slot.getSlotStackLimit() || slotStack.getCount() == slotStack.getMaxStackSize()) {
        return;
    }

    generateSlotMap(window.inventorySlots, slotStack);

    Integer destZone = slotZoneMap.get(toSlot);
    if (destZone == null)//slots that don't accept
    {
        return;
    }

    int firstZoneSlot = findShiftClickDestinationSlot(window.inventorySlots, toSlot);
    int firstZone = -1;
    if (firstZoneSlot != -1) {
        Integer integer = slotZoneMap.get(firstZoneSlot);
        if (integer != null) {
            firstZone = integer;
            if (retrieveItemFromZone(window, firstZone, toSlot)) {
                return;
            }
        }
    }

    for (int zone = 0; zone < slotZones.size(); zone++) {
        if (zone == destZone || zone == firstZone) {
            continue;
        }

        if (retrieveItemFromZone(window, zone, toSlot)) {
            return;
        }
    }

    retrieveItemFromZone(window, destZone, toSlot);
}
 
Example 9
Source File: FastTransferManager.java    From NotEnoughItems with MIT License 5 votes vote down vote up
public void retrieveItem(GuiContainer window, int toSlot) {
    Slot slot = window.inventorySlots.getSlot(toSlot);
    ItemStack slotStack = slot.getStack();
    if (slotStack == null ||
            slotStack.stackSize == slot.getSlotStackLimit() ||
            slotStack.stackSize == slotStack.getMaxStackSize())
        return;

    generateSlotMap(window.inventorySlots, slotStack);

    Integer destZone = slotZoneMap.get(toSlot);
    if (destZone == null)//slots that don't accept
        return;

    int firstZoneSlot = findShiftClickDestinationSlot(window.inventorySlots, toSlot);
    int firstZone = -1;
    if (firstZoneSlot != -1) {
        Integer integer = slotZoneMap.get(firstZoneSlot);
        if (integer != null) {
            firstZone = integer;
            if (retrieveItemFromZone(window, firstZone, toSlot))
                return;
        }
    }

    for (int zone = 0; zone < slotZones.size(); zone++) {
        if (zone == destZone || zone == firstZone)
            continue;

        if (retrieveItemFromZone(window, zone, toSlot))
            return;
    }

    retrieveItemFromZone(window, destZone, toSlot);
}
 
Example 10
Source File: ContainerPneumaticBase.java    From PneumaticCraft with GNU General Public License v3.0 5 votes vote down vote up
protected void fillPhantomSlot(Slot slot, ItemStack stackHeld, int mouseButton, int modifier){
    if(!((IPhantomSlot)slot).canAdjust()) {
        return;
    }
    int stackSize = mouseButton == 0 ? stackHeld.stackSize : 1;
    if(stackSize > slot.getSlotStackLimit()) {
        stackSize = slot.getSlotStackLimit();
    }
    ItemStack phantomStack = stackHeld.copy();
    phantomStack.stackSize = stackSize;

    slot.putStack(phantomStack);
}
 
Example 11
Source File: ECContainer.java    From ExtraCells1 with MIT License 5 votes vote down vote up
protected void adjustPhantomSlot(Slot slot, int mouseButton, int modifier)
{
	if (!((SlotFake) slot).canAdjust())
	{
		return;
	}
	ItemStack stackSlot = slot.getStack();
	int stackSize;
	if (modifier == 1)
	{
		stackSize = mouseButton == 0 ? (stackSlot.stackSize + 1) / 2 : stackSlot.stackSize * 2;
	} else
	{
		stackSize = mouseButton == 0 ? stackSlot.stackSize - 1 : stackSlot.stackSize + 1;
	}

	if (stackSize > slot.getSlotStackLimit())
	{
		stackSize = slot.getSlotStackLimit();
	}

	stackSlot.stackSize = stackSize;

	if (stackSlot.stackSize <= 0)
	{
		slot.putStack((ItemStack) null);
	}
}
 
Example 12
Source File: ContainerEnderUtilities.java    From enderutilities with GNU Lesser General Public License v3.0 4 votes vote down vote up
/**
 * Returns the maximum allowed stack size, based on the given ItemStack and the inventory's max stack size.
 */
protected int getMaxStackSizeFromSlotAndStack(Slot slot, ItemStack stack)
{
    return stack.isEmpty() == false ? Math.min(slot.getItemStackLimit(stack), stack.getMaxStackSize()) : slot.getSlotStackLimit();
}