Class PonderSceneBuilder

java.lang.Object
net.createmod.ponder.foundation.PonderSceneBuilder
All Implemented Interfaces:
SceneBuilder

public class PonderSceneBuilder extends Object implements SceneBuilder
Enqueue instructions to the schedule via this object's methods.
  • Field Details

  • Constructor Details

    • PonderSceneBuilder

      public PonderSceneBuilder(PonderScene ponderScene)
  • Method Details

    • overlay

      public OverlayInstructions overlay()
      Description copied from interface: SceneBuilder
      Ponder's toolkit for showing information on top of the scene world, such as highlighted bounding boxes, texts, icons and keybindings.
      Specified by:
      overlay in interface SceneBuilder
    • world

      public WorldInstructions world()
      Description copied from interface: SceneBuilder
      Instructions for manipulating the schematic and its currently visible areas. Allows to show, hide and modify blocks as the scene plays out.
      Specified by:
      world in interface SceneBuilder
    • debug

      public DebugInstructions debug()
      Description copied from interface: SceneBuilder
      Additional tools for debugging ponder and bypassing the facade
      Specified by:
      debug in interface SceneBuilder
    • effects

      public EffectInstructions effects()
      Description copied from interface: SceneBuilder
      Special effects to embellish and communicate with
      Specified by:
      effects in interface SceneBuilder
    • special

      public SpecialInstructions special()
      Description copied from interface: SceneBuilder
      Random other instructions that might come in handy
      Specified by:
      special in interface SceneBuilder
    • getScene

      public PonderScene getScene()
      Specified by:
      getScene in interface SceneBuilder
    • title

      public void title(String sceneId, String title)
      Description copied from interface: SceneBuilder
      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.
      Specified by:
      title in interface SceneBuilder
      Parameters:
      sceneId - unique ID for this scene, used as a prefix for translation entries
      title - title for this scene, in english
    • configureBasePlate

      public void configureBasePlate(int xOffset, int zOffset, int basePlateSize)
      Description copied from interface: SceneBuilder
      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.
      Specified by:
      configureBasePlate in interface SceneBuilder
      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

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

      public void removeShadow()
      Description copied from interface: SceneBuilder
      Use this to disable the base plate's shadow for this scene
      Specified by:
      removeShadow in interface SceneBuilder
    • setSceneOffsetY

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

      public void showBasePlate()
      Description copied from interface: SceneBuilder
      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
      Specified by:
      showBasePlate in interface SceneBuilder
    • addInstruction

      public void addInstruction(PonderInstruction instruction)
      Description copied from interface: SceneBuilder
      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.
      Specified by:
      addInstruction in interface SceneBuilder
    • addInstruction

      public void addInstruction(Consumer<PonderScene> callback)
      Description copied from interface: SceneBuilder
      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.
      Specified by:
      addInstruction in interface SceneBuilder
    • idle

      public void idle(int ticks)
      Description copied from interface: SceneBuilder
      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.
      Specified by:
      idle in interface SceneBuilder
      Parameters:
      ticks - Ticks to wait for
    • idleSeconds

      public void idleSeconds(int seconds)
      Description copied from interface: SceneBuilder
      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.
      Specified by:
      idleSeconds in interface SceneBuilder
      Parameters:
      seconds - Seconds to wait for
    • markAsFinished

      public void markAsFinished()
      Description copied from interface: SceneBuilder
      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.
      Specified by:
      markAsFinished in interface SceneBuilder
    • setNextUpEnabled

      public void setNextUpEnabled(boolean isEnabled)
      Description copied from interface: SceneBuilder
      Control whether the "next scene" popup should be displayed for this scene once the previous scene has finished running all of its instructions.
      Specified by:
      setNextUpEnabled in interface SceneBuilder
    • rotateCameraY

      public void rotateCameraY(float degrees)
      Description copied from interface: SceneBuilder
      Pans the scene's camera view around the vertical axis by the given amount
      Specified by:
      rotateCameraY in interface SceneBuilder
    • addKeyframe

      public void addKeyframe()
      Description copied from interface: SceneBuilder
      Adds a Key Frame at the end of the last delay() instruction for the users to skip to
      Specified by:
      addKeyframe in interface SceneBuilder
    • addLazyKeyframe

      public void addLazyKeyframe()
      Description copied from interface: SceneBuilder
      Adds a Key Frame a couple ticks after the last delay() instruction for the users to skip to
      Specified by:
      addLazyKeyframe in interface SceneBuilder