Skip to content

0.5.0

Compare
Choose a tag to compare
@gilzoide gilzoide released this 26 Dec 15:09
· 54 commits to main since this release

Built platforms: Windows, Linux/X11, OSX, iOS, Android
Notes: OSX .dylib is not signed and will need explicit permission from the user or codesigning for running. iOS .dylibs are not signed and require codesigning before building the application.

Added

  • join method for all Pool*Array metatypes with the same implementation as for Array and PoolStringArray.
  • Possibility for using ClassWrappers as extends of a script instead of their string name. E.g. script: return { extends = Node }
  • Object:get_class_wrapper method that returns the ClassWrapper associated with the Object's class.
  • ClassWrapper:has_property method that returns whether a class has a property with the passed name. Properties are considered available if they are found in the result of ClassDB:class_get_property_list.
  • Library mapping for Server platform pointing to the linux_x86_64 build.
  • string.quote function for quoting values.
  • [build] Passing DEBUG=1 to make docs adds --all flag to ldoc, which adds documentation for locals.
  • [build] Passing DEBUG_INTERACTIVE=1 to make test* makes errors trigger a debugger.lua breakpoint, for debugging tests.

Fixed

  • Return values passed to lps_coroutine:resume(...) when calling GD.yield().
  • Comparing Array and Pool*Arrays against Lua primitives like nil and numbers now return false instead of raising.
  • Support for false as the default value for a property.

Changed

  • BREAKING CHANGE: Array and Pool*Array's __index and __newindex metamethods now use 1-based indices to match Lua tables. For 0-based indexing, use get/set or safe_get/safe_set instead.
  • BREAKING CHANGE: property setter functions don't receive property name anymore (#5). That is, instead of function(self, property_name, value), setters now look like function(self, value).
  • BREAKING CHANGE: script instances are now structs instead of tables. They still have a backing table for storing data, but indexing now calls getter and setter functions for known properties. Use rawget and rawset to bypass getter/setter functions and access the data table directly. (#5)
  • BREAKING CHANGE: Object.call now raises instead of failing silently. Use Object.pcall to protect from errors.