Class LodestoneItemStackHandler
java.lang.Object
net.neoforged.neoforge.items.ItemStackHandler
team.lodestar.lodestone.modules.toolkit.inventory.LodestoneItemStackHandler
- All Implemented Interfaces:
net.neoforged.neoforge.common.util.INBTSerializable<net.minecraft.nbt.CompoundTag>,net.neoforged.neoforge.items.IItemHandler,net.neoforged.neoforge.items.IItemHandlerModifiable
- Direct Known Subclasses:
LodestoneItemStackBlockHandler
public class LodestoneItemStackHandler
extends net.neoforged.neoforge.items.ItemStackHandler
An extension of the ItemStackHandler class, designed to work well when several inventories are relevant in a singular context, such as a block that stores multiple types of items in different lists.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final intprotected final Runnableprotected final BiPredicate<LodestoneItemStackHandler, net.minecraft.world.item.ItemStack> protected ArrayList<net.minecraft.world.item.ItemStack> protected final intFields inherited from class net.neoforged.neoforge.items.ItemStackHandler
stacks -
Constructor Summary
ConstructorsConstructorDescriptionLodestoneItemStackHandler(int slotCount, int allowedItemSize, BiPredicate<LodestoneItemStackHandler, net.minecraft.world.item.ItemStack> inputPredicate, Runnable contentsChangeBehavior) -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()create(int slotCount) voiddumpItems(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos) voiddumpItems(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 pos) voidextractItem(net.minecraft.server.level.ServerLevel level) extractItem(net.minecraft.server.level.ServerLevel level, int amount) extractItem(net.minecraft.server.level.ServerLevel level, Function<net.minecraft.world.item.ItemStack, Integer> amount) intintBiPredicate<LodestoneItemStackHandler, net.minecraft.world.item.ItemStack> ArrayList<net.minecraft.world.item.ItemStack> intintgetSlotLimit(int slot) intgetSlots()net.minecraft.core.NonNullList<net.minecraft.world.item.ItemStack> insertItem(net.minecraft.server.level.ServerLevel level, net.minecraft.world.item.ItemStack stack) protected InventoryInteractionResultinsertItem(net.minecraft.server.level.ServerLevel level, net.minecraft.world.item.ItemStack stack, boolean simulate) final booleaninteract(net.minecraft.server.level.ServerLevel level, net.minecraft.world.entity.player.Player player, net.minecraft.world.InteractionHand hand) booleanisEmpty()booleanisItemValid(int slot, net.minecraft.world.item.ItemStack stack) voidload(net.minecraft.core.HolderLookup.Provider provider, net.minecraft.nbt.CompoundTag compound) voidload(net.minecraft.core.HolderLookup.Provider provider, net.minecraft.nbt.CompoundTag compound, String name) voidonContentsChanged(int slot) performInteraction(net.minecraft.server.level.ServerLevel level, net.minecraft.world.entity.player.Player player, net.minecraft.world.InteractionHand hand) performInteraction(net.minecraft.server.level.ServerLevel level, net.minecraft.world.entity.player.Player player, net.minecraft.world.item.ItemStack heldStack) protected InventoryInteractionResultprocessResult(net.minecraft.server.level.ServerLevel level, InventoryInteractionResultBuilder result) voidsave(net.minecraft.core.HolderLookup.Provider provider, net.minecraft.nbt.CompoundTag compound) voidsave(net.minecraft.core.HolderLookup.Provider provider, net.minecraft.nbt.CompoundTag compound, String name) voidMethods inherited from class net.neoforged.neoforge.items.ItemStackHandler
deserializeNBT, extractItem, getStackInSlot, getStackLimit, insertItem, onLoad, serializeNBT, setSize, setStackInSlot, validateSlotIndex
-
Field Details
-
slotCount
protected final int slotCount -
allowedItemSize
protected final int allowedItemSize -
inputPredicate
protected final BiPredicate<LodestoneItemStackHandler,net.minecraft.world.item.ItemStack> inputPredicate -
contentsChangeBehavior
-
nonEmptyItemStacks
-
-
Constructor Details
-
LodestoneItemStackHandler
public LodestoneItemStackHandler(int slotCount, int allowedItemSize, BiPredicate<LodestoneItemStackHandler, net.minecraft.world.item.ItemStack> inputPredicate, Runnable contentsChangeBehavior)
-
-
Method Details
-
create
-
getSlotCount
public int getSlotCount() -
getAllowedItemSize
public int getAllowedItemSize() -
getInputPredicate
public BiPredicate<LodestoneItemStackHandler,net.minecraft.world.item.ItemStack> getInputPredicate() -
getStacks
public net.minecraft.core.NonNullList<net.minecraft.world.item.ItemStack> getStacks() -
getNonEmptyStacks
-
getFilledSlotCount
public int getFilledSlotCount() -
isEmpty
public boolean isEmpty() -
onContentsChanged
public void onContentsChanged(int slot) - Overrides:
onContentsChangedin classnet.neoforged.neoforge.items.ItemStackHandler
-
getSlots
public int getSlots()- Specified by:
getSlotsin interfacenet.neoforged.neoforge.items.IItemHandler- Overrides:
getSlotsin classnet.neoforged.neoforge.items.ItemStackHandler
-
getSlotLimit
public int getSlotLimit(int slot) - Specified by:
getSlotLimitin interfacenet.neoforged.neoforge.items.IItemHandler- Overrides:
getSlotLimitin classnet.neoforged.neoforge.items.ItemStackHandler
-
isItemValid
public boolean isItemValid(int slot, @Nonnull net.minecraft.world.item.ItemStack stack) - Specified by:
isItemValidin interfacenet.neoforged.neoforge.items.IItemHandler- Overrides:
isItemValidin classnet.neoforged.neoforge.items.ItemStackHandler
-
updateCaches
public void updateCaches() -
ensureSize
public void ensureSize() -
load
public void load(net.minecraft.core.HolderLookup.Provider provider, net.minecraft.nbt.CompoundTag compound) -
load
public void load(net.minecraft.core.HolderLookup.Provider provider, net.minecraft.nbt.CompoundTag compound, String name) -
save
public void save(net.minecraft.core.HolderLookup.Provider provider, net.minecraft.nbt.CompoundTag compound) -
save
public void save(net.minecraft.core.HolderLookup.Provider provider, net.minecraft.nbt.CompoundTag compound, String name) -
clear
public void clear() -
dumpItems
public void dumpItems(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos) -
dumpItems
public void dumpItems(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 pos) -
interact
public final boolean interact(net.minecraft.server.level.ServerLevel level, net.minecraft.world.entity.player.Player player, net.minecraft.world.InteractionHand hand) -
performInteraction
public final Optional<InventoryInteractionResult> performInteraction(net.minecraft.server.level.ServerLevel level, net.minecraft.world.entity.player.Player player, net.minecraft.world.InteractionHand hand) -
performInteraction
public Optional<InventoryInteractionResult> performInteraction(net.minecraft.server.level.ServerLevel level, net.minecraft.world.entity.player.Player player, net.minecraft.world.item.ItemStack heldStack) -
extractItem
-
extractItem
public InventoryInteractionResult extractItem(net.minecraft.server.level.ServerLevel level, int amount) -
extractItem
public InventoryInteractionResult extractItem(net.minecraft.server.level.ServerLevel level, Function<net.minecraft.world.item.ItemStack, Integer> amount) -
insertItem
public InventoryInteractionResult insertItem(net.minecraft.server.level.ServerLevel level, net.minecraft.world.item.ItemStack stack) -
insertItem
protected InventoryInteractionResult insertItem(net.minecraft.server.level.ServerLevel level, net.minecraft.world.item.ItemStack stack, boolean simulate) -
processResult
protected InventoryInteractionResult processResult(net.minecraft.server.level.ServerLevel level, InventoryInteractionResultBuilder result)
-