java.lang.Object
com.github.stefvanschie.inventoryframework.pane.Pane
com.github.stefvanschie.inventoryframework.pane.PatternPane
All Implemented Interfaces:
Flippable, Rotatable

public class PatternPane extends Pane implements Flippable, Rotatable
A pattern pane allows you to specify a textual pattern and assign items to individual characters.
Since:
0.9.8
  • Constructor Details

    • PatternPane

      public PatternPane(int x, int y, int length, int height, @NotNull @NotNull Pane.Priority priority, @NotNull @NotNull Pattern pattern)
      Constructs a new pattern pane.
      Parameters:
      x - the upper left x coordinate of the pane
      y - the upper left y coordinate of the pane
      length - the length of the pane
      height - the height of the pane
      priority - the priority of the pane
      pattern - the pattern of the pane
      Throws:
      IllegalArgumentException - when the pane and pattern dimensions don't match
      Since:
      0.9.8
    • PatternPane

      public PatternPane(int length, int height, @NotNull @NotNull Pattern pattern)
      Constructs a new pattern pane, with no position.
      Parameters:
      length - the length of the pane
      height - the height of the pane
      pattern - the pattern of the pane
      Throws:
      IllegalArgumentException - when the pane and pattern dimensions don't match
      Since:
      0.9.8
    • PatternPane

      public PatternPane(int x, int y, int length, int height, @NotNull @NotNull Pattern pattern)
      Constructs a new pattern pane.
      Parameters:
      x - the upper left x coordinate of the pane
      y - the upper left y coordinate of the pane
      length - the length of the pane
      height - the height of the pane
      pattern - the pattern of the pane
      Throws:
      IllegalArgumentException - when the pane and pattern dimensions don't match
      Since:
      0.9.8
  • Method Details

    • display

      public void display(@NotNull @NotNull InventoryComponent inventoryComponent, int paneOffsetX, int paneOffsetY, int maxLength, int maxHeight)
      Description copied from class: Pane
      Has to set all the items in the right spot inside the inventory
      Specified by:
      display in class Pane
      Parameters:
      inventoryComponent - the inventory component in which the items should be displayed
      paneOffsetX - the pane's offset on the x axis
      paneOffsetY - the pane's offset on the y axis
      maxLength - the maximum length of the pane
      maxHeight - the maximum height of the pane
    • click

      public boolean click(@NotNull @NotNull Gui gui, @NotNull @NotNull InventoryComponent inventoryComponent, @NotNull @NotNull InventoryClickEvent event, int slot, int paneOffsetX, int paneOffsetY, int maxLength, int maxHeight)
      Description copied from class: Pane
      Called whenever there is being clicked on this pane
      Specified by:
      click in class Pane
      Parameters:
      gui - the gui in which was clicked
      inventoryComponent - the inventory component in which this pane resides
      event - the event that occurred while clicking on this item
      slot - the slot that was clicked in
      paneOffsetX - the pane's offset on the x axis
      paneOffsetY - the pane's offset on the y axis
      maxLength - the maximum length of the pane
      maxHeight - the maximum height of the pane
      Returns:
      whether the item was found or not
    • copy

      @NotNull @Contract(pure=true) public @NotNull PatternPane copy()
      Description copied from class: Pane
      Makes a copy of this pane and returns it. This makes a deep copy of the pane. This entails that the underlying panes and/or items will be copied as well. The returned pane will never be reference equal to the current pane.
      Overrides:
      copy in class Pane
      Returns:
      a copy of this pane
    • setRotation

      public void setRotation(int rotation)
      Description copied from interface: Rotatable
      Sets the rotation of this pane. The rotation is in degrees and can only be in increments of 90. Anything higher than 360, will be lowered to a value in between [0, 360) while maintaining the same rotational value. E.g. 450 degrees becomes 90 degrees, 1080 degrees becomes 0, etc. This method fails for any pane that has a length and height which are unequal.
      Specified by:
      setRotation in interface Rotatable
      Parameters:
      rotation - the rotation of this pane, must be divisible by 90.
    • getItems

      @NotNull public @NotNull Collection<GuiItem> getItems()
      Gets all the items in this pane and all underlying panes. The returned collection is not guaranteed to be mutable or to be a view of the underlying data. (So changes to the gui are not guaranteed to be visible in the returned value.) This only returns the items for which their binding also appears in the given pattern. An item bound to 'x', where 'x' does not appear in the pattern will not be returned.
      Specified by:
      getItems in class Pane
      Returns:
      the bounded and used items
      Since:
      0.9.8
    • setPattern

      public void setPattern(@NotNull @NotNull Pattern pattern)
      Overrides the pattern set on this pane.
      Parameters:
      pattern - the new pattern to set
      Throws:
      IllegalArgumentException - when the pane and pattern dimensions don't match
      Since:
      0.9.8
    • setHeight

      public void setHeight(int height)
      Description copied from class: Pane
      Set the height of this pane
      Overrides:
      setHeight in class Pane
      Parameters:
      height - the new height
    • setLength

      public void setLength(int length)
      Description copied from class: Pane
      Set the length of this pane
      Overrides:
      setLength in class Pane
      Parameters:
      length - the new length
    • bindItem

      public void bindItem(char character, @NotNull @NotNull GuiItem item)
      Binds a character to a specific item or if the character was already bound, this overwrites the previously binding with the provided one. To bind characters above the 16-bit range, see bindItem(int, GuiItem).
      Parameters:
      character - the character
      item - the item this represents
      Since:
      0.9.8
    • bindItem

      public void bindItem(int character, @NotNull @NotNull GuiItem item)
      Binds a character to a specific item or if the character was already bound, this overwrites the previously binding with the provided one.
      Parameters:
      character - the character
      item - the item this represents
      Since:
      0.9.8
      See Also:
    • clear

      public void clear()
      Description copied from class: Pane
      Clears the entire pane of any items/panes. Underlying panes will not be cleared.
      Specified by:
      clear in class Pane
    • flipHorizontally

      public void flipHorizontally(boolean flipHorizontally)
      Description copied from interface: Flippable
      Sets whether this pane should flip its items horizontally
      Specified by:
      flipHorizontally in interface Flippable
      Parameters:
      flipHorizontally - whether the pane should flip items horizontally
    • flipVertically

      public void flipVertically(boolean flipVertically)
      Description copied from interface: Flippable
      Sets whether this pane should flip its items vertically
      Specified by:
      flipVertically in interface Flippable
      Parameters:
      flipVertically - whether the pane should flip items vertically
    • getPanes

      @NotNull public @NotNull Collection<Pane> getPanes()
      Description copied from class: Pane
      Gets all the panes in this panes, including any child panes from other panes. The returned collection is not guaranteed to be mutable or to be a view of the underlying data. (So changes to the gui are not guaranteed to be visible in the returned value.)
      Specified by:
      getPanes in class Pane
      Returns:
      all panes
    • getPattern

      @NotNull @Contract(pure=true) public @NotNull Pattern getPattern()
      Gets the pattern.
      Returns:
      the pattern
      Since:
      0.9.8
    • isFlippedHorizontally

      public boolean isFlippedHorizontally()
      Description copied from interface: Flippable
      Gets whether this pane's items are flipped horizontally
      Specified by:
      isFlippedHorizontally in interface Flippable
      Returns:
      true if the items are flipped horizontally, false otherwise
    • isFlippedVertically

      public boolean isFlippedVertically()
      Description copied from interface: Flippable
      Gets whether this pane's items are flipped vertically
      Specified by:
      isFlippedVertically in interface Flippable
      Returns:
      true if the items are flipped vertically, false otherwise
    • getRotation

      public int getRotation()
      Description copied from interface: Rotatable
      Gets the rotation specified to this pane. If no rotation has been set, or if this pane is not capable of having a rotation, 0 is returned.
      Specified by:
      getRotation in interface Rotatable
      Returns:
      the rotation for this pane
    • load

      @NotNull public static @NotNull PatternPane load(@NotNull @NotNull Object instance, @NotNull @NotNull Element element)
      Loads a pattern pane from a given element
      Parameters:
      instance - the instance class
      element - the element
      Returns:
      the pattern pane