Commit Graph

5 Commits

Author SHA1 Message Date
hypercross 48f3319615 feat: add relationship components and reverse indexing
Introduces a relationship system to allow entities to point to other
entities. Includes a `Relationship<TSelf, TTarget>` component and a
`RelationshipIndex` to enable efficient reverse lookups (finding all
sources pointing to a specific target).

The `World.DestroyEntity` method now performs cascading removals:
- Relationships where the entity is the source are removed.
- Relationships where the entity is the target are removed from their
  respective source entities.

Also adds MessagePack support to `Entity` and `Relationship`.
2026-07-18 19:42:59 +08:00
hypercross c5578d4412 feat: add deferred command queue system 2026-07-18 19:38:10 +08:00
hypercross e4afaafd02 feat: add query system and system execution logic
Introduces a complete query system for iterating over entities with
specific component combinations, including support for "with" and
"without" filters.

Also adds:
- `ISystem` and `ITickedSystem` interfaces for defining logic.
- `SystemGroup` for managing and running groups of systems.
- `QueryBuilder` for a fluent API to construct queries.
- `QueryExecutor` for high-performance iteration using ref parameters.
- `Tick` and `TickType` to support timed and logical updates.
2026-07-18 19:33:05 +08:00
hypercross 6739cf4ac9 docs: add ADR-012 and MessagePack serialization guidelines
- Update design.md with MessagePack component requirements
- Add ADR-012 to architecture.md regarding public type requirements
- Add MessagePackAnalyzer to OECS.csproj for compile-time validation
2026-07-18 19:07:22 +08:00
hypercross 34439e0f95 feat: initialize OECS project structure
Initializes the OECS repository with the core foundation, including:

- Entity management with 24-bit IDs and 8-bit versioning
- Sparse set-based component storage
- Entity allocation and recycling logic
- Core World API for entity and component lifecycle
- Project scaffolding for source and unit tests
- Design documentation and architecture decision records (ADRs)
2026-07-18 19:03:37 +08:00