2014-04-29 10:54:20 +10:00
|
|
|
package codechicken.nei;
|
|
|
|
|
|
|
|
|
|
import net.minecraft.entity.player.InventoryPlayer;
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
|
|
|
|
|
|
import codechicken.lib.inventory.InventoryUtils;
|
|
|
|
|
import codechicken.nei.api.IInfiniteItemHandler;
|
2023-01-28 17:55:51 -08:00
|
|
|
|
2022-06-24 12:32:13 +01:00
|
|
|
public class InfiniteStackSizeHandler implements IInfiniteItemHandler {
|
2023-01-28 17:55:51 -08:00
|
|
|
|
2014-04-29 10:54:20 +10:00
|
|
|
@Override
|
2022-06-24 12:32:13 +01:00
|
|
|
public void onPickup(ItemStack heldItem) {
|
2014-04-29 10:54:20 +10:00
|
|
|
heldItem.stackSize = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
2022-06-24 12:32:13 +01:00
|
|
|
public void onPlaceInfinite(ItemStack heldItem) {
|
2014-04-29 10:54:20 +10:00
|
|
|
heldItem.stackSize = 111;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
2022-06-24 12:32:13 +01:00
|
|
|
public boolean canHandleItem(ItemStack stack) {
|
2014-04-29 10:54:20 +10:00
|
|
|
return !stack.isItemStackDamageable();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
2022-06-24 12:32:13 +01:00
|
|
|
public boolean isItemInfinite(ItemStack stack) {
|
2014-04-29 10:54:20 +10:00
|
|
|
return stack.stackSize == -1 || stack.stackSize > 100;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
2022-06-24 12:32:13 +01:00
|
|
|
public void replenishInfiniteStack(InventoryPlayer inv, int slotNo) {
|
2014-04-29 10:54:20 +10:00
|
|
|
ItemStack stack = inv.getStackInSlot(slotNo);
|
|
|
|
|
stack.stackSize = 111;
|
2022-06-24 12:32:13 +01:00
|
|
|
|
|
|
|
|
for (int i = 0; i < inv.getSizeInventory(); i++) {
|
|
|
|
|
if (i == slotNo) continue;
|
|
|
|
|
|
|
|
|
|
if (NEIServerUtils.areStacksSameType(stack, inv.getStackInSlot(i))) inv.setInventorySlotContents(i, null);
|
2014-04-29 10:54:20 +10:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
2022-06-24 12:32:13 +01:00
|
|
|
public ItemStack getInfiniteItem(ItemStack typeStack) {
|
2014-04-29 10:54:20 +10:00
|
|
|
return InventoryUtils.copyStack(typeStack, -1);
|
|
|
|
|
}
|
|
|
|
|
}
|