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 Details

    • slotCount

      protected final int slotCount
    • allowedItemSize

      protected final int allowedItemSize
    • inputPredicate

      protected final Predicate<net.minecraft.world.item.ItemStack> inputPredicate
    • contentsChangeBehavior

      protected final Runnable contentsChangeBehavior
    • nonEmptyItemStacks

      protected ArrayList<net.minecraft.world.item.ItemStack> nonEmptyItemStacks
  • Constructor Details

    • LodestoneItemStackHandler

      public LodestoneItemStackHandler(int slotCount, int allowedItemSize, Predicate<net.minecraft.world.item.ItemStack> inputPredicate, Runnable contentsChangeBehavior)
  • Method Details

    • create

      public static LodestoneItemStackHandlerBuilder create(int slotCount)
    • getSlotCount

      public int getSlotCount()
    • getAllowedItemSize

      public int getAllowedItemSize()
    • getInputPredicate

      public Predicate<net.minecraft.world.item.ItemStack> getInputPredicate()
    • getStacks

      public net.minecraft.core.NonNullList<net.minecraft.world.item.ItemStack> getStacks()
    • getNonEmptyStacks

      public ArrayList<net.minecraft.world.item.ItemStack> getNonEmptyStacks()
    • getFilledSlotCount

      public int getFilledSlotCount()
    • isEmpty

      public boolean isEmpty()
    • onContentsChanged

      public void onContentsChanged(int slot)
      Overrides:
      onContentsChanged in class net.neoforged.neoforge.items.ItemStackHandler
    • getSlots

      public int getSlots()
      Specified by:
      getSlots in interface net.neoforged.neoforge.items.IItemHandler
      Overrides:
      getSlots in class net.neoforged.neoforge.items.ItemStackHandler
    • getSlotLimit

      public int getSlotLimit(int slot)
      Specified by:
      getSlotLimit in interface net.neoforged.neoforge.items.IItemHandler
      Overrides:
      getSlotLimit in class net.neoforged.neoforge.items.ItemStackHandler
    • isItemValid

      public boolean isItemValid(int slot, @Nonnull net.minecraft.world.item.ItemStack stack)
      Specified by:
      isItemValid in interface net.neoforged.neoforge.items.IItemHandler
      Overrides:
      isItemValid in class net.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 boolean interact(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.InteractionHand hand)
    • extractItem

      public InventoryInteractionResult extractItem(net.minecraft.server.level.ServerLevel level, net.minecraft.world.entity.player.Player player)
    • insertItem

      public InventoryInteractionResult insertItem(net.minecraft.server.level.ServerLevel level, net.minecraft.world.item.ItemStack stack)
    • insertItem

      protected InventoryInteractionResult insertItem(net.minecraft.world.item.ItemStack stack, boolean simulate)
    • processResult

      protected InventoryInteractionResult processResult(InventoryInteractionResult result)