github KivalEvan/BeatSaber-JSMap 1.6.0

8 months ago

IMPORTANT: This update removes the ability to instantiate from JSON using constructor and
create static method, which also includes the ability to mix-and-match between JSON and wrapper
attribute. While the simple fix for constructor is to use fromJSON static method, create may
require effort to fix by transforming it into array and map into fromJSON. Apologies for the
inconvenience as this move is deemed necessary when moving towards beatmap V4.

Added

  • New environment & color scheme
    • Daft Punk
    • Hip Hop Mixtape
  • Beatmap Difficulty, Lightshow, Info and Audio Data v4
    • Deduplication of data for v4 (EXPERIMENTAL)
      • This only affects the JSON output
  • BPM Info/Audio Data class (subject to change)
    • Includes loading and saving
  • Beatmap object fromJSON static method
  • Beatmap JSON can now be passed onto load instead of just string path
    • Default file name to LoadJSON.dat
  • Preprocessing and postprocessing options in load and save
    • This allows for arbitrary processing pipeline
    • load preprocess and postprocess handles JSON and resulting class object respectively
      • The reverse is true for save
  • range utils function
  • Writable and DeepWritable type utils

Changed

  • Major structure change to Info
    • Uses V4 info as baseline
    • Difficulty characteristic is now part of difficulty
    • Official color scheme is no longer nested
  • Minor structure change to Difficulty
    • FX Float Event is now part of event box instead of separated entity
  • create and constructor now only accepts wrapper type
    • Use fromJSON static method for loading JSON schema
  • save now return resulting JSON
    • save options allows user to prevent file from being written
  • clone method no longer uses toJSON when cloning
    • This should result in much faster cloning
  • Renamed setFileName to setFilename for consistency
  • Converting beatmap version to same version will now create a copy instead of returning the same
    data
  • Converting beatmap now preserve custom data
  • Nested load and save options now properly spread instead of replace
  • Several class method now return this instead of void to allow chaining
  • Beatmap version is now read-only
  • Internal logic optimised
  • Utils rename for clarity
    • equalNear -> nearEqual
    • fixRange -> rearrangeTuple (this may as well be removed or properly renamed)

Fixed

  • Test case not using the new default value
  • Removed filter in FX collection construction to avoid potential index error
  • New easings being disallowed to use

Removed

  • Info set object/class, no longer available as of v4
  • Mix-and-match constructor/create class object
    • Was complicated and confusing to handle

Don't miss a new BeatSaber-JSMap release

NewReleases is sending notifications on new releases.