Skip to content

EnTTx v1.2.0

Latest

Choose a tag to compare

@AsherFarag AsherFarag released this 25 Aug 08:20
· 2 commits to main since this release
e33c369

Changelog

  • stable_id

    • Added include/enttx/stable_id.hpp with a strongly-typed stable ID wrapper (null-value handling, equality/comparison, std::hash support).
    • Added a monotonic ID generator for sequential, collision-free IDs.
    • Added a fast, zero-dependency, splitmix generator for random identifiers (uint32_t, uint64_t).
    • Added example_stable_id.cpp and test_stable_id.cpp covering generation, hashing, and registry lookup.
  • entity_remap

    • basic_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 prefab and observer.
  • 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.
  • 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.

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