Class PlatformRenderContext<T extends me.devnatan.inventoryframework.component.ItemComponentBuilder<T,C>,C extends me.devnatan.inventoryframework.context.IFContext>

java.lang.Object
me.devnatan.inventoryframework.state.DefaultStateValueHost
All Implemented Interfaces:
Iterable<me.devnatan.inventoryframework.component.Component>, me.devnatan.inventoryframework.component.ComponentContainer, me.devnatan.inventoryframework.context.IFConfinedContext, me.devnatan.inventoryframework.context.IFContext, me.devnatan.inventoryframework.context.IFRenderContext, me.devnatan.inventoryframework.state.StateValueHost, me.devnatan.inventoryframework.VirtualView

public abstract class PlatformRenderContext<T extends me.devnatan.inventoryframework.component.ItemComponentBuilder<T,C>,C extends me.devnatan.inventoryframework.context.IFContext> extends PlatformConfinedContext implements me.devnatan.inventoryframework.context.IFRenderContext
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final PlatformView
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    PlatformRenderContext(@NotNull UUID id, @NotNull PlatformView root, @NotNull me.devnatan.inventoryframework.ViewConfig config, @NotNull me.devnatan.inventoryframework.ViewContainer container, @NotNull Map<String,me.devnatan.inventoryframework.Viewer> viewers, me.devnatan.inventoryframework.Viewer subject, Object initialData)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addComponent(me.devnatan.inventoryframework.component.Component arg0)
     
    final void
    addLayoutSlot(@NotNull me.devnatan.inventoryframework.internal.LayoutSlot layoutSlot)
     
    final void
    addViewer(me.devnatan.inventoryframework.Viewer arg0)
     
    final T
    Adds an item in the next available slot of this context's container.
    final void
    availableSlot(@NotNull BiConsumer<Integer,T> factory)
    Adds an item in the next available slot of this context's container.
    final void
     
    protected abstract T
    Creates a new PlatformRenderContext instance for the current platform.
    protected final T
    Creates a new platform builder instance and registers it.
    final T
    Sets an item in the first slot of this context's container.
    final List<BiFunction<Integer,Integer,me.devnatan.inventoryframework.component.ComponentFactory>>
     
    final @NotNull @UnmodifiableView List<me.devnatan.inventoryframework.component.ComponentFactory>
     
    List<me.devnatan.inventoryframework.component.Component>
     
    List<me.devnatan.inventoryframework.component.Component>
    getComponentsAt(int arg0)
     
    final @NotNull me.devnatan.inventoryframework.ViewConfig
     
    final @NotNull me.devnatan.inventoryframework.ViewContainer
     
    final @NotNull UUID
     
    final @NotNull Map<String,me.devnatan.inventoryframework.Viewer>
     
    final Object
     
    final String
     
    List<me.devnatan.inventoryframework.component.Component>
     
    final @NotNull List<me.devnatan.inventoryframework.internal.LayoutSlot>
     
    final me.devnatan.inventoryframework.Viewer
     
    final List<me.devnatan.inventoryframework.Viewer>
     
    final boolean
     
    final boolean
     
    final Iterator<me.devnatan.inventoryframework.component.Component>
     
    final T
    Sets an item in the last slot of this context's container.
    final T
    layoutSlot(char character)
    Defines the item that will represent a character provided in the context layout.
    final void
    layoutSlot(char character, @NotNull BiConsumer<Integer,T> factory)
    Defines the item that will represent a character provided in the context layout.
    final void
    openForPlayer(@NotNull Class<? extends me.devnatan.inventoryframework.RootView> other)
     
    final void
    openForPlayer(@NotNull Class<? extends me.devnatan.inventoryframework.RootView> other, Object initialData)
     
    void
    performClickInComponent(me.devnatan.inventoryframework.component.Component arg0, me.devnatan.inventoryframework.Viewer arg1, me.devnatan.inventoryframework.ViewContainer arg2, Object arg3, int arg4, boolean arg5)
     
    void
    removeComponent(me.devnatan.inventoryframework.component.Component arg0)
     
    final void
    removeViewer(me.devnatan.inventoryframework.Viewer arg0)
     
    void
    renderComponent(me.devnatan.inventoryframework.component.Component arg0)
     
    final void
     
    final T
    This API is experimental and is not subject to the general compatibility guarantees such API may be changed or may be removed completely in any further release.
    void
    setInitialData(Object initialData)
     
    final void
    This is an internal inventory-framework API that should not be used from outside of this library.
    final T
    slot(int slot)
    Adds an item to a specific slot in the context container.
    final T
    slot(int row, int column)
    Adds an item at the specific column and ROW (X, Y) in that context's container.
    (package private) final void
     
    (package private) final void
     
    final T
    Creates a new item builder without a specified slot.
    void
     
    void
    updateComponent(me.devnatan.inventoryframework.component.Component arg0, boolean arg1)
     
    final void
    updateTitleForPlayer(@NotNull String title)
     

    Methods inherited from class me.devnatan.inventoryframework.context.PlatformConfinedContext

    back, back, canBack

    Methods inherited from class me.devnatan.inventoryframework.state.DefaultStateValueHost

    getInternalStateValue, getRawStateValue, getStateValues, getUninitializedStateValue, initializeState, updateState, watchState

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface me.devnatan.inventoryframework.component.ComponentContainer

    getComponents, getInternalComponents

    Methods inherited from interface me.devnatan.inventoryframework.context.IFConfinedContext

    back, back, canBack

    Methods inherited from interface me.devnatan.inventoryframework.context.IFContext

    addComponent, addViewer, closeForEveryone, getComponentsAt, getInitialTitle, getRoot, getViewers, isActive, isEndless, isShared, openForEveryone, openForEveryone, performClickInComponent, removeComponent, removeViewer, renderComponent, resetTitleForEveryone, setActive, setEndless, update, updateComponent, updateTitleForEveryone

    Methods inherited from interface java.lang.Iterable

    forEach, iterator, spliterator

    Methods inherited from interface me.devnatan.inventoryframework.state.StateValueHost

    getInternalStateValue, getRawStateValue, getStateValues, getUninitializedStateValue, initializeState, updateState, watchState
  • Field Details

  • Constructor Details

    • PlatformRenderContext

      PlatformRenderContext(@NotNull @NotNull UUID id, @NotNull @NotNull PlatformView root, @NotNull @NotNull me.devnatan.inventoryframework.ViewConfig config, @NotNull @NotNull me.devnatan.inventoryframework.ViewContainer container, @NotNull @NotNull Map<String,me.devnatan.inventoryframework.Viewer> viewers, me.devnatan.inventoryframework.Viewer subject, Object initialData)
  • Method Details

    • unsetSlot

      @Experimental public final T unsetSlot()
      Creates a new item builder without a specified slot.

      This function is for creating items whose slot is set dynamically during item rendering.

      
       unsetSlot().onRender(render -> {
           render.setItem(...);
           render.setSlot(...);
       });
       

      This API is experimental and is not subject to the general compatibility guarantees such API may be changed or may be removed completely in any further release.

      Returns:
      An item builder to configure the item.
    • slot

      @NotNull public final T slot(int slot)
      Adds an item to a specific slot in the context container.
      Parameters:
      slot - The slot in which the item will be positioned.
      Returns:
      An item builder to configure the item.
    • slot

      @NotNull public final T slot(int row, int column)
      Adds an item at the specific column and ROW (X, Y) in that context's container.
      Parameters:
      row - The row (Y) in which the item will be positioned.
      column - The column (X) in which the item will be positioned.
      Returns:
      An item builder to configure the item.
    • firstSlot

      @NotNull public final T firstSlot()
      Sets an item in the first slot of this context's container.
      Returns:
      An item builder to configure the item.
    • lastSlot

      @NotNull public final T lastSlot()
      Sets an item in the last slot of this context's container.
      Returns:
      An item builder to configure the item.
    • availableSlot

      @NotNull public final T availableSlot()
      Adds an item in the next available slot of this context's container.
      Returns:
      An item builder to configure the item.
    • availableSlot

      public final void availableSlot(@NotNull @NotNull BiConsumer<Integer,T> factory)
      Adds an item in the next available slot of this context's container.
      
       availableSlot((index, builder) -> builder.withItem(...));
       
      Parameters:
      factory - A factory to create the item builder to configure the item. The first parameter is the iteration index of the available slot.
    • layoutSlot

      @NotNull public final T layoutSlot(char character)
      Defines the item that will represent a character provided in the context layout.
      Parameters:
      character - The layout character target.
      Returns:
      An item builder to configure the item.
    • layoutSlot

      public final void layoutSlot(char character, @NotNull @NotNull BiConsumer<Integer,T> factory)
      Defines the item that will represent a character provided in the context layout.
      
       layoutSlot('F', (index, builder) -> builder.withItem(...));
       
      Parameters:
      character - The layout character target.
    • resultSlot

      @Experimental @NotNull public final T resultSlot()

      This API is experimental and is not subject to the general compatibility guarantees such API may be changed or may be removed completely in any further release.

    • getId

      @NotNull public final @NotNull UUID getId()
      Specified by:
      getId in interface me.devnatan.inventoryframework.context.IFContext
    • getContainer

      @NotNull public final @NotNull me.devnatan.inventoryframework.ViewContainer getContainer()
      Specified by:
      getContainer in interface me.devnatan.inventoryframework.context.IFRenderContext
    • getConfig

      @NotNull public final @NotNull me.devnatan.inventoryframework.ViewConfig getConfig()
      Specified by:
      getConfig in interface me.devnatan.inventoryframework.context.IFContext
    • getIndexedViewers

      @NotNull public final @NotNull Map<String,me.devnatan.inventoryframework.Viewer> getIndexedViewers()
      Specified by:
      getIndexedViewers in interface me.devnatan.inventoryframework.context.IFContext
    • getInitialData

      public final Object getInitialData()
      Specified by:
      getInitialData in interface me.devnatan.inventoryframework.context.IFContext
    • setInitialData

      public void setInitialData(Object initialData)
      Specified by:
      setInitialData in interface me.devnatan.inventoryframework.context.IFContext
    • getViewer

      public final me.devnatan.inventoryframework.Viewer getViewer()
      Specified by:
      getViewer in interface me.devnatan.inventoryframework.context.IFConfinedContext
      Specified by:
      getViewer in class PlatformConfinedContext
    • getComponentFactories

      @NotNull public final @NotNull @UnmodifiableView List<me.devnatan.inventoryframework.component.ComponentFactory> getComponentFactories()
      Specified by:
      getComponentFactories in interface me.devnatan.inventoryframework.context.IFRenderContext
    • getLayoutSlots

      @NotNull public final @NotNull List<me.devnatan.inventoryframework.internal.LayoutSlot> getLayoutSlots()
      Specified by:
      getLayoutSlots in interface me.devnatan.inventoryframework.context.IFRenderContext
    • addLayoutSlot

      public final void addLayoutSlot(@NotNull @NotNull me.devnatan.inventoryframework.internal.LayoutSlot layoutSlot)
      Specified by:
      addLayoutSlot in interface me.devnatan.inventoryframework.context.IFRenderContext
    • getAvailableSlotFactories

      public final List<BiFunction<Integer,Integer,me.devnatan.inventoryframework.component.ComponentFactory>> getAvailableSlotFactories()
      Specified by:
      getAvailableSlotFactories in interface me.devnatan.inventoryframework.context.IFRenderContext
    • closeForPlayer

      public final void closeForPlayer()
      Specified by:
      closeForPlayer in interface me.devnatan.inventoryframework.context.IFConfinedContext
      Overrides:
      closeForPlayer in class PlatformConfinedContext
    • openForPlayer

      public final void openForPlayer(@NotNull @NotNull Class<? extends me.devnatan.inventoryframework.RootView> other)
      Specified by:
      openForPlayer in interface me.devnatan.inventoryframework.context.IFConfinedContext
      Overrides:
      openForPlayer in class PlatformConfinedContext
    • openForPlayer

      public final void openForPlayer(@NotNull @NotNull Class<? extends me.devnatan.inventoryframework.RootView> other, Object initialData)
      Specified by:
      openForPlayer in interface me.devnatan.inventoryframework.context.IFConfinedContext
      Overrides:
      openForPlayer in class PlatformConfinedContext
    • updateTitleForPlayer

      public final void updateTitleForPlayer(@NotNull @NotNull String title)
      Specified by:
      updateTitleForPlayer in interface me.devnatan.inventoryframework.context.IFConfinedContext
      Overrides:
      updateTitleForPlayer in class PlatformConfinedContext
    • resetTitleForPlayer

      public final void resetTitleForPlayer()
      Specified by:
      resetTitleForPlayer in interface me.devnatan.inventoryframework.context.IFConfinedContext
      Overrides:
      resetTitleForPlayer in class PlatformConfinedContext
    • isRendered

      public final boolean isRendered()
      Specified by:
      isRendered in interface me.devnatan.inventoryframework.context.IFRenderContext
    • setRendered

      @Internal public final void setRendered()
      This is an internal inventory-framework API that should not be used from outside of this library. No compatibility guarantees are provided.
    • createBuilder

      protected abstract T createBuilder()
      Creates a new PlatformRenderContext instance for the current platform.
      Returns:
      A new platform builder instance.
    • createRegisteredBuilder

      protected final T createRegisteredBuilder()
      Creates a new platform builder instance and registers it.
      Returns:
      A new registered platform builder instance.
    • getViewers

      @NotNull public final List<me.devnatan.inventoryframework.Viewer> getViewers()
      Specified by:
      getViewers in interface me.devnatan.inventoryframework.context.IFContext
    • addViewer

      public final void addViewer(@NotNull me.devnatan.inventoryframework.Viewer arg0)
      Specified by:
      addViewer in interface me.devnatan.inventoryframework.context.IFContext
    • removeViewer

      public final void removeViewer(@NotNull me.devnatan.inventoryframework.Viewer arg0)
      Specified by:
      removeViewer in interface me.devnatan.inventoryframework.context.IFContext
    • getInitialTitle

      @NotNull public final String getInitialTitle()
      Specified by:
      getInitialTitle in interface me.devnatan.inventoryframework.context.IFContext
    • getComponents

      @NotNull public List<me.devnatan.inventoryframework.component.Component> getComponents()
      Specified by:
      getComponents in interface me.devnatan.inventoryframework.component.ComponentContainer
    • getInternalComponents

      public List<me.devnatan.inventoryframework.component.Component> getInternalComponents()
      Specified by:
      getInternalComponents in interface me.devnatan.inventoryframework.component.ComponentContainer
    • getComponentsAt

      public List<me.devnatan.inventoryframework.component.Component> getComponentsAt(int arg0)
      Specified by:
      getComponentsAt in interface me.devnatan.inventoryframework.context.IFContext
    • addComponent

      public void addComponent(@NotNull me.devnatan.inventoryframework.component.Component arg0)
      Specified by:
      addComponent in interface me.devnatan.inventoryframework.context.IFContext
    • removeComponent

      public void removeComponent(@NotNull me.devnatan.inventoryframework.component.Component arg0)
      Specified by:
      removeComponent in interface me.devnatan.inventoryframework.context.IFContext
    • renderComponent

      public void renderComponent(@NotNull me.devnatan.inventoryframework.component.Component arg0)
      Specified by:
      renderComponent in interface me.devnatan.inventoryframework.context.IFContext
    • updateComponent

      public void updateComponent(@NotNull me.devnatan.inventoryframework.component.Component arg0, boolean arg1)
      Specified by:
      updateComponent in interface me.devnatan.inventoryframework.context.IFContext
    • performClickInComponent

      public void performClickInComponent(@NotNull me.devnatan.inventoryframework.component.Component arg0, @NotNull me.devnatan.inventoryframework.Viewer arg1, @NotNull me.devnatan.inventoryframework.ViewContainer arg2, Object arg3, int arg4, boolean arg5)
      Specified by:
      performClickInComponent in interface me.devnatan.inventoryframework.context.IFContext
    • update

      public void update()
      Specified by:
      update in interface me.devnatan.inventoryframework.context.IFContext
    • isShared

      public final boolean isShared()
      Specified by:
      isShared in interface me.devnatan.inventoryframework.context.IFContext
    • iterator

      @NotNull public final Iterator<me.devnatan.inventoryframework.component.Component> iterator()
      Specified by:
      iterator in interface Iterable<me.devnatan.inventoryframework.component.Component>
    • tryThrowDoNotWorkWithSharedContext

      final void tryThrowDoNotWorkWithSharedContext()
    • tryThrowDoNotWorkWithSharedContext

      final void tryThrowDoNotWorkWithSharedContext(String arg0)