Releases: AsherFarag/enttx
Releases · AsherFarag/enttx
Release list
EnTTx v1.2.0
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
EnTTx v1.1.0
Changelog
-
config- Added macro
ENTTX_USER_ASSERTto mark specific assertions as user logic errors rather unexpected behaviour.
- Added macro
-
hierarchy- Added
hierarchy_configto customizebasic_hierarchyinstead of passing each config option as a template param. - Added
hierarchy_eventsfor signals on relationship operations. Can be disabled viahierarchy_config::enable_events = false. - Refactored to be cleaner and simpler to read (Moving iterator definitions out of
basic_hierarchy, etc).
- Added
-
prefab- Moved
remap_traitstoentity_remap.hpp. basic_prefab_registry::create_prefabnow accepts aroot_hint. Useful for loading a base prefab into the registry.- Added
rebuild_cachetobasic_prefab_registryfor loading new prefabs into an existing registry.
- Moved
-
entity_remap- Added
is_entity_remapperconcept as now a remapper is just a functor object with that takes in an entity and returns an entity. remapcan now accept any type that satisfies theis_entity_remapperconcept.basic_entity_remapnow usesentt::dense_mapinstead ofstd::unordered_map- Added
maptobasic_entity_remapto easily map an old entity to a new entity. - Removed
translateand replaced it withentity_type operator()(entity_type old)inbasic_entity_remapto satisfyis_entity_remapper.
- Added
-
tests- Updated tests to match the new api's.
Full Changelog: v1.0.0...v1.1.0
EnTTx v1.0.0
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
IsArelationships - 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.