View Source Changelog
v0.5.2 (2025-01-25)
- Fixed an issue where Components with
index: truewere not fully removed withComponent.remove/1
v0.5.1 (2024-01-24)
- Fixed an issue where some Component or System naming patterns could prevent generators from working properly
- Replace deprecated function which was causing compiler warnings (h/t @hl)
v0.5 (2023-09-23)
- Non-unique Component types are no longer allowed (see the upgrade guide)
- Component modules now accept option
:indexto index components for bettersearch/2performance mix ecsx.gen.componentnow accepts option--indexto automatically setindex: true- Component callback
get_one/2has been renamedget/2 - Systems'
run/0no longer requires:okreturn value - Manager
setup/0andstartup/0no longer require:okreturn value
v0.4 (2023-06-02)
- Adding ECSx.ClientEvents to your supervision tree is no longer required
- Adding the manager to your supervision tree is no longer required
- Running a generator before ecsx.setup will now raise an error
- Added telemetry events
- Added component persistence, by default saving a binary file to disk
- Persistence file is loaded on app startup
- The interval between saves can be set via application config
- Tick rate is now set in application config
- Manager module (and optional custom path) are now defined in application config
- Added functions
tick_rate/0,manager/0,persist_interval/0, andmanager_path/0to theECSxmodule for reading the configured values at runtime - Added callback
add/3for components and tags, which acceptspersist: trueoption, marking the component/tag for persistence across app reboots get_one/1now raises an error if no results are found- Added
Componentcallbackget_one/2which accepts a default value to return if no results are found add/{2,3}now raises ifunique: trueand the component already exists- Added
Componentcallbackupdate/2for updating an existing component's value, while maintaining the previously set:persistoption - Manager
setupmacro is now an optional callbacksetup/0which only runs once, at the server's first startup - Added a new Manager callback
startup/0which runs every time the server starts - Added
Componentcallbacksbetween/2,at_least/1, andat_most/1(only available for integer and float component types)
v0.3.1 (2023-01-12)
- Added ECSx.ClientEvents: ephemeral components created by client processes to communicate user input/interaction with the ECSx backend
- ECSx.QueryError renamed to ECSx.MultipleResultsError
v0.3.0 (2023-01-03)
- Components are now stored as key-value pairs
- Component values now require a type declaration which is checked on insertions
- Simplified API for working with components
- Aspects have been renamed to Component Types
- Added Tags: boolean component types which don't store any value
- Component
table_typenow toggled via:uniqueflag
v0.2.0 (2022-08-26)
- New Query API for fetching Components
- Improved generators to better handle code injection
- Generators now raise helpful error messages when missing arguments
v0.1.1 (2022-07-21)
- Setup task
mix ecsx.setupno longer generates sample modules - Added option
mix ecsx.setup --no-foldersto prevent generating folders during setup - Added guides and other documentation
v0.1.0 (2022-07-15)
Initial release