Commit graph

109 commits

Author SHA1 Message Date
056a855a32 Fix false-positive unused lambda capture in ecs::dispatcher 2026-06-30 23:45:24 +03:00
424bf5f533 Add ecs::container::detach_finally/destroy_finally helpers 2025-10-10 16:01:17 +03:00
4a4f680d0a Add debug assertions for when an entity's archetype is changed while it is being created/destroyed 2025-10-10 16:01:00 +03:00
fa214ed956 Support more generic index factories in ecs container 2025-08-24 12:09:00 +03:00
b83a3635fc Remove modification callbacks API from ecs::container - ain't gonna implement them anyway 2025-08-11 18:19:44 +03:00
93aa697347 Support RAII-wrapping the execution of an ECS system into some context (e.g. for profiling) 2025-04-13 17:36:43 +03:00
083e5841aa Add ecs::container::finally mechanism 2025-04-10 11:57:50 +03:00
8099e928dc Add std::format formatter for ecs::handle 2025-04-04 21:07:31 +03:00
e5811b61a0 Fix triggering constructor & destructor callbacks when attaching/detaching ecs components 2025-03-06 18:20:40 +03:00
cd31187d3f Add missing include 2025-02-02 21:28:59 +03:00
cca966b33e Fix missing include 2025-01-30 12:38:10 +03:00
6fc476f1f0 Support building without Boost.Stacktrace 2025-01-26 14:45:43 +03:00
5587c43611 ECS library 32-bit fixes 2025-01-25 21:14:32 +03:00
2c3565df61 32-bit compilation fixes:
* Use uint64_t instead of size_t as hash return value

 * Expect alignof(uint64_t) <= 8 instead of == 8
2025-01-25 20:35:37 +03:00
bfa0491f39 Support retrieving ECS table statistics 2024-11-29 01:15:35 +03:00
80b4cc938d Fix constructors & destructors order
Order of callbacks was affected by the order of caches, which are pretty
much arbitrary. For a fix, explicitly order the callbacks globally
per-world.
2024-11-28 18:55:17 +03:00
ad752f0ea1 Separate ordered & unordered component hashes in ecs 2024-11-18 16:55:39 +03:00
3359aaa62d Simplify ecs::query_cache_container: store caches directly instead of storing nodes with uuid duplicates 2024-11-18 16:42:23 +03:00
95492efea7 Add copy assignment to ecs::accessor 2024-09-13 23:27:48 +03:00
655dd2778f Implement string entity description in ecs 2024-09-01 23:59:31 +03:00
fbf78f1dc4 Fix east const 2024-08-31 14:40:08 +03:00
d032f93eb3 Support retrieving entity count from ecs::container 2024-08-29 15:52:21 +03:00
02bd1dc2f1 Globally disable -Wdangling-reference for GCC-13+ 2024-08-21 19:17:59 +03:00
403e24bf4c Add null ecs handle for convenience 2024-07-19 00:35:37 +03:00
99ca3ec2eb Bugfix in ecs query caches: store the component UUIDs in vectors instead of hash sets, because the order of components matters 2024-07-10 21:21:05 +03:00
e55a98c2a0 Add ecs::accessor::contains(uuid) 2024-06-27 16:51:25 +03:00
37a3d7f827 Fix ecs::dispatcher to work with ecs::without 2024-06-19 14:37:09 +03:00
faacf6dbc0 Tiny fix in ecs accessor is_empty constness 2024-06-16 20:41:39 +03:00
bd1393c505 Improve working with ecs caches, support retrieving ecs cache & table count, and fix ecs query container memory leak 2024-06-03 13:59:50 +03:00
68d4adcad2 Support reporting ECS memory usage 2024-06-03 11:35:37 +03:00
7279a5b6f5 Fix unused caches in ecs::dispatcher 2024-06-02 15:48:04 +03:00
fc18c75557 Fix ecs bug when finalizing removal of detached entity in the last row of the old table 2024-05-31 19:07:51 +03:00
0bfedccc7b Fix typo in ecs 2024-05-31 19:06:00 +03:00
b04456066b Fix ecs documentation 2024-05-27 18:51:35 +03:00
443fa3d8ca ECS object lifetime issues fixes 2024-05-24 21:42:17 +03:00
b9b18b800d Properly call constructors & destructors when attaching/detaching ECS components 2024-05-23 13:28:48 +03:00
cedc29f39a Allow creating ECS entities inside batch systems 2024-05-21 19:20:04 +03:00
eab13e2ae5 Track uuid->type mapping for ecs components and throw an exception when the same uuid is used for different components 2024-05-21 13:38:05 +03:00
6591dd1893 Remove unused includes in ecs/container.hpp 2024-05-21 13:37:25 +03:00
938aa688cc Fix registering const components 2024-05-21 13:23:14 +03:00
70b260ec50 Fix delete[] alignment in ecs table storage 2024-05-21 13:22:49 +03:00
933874eddf Add #pragmas in ecs::accessor to silence false-positive dangling reference warning in GCC 2024-05-21 13:22:27 +03:00
d9935c7476 Use std::list in ecs::query_cache to prevent reallocation problems 2024-05-21 13:21:49 +03:00
713a479eed Fix registering ecs constructors & destructors 2024-05-20 16:43:25 +03:00
1da8e341c5 Trigger constructors when cloning an ecs entity 2024-05-20 16:43:11 +03:00
2423547973 Bugfix: allow ecs constructors & destructors to mutate entities 2024-05-20 16:42:43 +03:00
045f399245 Refactor ecs::container::clone in terms of try_clone 2024-05-20 16:41:27 +03:00
d09bd76a14 Add a few debug assertions to ecs::container 2024-02-10 23:47:59 +03:00
04443b1e3a Support mutable lambdas in ecs::dispatcher 2024-02-05 13:04:53 +03:00
13a86a76c8 Add ecs::dispatcher - an event-based ECS system launcher 2024-02-03 15:22:33 +03:00