Skip to content

v0.2.0: New tools; `Object` trait foundation

Latest
Compare
Choose a tag to compare
@TheNathannator TheNathannator released this 24 Jan 14:30
· 6 commits to main since this release
6163374

Tools

Added

  • arsonc: converts between .dta and .dtb files, with both old-style and new-style encryption supported and auto-detected.
  • arson-fmt: formats .dta files according to generally-preferred conventions, with opt-out directive comments supported to skip parts of a file.

arson-core

Added

  • A basic Object trait has been introduced for exposing arbitrary objects to scripts. Many details have yet to be fleshed out, but the basic functionality exists, and you can call methods on objects from script successfully.
  • In addition to the above, nodes can now store callable functions, which brings the storage capabilities up to par with the Milo implementation.
  • func and closure script functions now exist for defining arbitrary functions and closing over variables/defining anonymous functions.

Changed

  • The scripting context no longer uses a generic argument for storing user-defined states, and instead uses a dynamic state registration system which polymorphizes things.
  • div_rem now returns its results by setting provided variables instead of returning an array.

Fixed

  • Character escapes are now handled when loading script text.
  • The argument order for clamp has been corrected.

arson-parse

Changed

  • Comments and blank lines are now passed through to the AST in arson-parse, to help facilitate arson-fmt functionality.

Fixed

  • Comments between directive components will no longer cause parsing errors, though their placement in the AST is not preserved accurately for technical reasons (too much complexity for a way of doing things that's unusual to begin with).

There are various other things which are not covered by this changelog for the sake of staying concise. A good deal of work went in since the last release to make things even better, and there's still much more work yet to come.