- Optimize shouldn't remove info attribute
- Updated to info v2.1.0
- Queen environment & color scheme
- Legacy beatmap v1 (incomplete; contain mixed information)
- Info wrapper class
- Beatmap object class validation
- Tagged log method
- Prefixed with,
t
followed by capital letter, for consistent tagging style print - Non-tagged log will automatically apply
script
tag - Able to customise tag print and untagged string
- Prefixed with,
- Wrapper class now have their own protected attributes instead of using
data
- Unspecified difficulty version will now return base wrapper class instead of version specific
- This means it won't automagically convert v2 map to v3 map when unspecified
- Renamed
slider
andburstSlider
toarc
andchain
respectively- This reduce the confusion between internal and common name
- Schema remained unchanged for obvious reason
- Renamed
fileName
tofilename
for consistency - Renamed couple of functions and constants
- Allow object class constructor to be used (similar to static
create
but as single object) - Allow object class
func
to have any arguments - Changed modded object value method behaviour
- Changed custom data type structure
- Changed type from
Record
toObject
for known constants - Updated converter functions
- Updated Heck stuff
- Logger can now be instantiated
- Small refactor for BPM and NJS class
- Recommended Deno version to 1.34.0+
- Only root-level file can contain platform-specific API
- Copy object/array in class object when copying to prevent accidental referenced mutation
- Missing NE and Chroma check
- Missing wrapper and types export
- Chroma gradient event convert properly
- Possible floating-point error in NJS HJD calculation
- Constants should throw TS error if modified (
environment
,colorScheme
, etc.)
data
in class object (Array
andObject
are never modified and could cause confusing usage)- Prompting in conversion (this should now be handled by script user)
swapPosition
andswapRotation
in class object (seemingly unnecessary utility)Required
object in concrete class (overall less visual noise)- Unused optimize option
- FS utility (now uses standard module)
- Panic 2.0 environment & color scheme
- Missing export for types (@Fernthedev)
- Interactive time condition changed
- Arc is ignored and bomb should no longer be ignored (no idea why this was)
- Moved
track
from NE to Heck - Updated Chroma and NE check on beatmap object
- Dragons 2.0 environment & color scheme
- Wrapper attribute interface separated (this should result in consistent and better developing experience)
- Event box constructor should no longer attempt to fix beat distribution value for step and offset type filter
- Gradient conversion used wrong event class
- Data check can now check for array of primitives
- Converts boost and lane rotation event from basic events to their respective arrays
- Temporary v2 event conversion to v3 event in beatmap v3 parsing
- Updated custom data schema
- Data checks now performed after optimisation
- Difficulty related function now uses wrapper instead of concrete object
- Renamed save option attributes from
optimise
tooptimize
- Data check throwing error for array of primitives
- Fixed optimisation removing required attributes
_lineLayer
and_height
from v2 obstacle (it never existed in the first place)
- The Weeknd and Rock Mixtape environment & color scheme
- Wrapper class/interface
- Write properties instantiation in more readable syntax
- Able to instantiate object from existing class object (copy)
- Mix-and-match is possible but will prioritise wrapper property
- External file interface
- Currently supported
BPM Info
,Cinema
,Chroma
- Currently supported
- Zip extension
- Couple more utilities
- Pseudorandom number generator (global or instanced)
- Vector helpers
- Color from helpers (various of input to return color array)
- Array pick random
- Experimental Deno standard library usage
- Test coverage
- Updated to beatmap v3.2.0
- Structural change
- Custom data type moved to their dedicated folder to separate main and custom schema (main schema uses custom schema for custom data)
- Renamed
basicBeatmapEvents
andcolorBoostBeatmapEvents
tobasicEvents
andcolorBoostEvents
- Beatmap v2 field rename (JSON remains the same)
- Improved function overloading and auto-completion
- Renamed couple of function to be camel/pascal case including acronyms (JS API left untouched)
- Array utilties now uses template
- Obstacle not correctly check for interactive in specific case
- Loose-autocomplete type incorrectly throw error when passed to primitive
- Couple of utils fixed from testing
- Lizzo environment & color scheme
- Beatmap auto-fixer script
- Data and custom data correction patch
- Remove outside playable patch
- Library version
- Updated to beatmap v3.1.0
- v2 Note and v2 Slider
cutDirection
shortened todirection
to match v3 consistency - Disallow both class object and object to be added in the same parameter for difficulty add object (this makes for less confusing autocomplete)
- Updated SPS info
- Convert To V3 script now actually ask for miscellaneous conversion
- Data check option now actually respect option
- Deleted stray
_preciseSpeed
custom data on conversion - Autocomplete no longer includes object class property in add/creation
- JSDoc typo error
- v3 BPM change support to
BeatPerMinute
class - Custom data patching for v2 and v3
- Conversion now keeps unknown custom data
NoteCutAngle
renamed toNoteDirectionAngle
- v2 Waypoints is now optional
- Updated Heck
- Couple of clean-up
- LightMapper default brightness now set to 1
- Object callback no longer warn undefined
- Chroma geometry, material and component
- This contains breaking changes to existing v3 Chroma
- More utilities standard, Chroma, and Noodle Extensions
- LightMapper -> v3 lighting system for v2 light
- EnvironmentGrab -> utility to write environment game object in regex and string form
- Configurable data check
- Checks on save
- Object mirroring now use & change custom data
- Object get position/angle can use & return custom data value
- Object function callback method for more advanced use
- Color function can infer hex string as RGBA color
- Color function can take color object and uses them accordingly
- Depend on use case, this will always convert to RGBA for ease of development
- Loose autocomplete
path
is now calleddirectory
to avoid confusion- Easings is now independent to beatmap
- Easings can be retrieved from
utils
- Easings can be retrieved from
- Beatmap V3 to V2 conversion now converts customData back
- Attempts to fix position for environment track
- Beatmap object create will now always return array
- Types structure changes
- Renamed class
DifficultyData
toDifficulty
- Renamed method
toObject
totoJSON
for JS built-in functionality - All constructor is now protected instead of private
- Negative hue no longer result null value
- Obstacle mirroring now accounts for width
RgbaToHsva
hue returning normalised hue value insteaddirectory
potentially no longer prefix file name instead of going into folderwhere
function does not filter correctly with exclude
- Selector extension
where
function
- v2 event floatValue and v2 obstacle lineLayer & height is now optional
- Class object data is now exposed (not recommended for modification purpose)
- Several changes to extensions
- Example is broken
- Sometimes error would come randomly
- The Second environment and color scheme
- Environment class for Chroma extensions
- Top-level functions use regular function instead of arrow function
- V2 objects use
pos
instead ofline
- Slider create default multiplier from
0.5
to1
and mid anchor to0
- Default options is now nested
- Cleaned up JSDoc
- Bookmark type file somehow ended up in class folder
time
instead oftype
for custom events
- Difficulty file name not being saved
- Selector extension
- Select object at time and between time
- Class object clone method
- Custom data will now always exist in class object context
- Heck settings setter now allow for any valid field
- Several extensions fixed
- File name saved to difficulty class object
- Saving difficulty will prioritise file name from explicit option
filePath
, class object, info, and default value
- Saving difficulty will prioritise file name from explicit option
- Point definitions v2 to v3 conversion
filename
field removed from difficulty list interface due to redundancy (settings
field already provided file name)