Class InventoryComponent<T extends IComponentHarness>

java.lang.Object
net.minecraftforge.items.ItemStackHandler
com.hrznstudio.titanium.component.inventory.InventoryComponent<T>
All Implemented Interfaces:
IScreenAddonProvider, IContainerAddonProvider, net.minecraftforge.common.util.INBTSerializable<net.minecraft.nbt.CompoundTag>, net.minecraftforge.items.IItemHandler, net.minecraftforge.items.IItemHandlerModifiable
Direct Known Subclasses:
SidedInventoryComponent

public class InventoryComponent<T extends IComponentHarness> extends net.minecraftforge.items.ItemStackHandler implements IScreenAddonProvider, IContainerAddonProvider
  • Constructor Details

    • InventoryComponent

      public InventoryComponent(String name, int xPos, int yPos, int size)
  • Method Details

    • setRange

      public InventoryComponent<T> setRange(int x, int y)
      Defines how many slots/row and slots/column
      Parameters:
      x - How many slots there are horizontally
      y - How many slots there are vertically
      Returns:
      itself
    • setComponentHarness

      public InventoryComponent<T> setComponentHarness(T componentHarness)
      Sets the tile where the inventory is to allow markForUpdate automatically
      Parameters:
      componentHarness - the object which owns this component
      Returns:
      itself
    • setInputFilter

      public InventoryComponent<T> setInputFilter(BiPredicate<net.minecraft.world.item.ItemStack,Integer> predicate)
      Sets the predicate input filter to filter what items go into which slot.
      Parameters:
      predicate - A bi predicate where the itemstack is the item trying to be inserted and the slot where is trying to be inserted to
      Returns:
      itself
    • setOutputFilter

      public InventoryComponent<T> setOutputFilter(BiPredicate<net.minecraft.world.item.ItemStack,Integer> predicate)
      Sets the predicate output filter to filter what can be extracted from which slot.
      Parameters:
      predicate - A bi predicate where the itemstack is the item trying to be extracted and the slot where is trying to be extracted
      Returns:
      itself
    • insertItem

      @Nonnull public net.minecraft.world.item.ItemStack insertItem(int slot, @Nonnull net.minecraft.world.item.ItemStack stack, boolean simulate)
      Specified by:
      insertItem in interface net.minecraftforge.items.IItemHandler
      Overrides:
      insertItem in class net.minecraftforge.items.ItemStackHandler
    • extractItem

      @Nonnull public net.minecraft.world.item.ItemStack extractItem(int slot, int amount, boolean simulate)
      Specified by:
      extractItem in interface net.minecraftforge.items.IItemHandler
      Overrides:
      extractItem in class net.minecraftforge.items.ItemStackHandler
    • onContentsChanged

      protected void onContentsChanged(int slot)
      Overrides:
      onContentsChanged in class net.minecraftforge.items.ItemStackHandler
    • getName

      public String getName()
    • getXPos

      public int getXPos()
    • setXPos

      public void setXPos(int xPos)
    • getYPos

      public int getYPos()
    • setYPos

      public void setYPos(int yPos)
    • getXSize

      public int getXSize()
    • getYSize

      public int getYSize()
    • getComponentHarness

      public T getComponentHarness()
    • getInsertPredicate

      public BiPredicate<net.minecraft.world.item.ItemStack,Integer> getInsertPredicate()
    • getExtractPredicate

      public BiPredicate<net.minecraft.world.item.ItemStack,Integer> getExtractPredicate()
    • getOnSlotChanged

      public BiConsumer<net.minecraft.world.item.ItemStack,Integer> getOnSlotChanged()
    • setColorGuiEnabled

      public InventoryComponent<T> setColorGuiEnabled(boolean colorGuiEnabled)
    • isColorGuiEnabled

      public boolean isColorGuiEnabled()
    • getSlotToColorRenderMap

      public Map<Integer,Color> getSlotToColorRenderMap()
    • setOnSlotChanged

      public InventoryComponent<T> setOnSlotChanged(BiConsumer<net.minecraft.world.item.ItemStack,Integer> onSlotChanged)
      Sets the predicate slot changed that gets triggered when a slot is changed.
      Parameters:
      onSlotChanged - A bi predicate where the itemstack and slot changed
      Returns:
      itself
    • setSlotLimit

      public InventoryComponent<T> setSlotLimit(int slot, int limit)
      Sets the limit amount for a specific slot, this limit has priority instead of the slot limit for all the slots
      Parameters:
      slot - The slot to set the limit to
      limit - The limit for the slot
      Returns:
      itself
    • setSlotToItemStackRender

      public InventoryComponent<T> setSlotToItemStackRender(int slot, net.minecraft.world.item.ItemStack stack)
      Parameters:
      slot - The slot to render the stack in
      stack - The Itemstack to render in the slot
      Returns:
      itself
    • setSlotToColorRender

      public InventoryComponent<T> setSlotToColorRender(int slot, int color)
      Parameters:
      slot - Slot which color should be set.
      color - The color of the slot
      Returns:
      Returns the inventorycomponent
    • setSlotToColorRender

      public InventoryComponent<T> setSlotToColorRender(int slot, net.minecraft.world.item.DyeColor color)
      Parameters:
      slot - Slot which color should be set.
      color - The color of the slot
      Returns:
      Returns the inventorycomponent
    • setSlotToColorRender

      public InventoryComponent<T> setSlotToColorRender(int slot, Color color)
      Parameters:
      slot - Slot which color should be set.
      color - The color of the slot
      Returns:
      Returns the inventorycomponent
    • getItemStackForSlotRendering

      public net.minecraft.world.item.ItemStack getItemStackForSlotRendering(int slot)
      Parameters:
      slot - Slot to get the Render Stack for
      Returns:
      Returns the Itemstack to be rendered
    • getColorForSlotRendering

      public Color getColorForSlotRendering(int slot)
      Parameters:
      slot - Slot to get the Render Color for
      Returns:
      Returns the Color to be rendered
    • setSlotLimit

      public InventoryComponent<T> setSlotLimit(int limit)
      Sets the default limit for all the slots
      Parameters:
      limit - The default limit for all the slot that don't have specific limit
      Returns:
      itself
    • getSlotVisiblePredicate

      public Predicate<Integer> getSlotVisiblePredicate()
      Gets the predicate to check if a slot is enabled
      Returns:
      predicate
    • setSlotVisiblePredicate

      public InventoryComponent<T> setSlotVisiblePredicate(Predicate<Integer> slotVisiblePredicate)
      Sets the slot enabled predicate that allows to disable/enable slots
      Parameters:
      slotVisiblePredicate - a int predicate that checks slot id
      Returns:
      itself
    • getSlotLimit

      public int getSlotLimit(int slot)
      Specified by:
      getSlotLimit in interface net.minecraftforge.items.IItemHandler
      Overrides:
      getSlotLimit in class net.minecraftforge.items.ItemStackHandler
    • getSlotPosition

      public Function<Integer,org.apache.commons.lang3.tuple.Pair<Integer,Integer>> getSlotPosition()
    • setSlotPosition

      public InventoryComponent<T> setSlotPosition(Function<Integer,org.apache.commons.lang3.tuple.Pair<Integer,Integer>> slotPosition)
    • isItemValid

      public boolean isItemValid(int slot, @Nonnull net.minecraft.world.item.ItemStack stack)
      Specified by:
      isItemValid in interface net.minecraftforge.items.IItemHandler
      Overrides:
      isItemValid in class net.minecraftforge.items.ItemStackHandler
    • getScreenAddons

      public List<IFactory<? extends IScreenAddon>> getScreenAddons()
      Specified by:
      getScreenAddons in interface IScreenAddonProvider
    • getContainerAddons

      public List<IFactory<? extends IContainerAddon>> getContainerAddons()
      Specified by:
      getContainerAddons in interface IContainerAddonProvider