Changelog
-
stable_id- Added
include/enttx/stable_id.hppwith a strongly-typed stable ID wrapper (null-value handling, equality/comparison,std::hashsupport). - Added a monotonic ID generator for sequential, collision-free IDs.
- Added a fast, zero-dependency,
splitmixgenerator for random identifiers (uint32_t, uint64_t). - Added
example_stable_id.cppandtest_stable_id.cppcovering generation, hashing, and registry lookup.
- Added
-
entity_remapbasic_entity_remap(and the remap API) reworked to be generic over key/value types instead of being entity-only, so it can remap stable IDs as well as entities.
-
hierarchy- Tests updated to match the new configuration requirements.
-
core- Added a shared "pageless component" concept, reused by
prefabandobserver.
- Added a shared "pageless component" concept, reused by
-
prefab- Prefab nodes now use monotonic stable IDs for identity instead.
- Entity-based remapping applied on instantiation, using the generalized
entity_remap. - Tests updated for the new stable-ID-based identity model.
-
change_mixin- Added
include/enttx/change_mixin.hpp, emitting pre-update notifications so observers can capture component state before a change is applied.
- Added
-
observer- Added
include/enttx/observer.hpp: records valued and pageless (tag-like) component changes. - Collects typed "commits" representing a batch of changes.
- Supports inverting commits (undo) and re-applying them (redo/replay).
- Serializes and loads change segments for persistence/network transport.
- Supports remapping entities within recorded changes (e.g. after prefab instantiation or deserialization).
*Added test_observer.cpp covering undo/redo, serialization round-trips, and remapping.
- Added
Special thanks to Placeblock for design inspiration for the observer system which is based off of entt-net. Website
Full Changelog: v1.1.0...v1.2.0