Skip to content

Releases: rj00a/evenio

v0.6.0

19 May 06:46
Compare
Choose a tag to compare
  • Removed Send + Sync requirements from all data in the World, including components, handlers, and events. World is now !Send + !Sync.
  • Added Deref and DerefMut impls for Single, TrySingle, Has<Q>.
  • Allow sending events with borrowed data in World::send.
  • Removed 'static bound from Event.
  • Event is now split into separate GlobalEvent and TargetedEvent traits (which inherit from the base Event trait). Use the derive macros to safely implement them.
  • Redesigned how targeted events are represented and sent. Use World::send_to and Sender::send_to.
  • Event::IS_IMMUTABLE and Component::IS_IMMUTABLE have been replaced with marker types for use in where clauses. See evenio::mutability.
  • Removed World::send_many.
  • Fixed bug where entities could spawn with identical entity IDs.
  • Set MSRV to 1.78.0
  • Improved diagnostics for add_handler compiler errors.
  • Added Fetcher::get_unchecked.
  • Changed some unit structs into uninhabited enums.

v0.5.0

07 Apr 19:12
Compare
Choose a tag to compare
  • Redesign component access checking. Complex queries will now pass the component access checker in more cases.
  • Improve diagnostics for component access errors.
  • Redesign Config interface to hide implementation details. (Now named HandlerConfig).
  • Removed bit_set and sparse modules from public API.
  • Added Fetcher::get_many_mut.
  • Removed AliasedMutability variant from GetError and added GetManyMutError.

v0.4.2

25 Mar 05:24
Compare
Choose a tag to compare
  • Fixed bug in entity despawning.

v0.4.1

24 Mar 15:50
0913f3b
Compare
Choose a tag to compare
  • Impl Send and Sync for UnsafeWorldCell and Fetcher.
  • Removed dependency on memoffset.

v0.4.0

09 Mar 11:08
Compare
Choose a tag to compare
  • Renamed "system" to "handler" to avoid confusion with other ECS libraries.
  • Removed Column::component_index. To obtain the component index of a column, use Archetype::component_indices.
  • Fixed bug related to handler ordering. Handlers with the same priority always run in the order they were added to the world.
  • Changed alignment of identifier types to match u64.
  • Renamed Priority::{Before, Normal, After} to Priority::{High, Medium, Low}.
  • Renamed World::{get_component, get_component_mut} to World::{get, get_mut}.
  • Fixed empty fetcher iteration bug.

v0.3.0

14 Feb 02:52
Compare
Choose a tag to compare
  • Fixed bug that occurs when changing event target archetype while broadcasting.
  • Changed behavior of event queue. The next event in the queue is handled only once the current event has finished broadcasting.
  • Changed EventPtr interface and relaxed Send and Sync bounds for EventMut.
  • Fixed buggy behavior when mutating the target of a broadcasting event.

v0.2.2

09 Feb 02:51
Compare
Choose a tag to compare
  • Update documentation

v0.2.1

02 Feb 08:35
Compare
Choose a tag to compare
  • Added Rayon parallel iterator for Fetcher, available behind the rayon feature flag.
  • Fixed archetype refresh bugs and changed semantics of refresh_archetype.
  • Fixed potential "cannot shadow tuple struct with let binding" errors in derived Query and SystemParam impls.
  • Added #[must_use] attribute to iterators.
  • Relaxed auto trait impls for various types.
  • Minor performance improvements.