java.lang.Object
com.github.stefvanschie.inventoryframework.pane.Pane
com.github.stefvanschie.inventoryframework.pane.MasonryPane
All Implemented Interfaces:
Orientable

public class MasonryPane extends Pane implements Orientable
This pane holds panes and decides itself where every pane should go. It tries to put every pane in the top left corner and will move rightwards and downwards respectively if the top left corner is already in use. Depending on the order and size of the panes, this may leave empty spaces in certain spots. Do note however that the order of panes isn't always preserved. If there is a gap left in which a pane with a higher index can fit, it will be put there, even if there are panes with a lower index after it. Panes that do not fit will not be displayed.
Since:
0.3.0
  • Constructor Details

    • MasonryPane

      public MasonryPane(int x, int y, int length, int height, @NotNull @NotNull Pane.Priority priority)
    • MasonryPane

      public MasonryPane(int x, int y, int length, int height)
    • MasonryPane

      public MasonryPane(int length, int height)
  • 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 MasonryPane 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
    • addPane

      public void addPane(@NotNull @NotNull Pane pane)
      Adds a pane to this masonry pane
      Parameters:
      pane - the pane to add
      Since:
      0.3.0
    • getItems

      @NotNull public @NotNull Collection<GuiItem> getItems()
      Description copied from class: Pane
      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.)
      Specified by:
      getItems in class Pane
      Returns:
      all items
    • 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
    • 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
    • getOrientation

      @NotNull public @NotNull Orientable.Orientation getOrientation()
      Description copied from interface: Orientable
      Gets the orientation of this outline pane
      Specified by:
      getOrientation in interface Orientable
      Returns:
      the orientation
    • setOrientation

      public void setOrientation(@NotNull @NotNull Orientable.Orientation orientation)
      Description copied from interface: Orientable
      Sets the orientation of this outline pane
      Specified by:
      setOrientation in interface Orientable
      Parameters:
      orientation - the new orientation
    • load

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