Skip to content

Releases: recatek/gecs

v0.3.0

22 Jul 03:15
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release
  • Entity types and component storage are no longer unintentionally !Send and !Sync.
  • Changing vocabulary of "push"/"remove" for entities to "create"/"destroy" to be more explicit.
  • Adding a function to get the number of archetypes a world has.
  • Small optimizations for hashing Entity types.
  • Adding the wrapping_entity_version and wrapping_entity_raw_version features to have version overflows for these types wrap instead of panic. This could theoretically cause invalid entity access, but the likelihood is extremely small, and still won't allow unsafe memory access.
  • The ecs_find! query and its borrow variant now return an Option<T> of the query closure's return type, which may be Option<()>. This will be Some if the entity is found, and None otherwise.
  • Adding the EntityRaw and EntityRawAny types, which accelerate lookup by skipping the slot lookup step. These are version-invalidated if the archetype's ordering changes (namely, when an entity is removed). These can be used interchangeably with Entity and EntityAny in most situations (the main exception being the destroy functions on worlds and archetypes).
  • Adding the View and ViewHas types, and the view(entity) function. These allow access, including generic access, to a single entity's multiple components from a single lookup, without requiring a find query.

v0.2.1

13 Jun 03:56
Compare
Choose a tag to compare
v0.2.1 Pre-release
Pre-release
  • Archetypes now have exposed const functions to get each of their component IDs in the form of get_id_component_name.
  • This change also suppresses a warning on ecs_world about some functions names not being snake_case.

v0.2.0

10 Jun 22:46
ac95267
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release
  • Adds support for archetypes with Vec-like dynamic storage capacity. This can be used by setting the keyword dyn as the capacity value in the ecs_archetype! declaration. Worlds generated by ecs_world! now have a with_capacity function with arguments for each dynamic archetype to pre-allocate storage.
    • Fixed-capacity archetypes won't have arguments in with_capacity -- they are always allocated to their full fixed capacity on world creation.
  • Adds an Entity<_> pseudo-parameter to queries. This will match any archetype like EntityAny, but will yield a typed Entity<A> for the currently-matched archetype in the query body.
  • Adds a new 32_components crate feature to go up to 32 maximum components in a single archetype. Enabling this feature may impact compile times.

v0.1.0

05 Jun 17:18
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release
Touch up and polish on docs. Bumping to 0.1.0