Releases: Ukendio/jecs
Releases · Ukendio/jecs
Jecs v0.3.2
Jecs v0.3.1
Changelog
[world]
:- Fixed a regression that occurred when you call
world:remove
- Remove explicit error in JECS_DEBUG for
world:target
when not applying an index parameter
- Fixed a regression that occurred when you call
[typescript]
:- Fixed
world.set
with NoInfer
- Fixed
New Contributors
Full Changelog: v0.3.0...v0.3.1
Jecs v0.3.0
Highlights
- Jecs is the first ECS to have implemented archetype deletion second only to flecs!
- Reached 121 stars!
- Added new creations to the addons page
Changelog
[world]
:- Added an index parameter to
world:target
- Added a way to change the components limit via
_G.JECS_HI_COMPONENT_ID
- Set it to whatever number you want but try to make it as close to the number of components you will use as possible
- Make sure to set this before calling jecs or else it will not work
- Added debug mode, enable via setting
_G.JECS_DEBUG
to true- Make sure to set this before calling jecs or else it will not work
- Added
world:cleanup
which is called to cleanup empty archetypes manually - Changed
world:delete
to delete archetypes that are dependent on the passed entity - Changed
world:delete
to delete entity's children before the entity to prevent cycles
- Added an index parameter to
[query]
:- Fixed the iterator to not drain by default
[typescript]
- Fixed entry point of the package.json file to be
src
rather thansrc/init
- Fixed
query.next
returning a query object whereas it would be expected to return a tuple containing the entity and the corresponding component values - Exported
query.archetypes
- Changed
pair
to return a number instead of an entity- Preventing direct usage of a pair as an entity while still allowing it to be used as a component
- Exported built-in components
ChildOf
andName
- Exported
world.parent
- Fixed entry point of the package.json file to be
New Contributors
- @ffrostfall made their first contribution in #114
- @hautajoki made their first contribution in #115
- @jakeundefinedz made their first contribution in #121
- @revvy02 made their first contribution in #122
- @Someon1e made their first contribution in #120
Full Changelog: v0.2.10...v0.3.0
Jecs v0.2.10
Bump
Jecs v0.2.10-rc.4
Final one before release of 0.2.10. This just slightly improves hooks performance. But since it is a change to the world, it warranted a separate release.
Jecs v0.2.10-rc.3
Changelog
[traits]
:- Added cleanup condition
jecs.OnDelete
for when the entity or component is deleted - Added cleanup action
jecs.Remove
which removes instances of the specified (component) id from all entities- This is the default cleanup action
- Added component trait
jecs.Tag
which allows for zero-cost components used as tags- Setting data to a component with this trait will do nothing
- Added cleanup condition
[luau]
:- Exported
world:contains()
- Exported
query:drain()
- Exported
Query
- Improved types for the hook
OnAdd
,OnSet
,OnRemove
- Changed functions to accept any ID including pairs in type parameters
- Applies to
world:add()
,world:set()
,world:remove()
,world:get()
,world:has()
andworld:query()
- New exported type
Id<T = nil> = Entity<T> | Pair
- Applies to
- Changed
world:contains()
to return aboolean
instead of an entity which may or may not exist - Fixed
world:has()
to take the correct parameters
- Exported
thread: https://discord.com/channels/385151591524597761/1248734074940559511
Check out the demo that is in WIP
Full Changelog: v0.2.10-rc.1...v0.2.10-rc.3
Jecs v0.2.10-rc.1
What's Changed
- Fix types of
OnAdd
,OnRemove
andOnSet
by @Mark-Marks in #107 - Add EcsTag by @Ukendio in #108
- Allow functions to accept any ID including pairs in type parameters by @Mark-Marks in #109
New Contributors
- @Mark-Marks made their first contribution in #107
Full Changelog: v0.2.10-rc.0...v0.2.10-rc.1
v0.2.10-rc.0
Jecs v0.2.9
[email protected]
Highlights
world:clear(entity)
is now 1.5-2x faster than v0.2.8- Best Avatar is the first commercial project to have used Jecs
- We have gotten 67 stars at the time of this post, we need 100 to get on the ecs-faq page!
- Jecs v0.3.0 is underway, which will feature linked traversal of pairs with the same relation/target for an entity and archetype deletion.
Changelog
[world]
:- Added
world:delete(entity)
for completely deallocating all memory for an entity without dangling references - Improved performance for
world:clear(entity)
- Improved performance for
world:get
,world:set
,world:add
,world:remove
by using bit flags to check for any component hooks. - Changed
world:set
to also invokeOnAdd
- Added
[traits]
:- Added
jecs.OnDeleteTarget
to specify cleanup policy for when target entities are deleted - Added
jecs.Delete
when paired together withjecs.OnDeleteTarget
will cascade deletions
- Added
[luau]
:- Removed
WorldShim
, useWorld
instead - Added
query:archetypes()
- Removed
[rbxts]
:- Changed
Entity
type to have a shorter nominal type for readability - Fixed emit of import for jecs not finding file
thread: https://discord.com/channels/385151591524597761/1248734074940559511
Check out the demo that is in WIP
Full Changelog: v0.2.8...v0.2.9
Jecs v0.2.8
[email protected]
Added
- Added explicit
query:iter()
- This is meant to be used as a stop-gap for proper of types until luau fixes inference of
__iter
.
- This is meant to be used as a stop-gap for proper of types until luau fixes inference of
- Added component hooks by @DunnoConz in #98
- Component hooks are traits that can be added to a component.
world:set(Position, jecs.OnAdd, function(entity)
print(`entity ${entity}` has added $Position`)
end)
world:set(Position, jecs.OnSet, function(entity, data)
print(`entity ${entity}` has changed $Position to {data}`)
end)
world:set(Position, jecs.OnRemove, function(entity)
print(`entity ${entity}` has removed $Position`)
end)
Changed
- Changed names of the pair functions from
ecs_pair_relation
andecs_pair_target
topair_first
andpair_second
respectively.
Fixed
- Added
world:archetypes()
toEmptyQuery
thread: https://discord.com/channels/385151591524597761/1248734074940559511
Check out the demo that is in WIP
Full Changelog: v0.2.6...v0.2.8