Class GuiElementJsonBlueprint<Styles extends BaseStyles,Element extends GuiElement<Styles,?>,StylesBuilder extends BaseStyles.Builder<?>>

java.lang.Object
technology.sola.engine.graphics.gui.json.element.GuiElementJsonBlueprint<Styles,Element,StylesBuilder>
Type Parameters:
Styles - the styles type
Element - the gui element type
StylesBuilder - the styles builder type
Direct Known Subclasses:
ButtonElementJsonBlueprint, ImageElementJsonBlueprint, SectionElementJsonBlueprint, SpriteElementJsonBlueprint, TextElementJsonBlueprint, TextInputElementJsonBlueprint

@NullMarked public abstract class GuiElementJsonBlueprint<Styles extends BaseStyles,Element extends GuiElement<Styles,?>,StylesBuilder extends BaseStyles.Builder<?>> extends Object
GuiElementJsonBlueprint provides functionality for building a GuiElement with its styles from JSON. Each blueprint should have a unique tag (getTag()).
  • Constructor Details

  • Method Details

    • getTag

      public abstract String getTag()
      Returns:
      the tag identifier of this blueprint
    • createStylesFromJson

      public ConditionalStyle<Styles> createStylesFromJson(technology.sola.json.JsonObject stylesJson)
      Creates an instance of the Element's Styles.
      Parameters:
      stylesJson - the JsonObject to build the Styles from
      Returns:
      the Styles instance with properties set
    • createElementFromJson

      public abstract Element createElementFromJson(technology.sola.json.JsonObject propsJson)
      Creates an instance of the Element of this blueprint.
      Parameters:
      propsJson - the JsonObject to build from
      Returns:
      the Element with props set
    • createStylesBuilder

      protected abstract StylesBuilder createStylesBuilder()
      Returns:
      a new StylesBuilder for this blueprint to use