Skip to content

Releases: AsherFarag/enttx

EnTTx v1.2.0

Choose a tag to compare

@AsherFarag AsherFarag released this 25 Aug 08:20
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

EnTTx v1.1.0

Choose a tag to compare

@AsherFarag AsherFarag released this 13 Aug 07:14

Changelog

  • config

    • Added macro ENTTX_USER_ASSERT to mark specific assertions as user logic errors rather unexpected behaviour.
  • hierarchy

    • Added hierarchy_config to customize basic_hierarchy instead of passing each config option as a template param.
    • Added hierarchy_events for signals on relationship operations. Can be disabled via hierarchy_config::enable_events = false.
    • Refactored to be cleaner and simpler to read (Moving iterator definitions out of basic_hierarchy, etc).
  • prefab

    • Moved remap_traits to entity_remap.hpp.
    • basic_prefab_registry::create_prefab now accepts a root_hint. Useful for loading a base prefab into the registry.
    • Added rebuild_cache to basic_prefab_registry for loading new prefabs into an existing registry.
  • entity_remap

    • Added is_entity_remapper concept as now a remapper is just a functor object with that takes in an entity and returns an entity.
    • remap can now accept any type that satisfies the is_entity_remapper concept.
    • basic_entity_remap now uses entt::dense_map instead of std::unordered_map
    • Added map to basic_entity_remap to easily map an old entity to a new entity.
    • Removed translate and replaced it with entity_type operator()(entity_type old) in basic_entity_remap to satisfy is_entity_remapper .
  • tests

    • Updated tests to match the new api's.

Full Changelog: v1.0.0...v1.1.0

EnTTx v1.0.0

Choose a tag to compare

@AsherFarag AsherFarag released this 06 Aug 13:18

EnTTx v1.0.0

First stable release

This release marks the first stable version of EnTTx, a collection of extensions for EnTT that provide higher-level ECS functionality while keeping the same lightweight, data-oriented design philosophy.

Features

Hierarchy System

Added a fast, cache-friendly entity hierarchy system for managing parent/child relationships.

Features include:

  • Parent-child relationships
  • O(1) hierarchy operations
  • Sibling ordering
  • Child iteration
  • Descendant traversal
  • Reparenting support
  • Automatic cleanup when entities are destroyed

Prefab System

Added a full prefab authoring and instantiation system built on top of EnTT.

Features include:

  • Creating reusable prefab definitions
  • Prefab inheritance through IsA relationships
  • Component overrides
  • Component removal overrides
  • Nested prefabs
  • Runtime instantiation
  • Entity remapping

Compatibility

  • Requires EnTT v4.0.0+
  • Requires C++20
  • Header-only library
  • No external dependencies

Breaking Changes

This release establishes the v1.0 API. Future releases will follow semantic versioning:

  • Patch releases (1.0.x) will only contain bug fixes
  • Minor releases (1.x.0) may add backwards-compatible features
  • Major releases (x.0.0) may contain breaking API changes

Getting Started

See the documentation and examples for usage.