ArcCreate icon indicating copy to clipboard operation
ArcCreate copied to clipboard

New Scenecontrol Features

Open dylanrafael05 opened this issue 2 years ago • 0 comments

Changelog

  • Added BooleanChannel to handle boolean values, comparisons, and if-else operations
    • Added support for boolean literal to BooleanChannel conversion
    • Added Channel._and, Channel._or, and Channel._not to perform boolean operations
    • Added Channel.equal, Channel.greaterThan, and Channel.lessThan in order to compare values, both numbers and strings
  • Added support for various new mathematical channels
    • Added Channel.timeScale, Channel.timeWarp, Channel.chain, Channel.timing, and Channel.abs
    • Added overloads for Channel.sine and Channel.cos which take in only one parameter
    • Added support for the % operator on channels
  • Added support for per-note control with channels
    • Modified GroupProperties in order to interface with NoteIndividualProperties and NoteProperties when necessary
    • Modified matrix transforms to use a TRS struct, which provides easy access to the TRS components of a matrix
      • TRS + TRS results in a new TRS which adds translation and rotation, and multiplies scale
      • TRS * TRS results in a new TRS which performs a matrix transform and extracts the resulting TRS values
      • TRS.Matrix gets the Matrix4x4 from a TRS, which is also implicit
  • Modified the way that arcs are transformed by scale individual in order to preserve their positioning throughout their easing rather than just at their starting position
  • Added NoteData to access per-instance data from a note
    • Note.timing() returns the start timing of a note
    • Note.delta() returns Channel.timing() - Note.timing()
    • Note.x/y/z() returns the position, without any modification by angles or scenecontrol, of a note's start at the current time
    • Note.floorpos() returns the floor position of a note
    • Note.isArc() returns if a note is an arc
    • Note.type() returns a string representative of the note's type
  • Completely reworked EmmySharp in order to produce a more comprehensible library, without making any breaking API changes
    • Added the ability to directly specify a type to use in generated emmylua code
    • Added the ability to specify an alias type to use in generated emmylua code (i.e, EmmyType("Easings") instead of repeated EmmyChoice(. . .))
  • Added Editor.ScenecontrolChecks which reports an error if a channel type is created in code but not handled by serialization or deserialization

Known Issues

  • Arc particles and shadows are incorrectly warped by scale individual now

dylanrafael05 avatar Jun 01 '23 18:06 dylanrafael05