Module ecs

Source
Expand description

Implements Khora’s custom Chunked Relational Page ECS (CRPECS).

This module contains the complete implementation of the engine’s Entity-Component-System, which is the heart of the [D]ata layer in the CLAD architecture.

The CRPECS is designed from the ground up to enable the Adaptive Game Data Flows (AGDF) concept from the SAA philosophy. Its key architectural feature is the dissociation of an entity’s identity from the physical storage of its component data, which allows for extremely fast structural changes (adding/removing components).

The primary entry point for interacting with the ECS is the World struct.

Structs§

Children
A component that lists the direct children of an entity.
ComponentPage
A page of memory that stores the component data for multiple entities in a Structure of Arrays (SoA) layout.
EntityId
A unique identifier for an entity in the world.
EntityMetadata
Represents the central record for an entity, acting as a “table of contents” that points to the physical location of its component data across various ComponentPages.
GlobalTransform
A component that stores the final, calculated, world-space transformation of an entity.
PageIndex
A logical address pointing to an entity’s component data within a specific ComponentPage.
Parent
A component that establishes a parent-child relationship.
Query
An iterator that yields the results of a WorldQuery.
Transform
A component that describes an entity’s position, rotation, and scale relative to its Parent. If the entity has no Parent, this is relative to the world origin.
Without
A WorldQuery filter that matches entities that do NOT have component T.
World
The central container for the entire ECS, holding all entities, components, and metadata.

Enums§

SemanticDomain
Defines the semantic domains a component can belong to.

Traits§

Component
A marker trait for types that can be used as components in the ECS.
ComponentBundle
A trait for any collection of components that can be spawned together as a single unit.
WorldQuery
A trait implemented by types that can be used to query data from the World.