@rbxts/rubine
v0.1.0-rc.6-ts.1
Published
An ergonomic, runtime agnostic scheduler for jecs
Downloads
96
Readme
rubine
An ergonomic, runtime agnostic scheduler for Jecs
Features
Rubine provides two schedulers - one with a fairly low level interface abstracting over directly adding entities and setting components, and another abstracting over the low level one, with a "higher level" scheduler and utilities for phases.
Both can be used alongside each other, although some abstractions require to be "built" first.
In the case of pipes, they have to be either included within the abstracted scheduler
abstracted_scheduler
:with_pipe(my_pipe, my_event)
or registered as a phase
scheduler.phase(my_pipe, my_event)
In the case of pipelines, they have to be either included within the abstracted scheduler
abstracted_scheduler
:with_pipeline(my_pipeline, my_event)
or built
my_pipeline:build(my_event)
The abstracted scheduler starts the low level one by itself, so don't use both start functions together.
Installation
Pesde
pesde add mark_marks/rubine
-- In case of release candidates, dopesde add mark_marks/[email protected]_RC
pesde install
Wally
- Add it to your wally manifest
[dependencies]
rubine = "mark-marks/rubine@LATEST" # Replace LATEST with the latest version
wally install
NPM
npm add @rbxts/rubine
npm install
Todo
Before the 0.1.0 release, the following need to be done:
- [ ] Unit tests
- [x] Automatic CI & CD
- [x] Packaging
- [x] Pesde luau package
- [x] Wally roblox package
- [x] Extensibility
- [x] Built-in Roblox scheduling extension
Mentions
Abstractions were inspired by the ecs agnostic Planck scheduler