Design

Design

Project model

  • robotlegs
  • template
    • components
    • commands

Tools

  • image exporter

    PS/XD UXP

  • visual editor (frontEnd)

    Solar2D

    • live editor

    (Maybe) React

    • uxp plugin for Ps or XD
    • web app
  • REST server

    • pegasus-harness

    • pegasus-launcher

      frontEnd app sends REST API requests to harness of pegasus lua server

      this server offers the renderer of .lua for components and commands

  • other tools

    • generate_scene_index

Sample projects


Image Exporter plugin for Adobe Photoshop


Project Model

sample-projects/Pegasus

test/base-proj/Solar2D/App/bookFree


Visual Editor(React)

{{webview html panel}}

  • UXP
  • Browser

Visual Live Editor(Solar2D)

Solar2D/tools/kwik-editor/App/kwikEditor to be copied into a project? Or make them as components like a AtoB?

  • books/pages(scenes)/layers

  • menu

  • tools/actions with icons

    selectPage

    • selectLayer with filter

      • select class
        • show an event with class name like button->onTap, anim->onComplete
        • button (-> New Action Icon)
    • selectComponent

      • audio
        • event
      • group
      • timer
        • event
      • var
    • add a component to a layer or a page selected

    • selectAction

      • list actions

      • cross references to components

      • Action Editor

        • Add a command
          • user select Animation
            • list animations
              • user select an animation, select an operation
              • editt props
        • Drag & Drop to change the order of commands

    Pegasus & httpYac to get/post properteis of components and actions? yaml props in .http

    Copy/(optional)EditRawJSON/Apply

    • copy json-props in a buffer
    • (optional) show Edit JSON panel: json-props in text field, then you can copy it or modify
    • select components and click paste button?

audio/group/timer/var are independent from layers

  • components w/o events

    • page

      • group
      • variable
    • layer replacements

      • set lang
      • multiplier
      • particles
      • dynamic text
      • text
      • mask
    • interactions

      • canvas
      • scroll
    • physics

      • env
      • body
      • force
      • joint
  • components with events

    • timer

    • audio

    • layer (replacements)

      • onComplete

        • animation
        • video
        • countdown
        • text input
      • transition

        • onStart
        • onComplete
        • onPause
        • onResume
        • onCancel
        • onRepeat
      • sprite

        • began
        • ended
        • bounce
        • loop
        • next
      • sync audio text

        • word timecode
    • interactions

      • button

        • tap #
        • press
        • release
      • drag

        • drop area
        • dragging
        • release
      • swipe

      • pinch

        • pinching
        • release
      • spin

        • clockwise
        • anti clockwise
      • shake

      • parallax

        • forward
        • backword
    • physics

      • collision
      • preCollision
      • postCollision

  • create ‘select book/page/layer’ menu at the bottom

    • layers table for a seclection . showOverlay?

    • layer name with ‘Add Class’ button?

  • create tools/actions with icons at the bottom

    • select animation > linear
  • save/load

    scene/layers
      create?
      read
      update
        crud a class
      save
        table in lua into json
      publish
        json to lua

TODO

  • add audio icon, action icon
  • initApp to select an app folder? rename it to select App?
  • move menu position to top/buttom/right/left

Tools

  • develop/Solar2D/tools/pegasus-harness

  • develop/Solar2D/tools/pegasus-launcher

    REST API requests from httpYac are sent to pegasus

generate_scene_index