Commit graph

70 commits

Author SHA1 Message Date
BimDav
4ef18e2608
Resource change tracking (#388)
* Add mutated tracker on resources and ChangedRes query for added or mutated resources.

* ResMut:::new() now takes a reference to a 'mutated' flag in its archetype.

* Change FetchResource so that get() returns an Option. Systems using Resources will only be called if all fetched Resources are Some(). This is done to implement ChangedRes, which is Some iff the Resource has been changed.

* Add OrRes for a logical or in tuples of Resource queries.

* Separate resource query get() in is_some() and get() methods for clarity

* Remove unneeded unsafe

* Change ResMut::new()
2020-09-10 13:15:02 -07:00
Tristan Pemble
43463a7a06
Optimize transform systems to only run on change (#417)
Optimize transform systems to only run on change
2020-09-06 12:53:14 -07:00
Halfwhit
14bfd698c5 Update lib.rs 2020-08-13 17:39:33 +01:00
Carter Anderson
423c5e3e0f ecs: prepare for publishing 2020-08-09 18:16:12 -07:00
Carter Anderson
141044aae7 ecs: publicly expose Added/Changed and inline some things 2020-07-22 16:19:27 -07:00
Carter Anderson
e673faab7c ecs: rename Changed<T> to Mutated<T> 2020-07-22 12:42:12 -07:00
Carter Anderson
fe1adb6cf6 ui: focus/click/hover system. initial buttons 2020-07-18 14:08:46 -07:00
Carter Anderson
19fe299f5a ecs: use Mut<T> tracking pointer everywhere 2020-07-18 02:09:55 -07:00
Carter Anderson
fbcf3f89d0 ecs: rename ComMut<T> to Track<T> and fix nested change queries 2020-07-18 01:05:06 -07:00
Carter Anderson
31d00ad861 ecs: initial component change tracking
(changing entity archetypes currently breaks tracking)
2020-07-17 17:50:17 -07:00
Carter Anderson
9f26a453c6 ecs: simplify imports 2020-07-16 19:20:51 -07:00
Carter Anderson
b12c4d0a48 render: simplify imports and cleanup prelude 2020-07-16 18:26:21 -07:00
Carter Anderson
196bde64e3 cargo fmt 2020-07-16 17:23:50 -07:00
Carter Anderson
4712e96aa8 ecs: make parallel executor resource-aware 2020-07-15 17:20:36 -07:00
Carter Anderson
1f6c9ece1d ecs: call prepare() inside ParallelExecutor::run()
also moved some things around
2020-07-14 16:23:25 -07:00
Carter Anderson
0dc810a37a ecs: add thread local system support to parallel executor 2020-07-14 14:19:17 -07:00
Carter Anderson
8d3a5ae0f1 ecs: initial parallel schedule executor
currently only considers component archetypes. still missing proper handling of thread local systems and resources
2020-07-13 19:36:41 -07:00
Carter Anderson
17f3860d12 remove unsafe Clone implementation on Res/ResMut in favor of UnsafeClone 2020-07-12 12:06:43 -07:00
Carter Anderson
c81ab99dac cargo fmt 2020-07-10 01:37:06 -07:00
Carter Anderson
950e50bbb1 Bevy ECS migration 2020-07-10 01:06:21 -07:00