Skip to content

Releases: Ukendio/jecs

Jecs v0.5.3

17 Jan 09:43
Compare
Choose a tag to compare

Highlights

  • Fixed some regressions

Changelog

  • [world]:
    • Fixed OnRemove hooks not being invoked when using world:delete on a target of a pair
  • [query]:
    • Fixed cached queries not matching archetypes where the first term has a wildcard
  • [luau]:
    • Fixed return of World.new() being inferred as any

New Contributors

Full Changelog: v0.5.2...v0.5.3

Jecs v0.5.2

15 Jan 18:38
Compare
Choose a tag to compare

Highlights

  • Optimized deletion/removal of children from a parent by 20%
  • Reverted back to using the old type solver, will wait until user defined type functions are more stable and have support for generic packs

Changelog

  • [world]:
    • Fixed world:each not iterating every archetype
  • [query]:
    • Fixed the :with filter on cached queries not working properly
  • [luau]:
    • Reverted the types to Pair to always return the type for the first element
      • The behaviour of supporting components in either position remains but types does not reflect this at the moment

New Contributors

Full Changelog: v0.5.0...v0.5.2

Jecs v0.5.1

27 Dec 02:49
Compare
Choose a tag to compare
Bump patch

Jecs v0.5.0

26 Dec 05:33
ec4fa3f
Compare
Choose a tag to compare

Highlights

  • Now supports cached queries which can save 3-5 microseconds by not having to recreate the same queries every frame.
  • Thanks to Luau's progress to supporting user defined type functions, we can now fully type Pair, and as such I have extended support for them to support relation data if either IDs is a Component

Changelog

  • [world]:
    • Fixed world:target not giving adjacent pairs
    • Added world:each to find entities with a specific Tag
    • Added world:children to find children of entity
  • [query]:
    • Added query:cached
      • Adds query cache that updates itself when an archetype matching the query gets created or deleted.
  • [luau]:
    • Changed how entities' types are inferred with user-defined type functions
    • Changed Pair<First, Second> to return Second if First is a Tag; otherwise, returns First.

New Contributors

Full Changelog: v0.4.0...v0.5.0

Jecs v0.4.0

17 Nov 18:06
3cde5c8
Compare
Choose a tag to compare

Highlights

  • Jecs now has entity recycling which will allow you to reuse 2^24 indexes 2^16 times each by giving them generations, giving you a possible range of 2^40 entities in total, you will never run out! Huge thanks to @centau and @SanderMertens for the guidance on the implementation of this!
  • The query iterator has been simplified to keep the API more lightweight and transparent.
  • Now that jecs is much more stable than before, I am going to take a pivot towards working on flamecs, a jecs wrapper for Flamework. Takes advantage of Flamework macros and type ID system for increased ergonomics.

Changelog

  • [world]:
    • Added recycling to world:entity
      • If you see much larger entity ids, that is because its generation has been incremented
  • [query]:
    • Removed query:drain
      • The default behaviour is simply to drain the iterator
    • Removed query:next
      • Just call the iterator function returned by query:iter directly if you want to get the next results
    • Removed query:replace
  • [luau]:
    • Fixed query:archetypes not taking self
    • Changed so that the jecs.Pair type now returns the first element's type so you won't need to typecast anymore.

New Contributors

Full Changelog: v0.3.2...v0.4.0

Jecs v0.4.0-rc.0

14 Nov 16:01
Compare
Choose a tag to compare
Jecs v0.4.0-rc.0 Pre-release
Pre-release
Bump

Jecs v0.3.2

02 Oct 21:00
Compare
Choose a tag to compare

Optimized world:cleanup() and the archetype graph to scale better.

Jecs v0.3.1

01 Oct 12:09
Compare
Choose a tag to compare

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
  • [typescript] :
    • Fixed world.set with NoInfer

New Contributors

Full Changelog: v0.3.0...v0.3.1

Jecs v0.3.0

24 Sep 01:28
Compare
Choose a tag to compare

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
  • [query]:
    • Fixed the iterator to not drain by default
  • [typescript]
    • Fixed entry point of the package.json file to be src rather than src/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 and Name
    • Exported world.parent

New Contributors

Full Changelog: v0.2.10...v0.3.0

Jecs v0.2.10

07 Sep 20:23
Compare
Choose a tag to compare