Interface SceneBuilder

All Known Implementing Classes:
PonderSceneBuilder

public interface SceneBuilder
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Adds a simple instruction to the scene.
    void
    Adds an instruction to the scene.
    void
    Adds a Key Frame at the end of the last delay() instruction for the users to skip to
    void
    Adds a Key Frame a couple ticks after the last delay() instruction for the users to skip to
    void
    configureBasePlate(int xOffset, int zOffset, int basePlateSize)
    Communicates to the ponder UI which parts of the schematic make up the base horizontally.
    Additional tools for debugging ponder and bypassing the facade
    Special effects to embellish and communicate with
     
    void
    idle(int ticks)
    Before running the upcoming instructions, wait for a duration to let previous actions play out.
    void
    idleSeconds(int seconds)
    Before running the upcoming instructions, wait for a duration to let previous actions play out.
    void
    Once the scene reaches this instruction in the timeline, mark it as "finished".
    Ponder's toolkit for showing information on top of the scene world, such as highlighted bounding boxes, texts, icons and keybindings.
    void
    Use this to disable the base plate's shadow for this scene
    void
    rotateCameraY(float degrees)
    Pans the scene's camera view around the vertical axis by the given amount
    void
    scaleSceneView(float factor)
    Use this in case you are not happy with the scale of the scene relative to the overlay
    void
    setNextUpEnabled(boolean isEnabled)
    Control whether the "next scene" popup should be displayed for this scene once the previous scene has finished running all of its instructions.
    void
    setSceneOffsetY(float yOffset)
    Use this in case you are not happy with the vertical alignment of the scene relative to the overlay
    void
    Fade the layer of blocks into the scene ponder assumes to be the base plate of the schematic's structure.
    Random other instructions that might come in handy
    void
    title(String sceneId, String title)
    Assign a unique translation key, as well as the standard english translation for this scene's title using this method, anywhere inside the program function.
    Instructions for manipulating the schematic and its currently visible areas.
  • Method Details

    • overlay

      Ponder's toolkit for showing information on top of the scene world, such as highlighted bounding boxes, texts, icons and keybindings.
    • world

      Instructions for manipulating the schematic and its currently visible areas. Allows to show, hide and modify blocks as the scene plays out.
    • debug

      Additional tools for debugging ponder and bypassing the facade
    • effects

      Special effects to embellish and communicate with
    • special

      Random other instructions that might come in handy
    • getScene

      PonderScene getScene()
    • title

      void title(String sceneId, String title)
      Assign a unique translation key, as well as the standard english translation for this scene's title using this method, anywhere inside the program function.
      Parameters:
      sceneId - unique ID for this scene, used as a prefix for translation entries
      title - title for this scene, in english
    • configureBasePlate

      void configureBasePlate(int xOffset, int zOffset, int basePlateSize)
      Communicates to the ponder UI which parts of the schematic make up the base horizontally. Use of this is encouraged whenever there are components outside the base plate.
      As a result, showBasePlate() will only show the configured size, and the scene's scaling inside the UI will be consistent with its base size.
      Parameters:
      xOffset - Block spaces between the base plate and the schematic boundary on the Western side.
      zOffset - Block spaces between the base plate and the schematic boundary on the Northern side.
      basePlateSize - Length in blocks of the base plate itself. Ponder assumes it to be square
    • scaleSceneView

      void scaleSceneView(float factor)
      Use this in case you are not happy with the scale of the scene relative to the overlay
      Parameters:
      factor - >1 will make the scene appear larger, smaller otherwise
    • removeShadow

      void removeShadow()
      Use this to disable the base plate's shadow for this scene
    • setSceneOffsetY

      void setSceneOffsetY(float yOffset)
      Use this in case you are not happy with the vertical alignment of the scene relative to the overlay
      Parameters:
      yOffset - >0 moves the scene up, down otherwise
    • showBasePlate

      void showBasePlate()
      Fade the layer of blocks into the scene ponder assumes to be the base plate of the schematic's structure. Makes for a nice opener
    • addInstruction

      void addInstruction(PonderInstruction instruction)
      Adds an instruction to the scene. It is recommended to only use this method if another method in this class or its subclasses does not already allow adding a certain instruction.
    • addInstruction

      void addInstruction(Consumer<PonderScene> callback)
      Adds a simple instruction to the scene. It is recommended to only use this method if another method in this class or its subclasses does not already allow adding a certain instruction.
    • idle

      void idle(int ticks)
      Before running the upcoming instructions, wait for a duration to let previous actions play out.
      Idle does not stall any animations, only schedules a time gap between instructions.
      Parameters:
      ticks - Ticks to wait for
    • idleSeconds

      void idleSeconds(int seconds)
      Before running the upcoming instructions, wait for a duration to let previous actions play out.
      Idle does not stall any animations, only schedules a time gap between instructions.
      Parameters:
      seconds - Seconds to wait for
    • markAsFinished

      void markAsFinished()
      Once the scene reaches this instruction in the timeline, mark it as "finished". This happens automatically when the end of a storyboard is reached, but can be desirable to do earlier, in order to bypass the wait for any residual text windows to time out.
      So far this event only affects the "next scene" button in the UI to flash.
    • setNextUpEnabled

      void setNextUpEnabled(boolean isEnabled)
      Control whether the "next scene" popup should be displayed for this scene once the previous scene has finished running all of its instructions.
    • rotateCameraY

      void rotateCameraY(float degrees)
      Pans the scene's camera view around the vertical axis by the given amount
    • addKeyframe

      void addKeyframe()
      Adds a Key Frame at the end of the last delay() instruction for the users to skip to
    • addLazyKeyframe

      void addLazyKeyframe()
      Adds a Key Frame a couple ticks after the last delay() instruction for the users to skip to