Skip to content

1.5.0

Compare
Choose a tag to compare
@KivalEvan KivalEvan released this 12 Oct 09:22
· 259 commits to main since this release

Couple of optimization work has been done to further improve memory and time efficiency. This
focuses heavily on speed for faster iteration reason. Overall, it should result in up to 1.6x faster
in general use case.

Added

  • Updated to beatmap v3.3.0
    • FX Event Box Group
    • FX Events Collection
  • Linkin Park 2.0 environment & color scheme
  • New SongCore features (tags, custom
    characteristic label, etc.)
  • Predefined beatmap data clean method
    • This handles only the known data to be cleanse which is significantly faster than deep clean
      method
    • This can also avoid sensitive data like BPM Event where floating point must always be precise
  • Info color scheme copy
  • Ensure alpha for toColorObject
  • invLerp, remap, lerpVector, shallowCopy, and jsonCopy utils
  • Missing offsetPosition and offsetWorldRotation property for AnimateTrack and
    AssignPathAnimation
  • Object method comparison now checks for mod type

Changed

  • All beatmap v3 and v2 schema attributes is now optional
  • Beatmap v3 now purge all zero value attributes on optimized save (new in 1.32 editor)
    • This strips all zero attributes from the object resulting in up to 5x smaller size
    • Data check now ignores majority of the missing attributes, defaulting to 0 or false
    • Older Beat Saber version down to 1.20 can still load the beatmap with no issue
    • Can be applied for beatmap v2 but must be explicitly enabled with purgeZeros attributes in
      optimize
    • Does not apply to beatmap v1 as it require all attributes to be present
  • All default value changed to 0, false or first enum value in attributes
    • Arc multiplier, tail multiplier
    • Chain squish, link count
    • Event float value
    • Obstacle duration, width, height
    • Class static default should no longer be touched unless you know what you are doing
  • Parsing no longer handle sorting
    • Moved to class method, sorting is done by default on load
  • The Weeknd and Panic 2.0 color scheme now shows white color value
  • Utils no longer require namespace
    • This should reveal more hidden utilities without the need to import and destructuring utils
      namespace
  • Beatmap Info structure changed to better fit original structure
    • This also goes for info custom data
  • Beatmap optimization tweaked
    • Moved sorting responsibility to saving
  • Beatmap addObject method now always create new instance
  • Custom data color scheme a is now optional instead of omitted
  • Removed logging from utils, now throws error instead of warn or error
  • Clarify difficultyFromInfo return type
  • deepCopy reworked, formerly is now jsonCopy
  • Converter function renamed for clarity
  • Color utils renamed for consistency
    • HsvaToRgba to hsvaToRgba
    • RgbaToHsva to rgbaToHsva
    • interpolateColor to lerpColor
    • And couple others I forgot
  • Renamed translationDistribution to gapDistribution
  • Shortened constant Position# to Pos#

Fixed

  • Data check not picking up NaN value
  • Mapping Extensions precision placement X position being incorrect
  • Data check should properly skip error
  • Couple of accidental mutation fix from utils
  • toHexColor properly normalize the value outside of 0-1 range