Table of Contents

Namespace KeenEyes

Classes

Archetype

An archetype stores all entities that share the same set of component types. Entities are stored in fixed-size chunks for cache-friendly iteration and reduced GC pressure.

ArchetypeChunk

A fixed-size block of entity storage within an archetype. Chunks provide cache-friendly memory layout and enable pooling for reduced GC pressure.

ArchetypeManager

Manages archetype lifecycle and entity-to-archetype mappings. Handles archetype creation, entity migration, and query matching.

ChunkPool

Manages pooling and reuse of archetype chunks to reduce GC pressure.

CommandBufferPool

Provides per-system isolated command buffers for parallel system execution.

ComponentArrayPoolManager

Per-world manager for pooled component arrays. Provides pooled arrays for component storage, reducing garbage collection pressure. Uses .NET's built-in ArrayPool<T>.Shared for efficient memory reuse.

ComponentArray<T>

Typed component storage for an archetype, using pooled arrays for efficiency. Stores components contiguously in memory for cache-friendly iteration.

ComponentDependencies

Represents the component read/write dependencies of a system.

ComponentInfo

Runtime metadata for a registered component type within a specific World.

ComponentMeta<T>

Compile-time metadata for a component type. This is generated by the source generator and contains no instance state.

ComponentRegistry

Registry that tracks component types for a specific World. Each World has its own registry, allowing isolated ECS instances.

ComponentValidationException

Exception thrown when component validation fails during entity creation or modification.

EntityBuilder

Fluent builder for creating entities with components.

EntityPool

Manages entity ID recycling with version tracking. Reduces allocations by reusing entity IDs after entities are destroyed.

FixedComponentArray<T>

Fixed-capacity component storage for use in archetype chunks. Unlike ComponentArray<T>, this array does not grow and uses a simple pre-allocated array for predictable memory layout.

ParallelQueryExtensions

Provides parallel iteration extensions for query builders.

ParallelSystemBatcher

Analyzes system dependencies and groups systems into parallel execution batches.

PluginContext

Provides context for plugin installation and uninstallation operations.

QueryDescription

Describes which components a query includes, requires, and excludes.

QueryManager

Manages query caching and archetype matching for efficient query execution. Caches archetype matches per query descriptor and invalidates on archetype changes.

SystemDependencyTracker

Tracks component dependencies for all registered systems.

World

The world is the container for all entities and their components. Each world is completely isolated with its own component registry.

WorldBuilder

Fluent builder for configuring and creating independent World instances.

Structs

ArchetypeId

Unique identifier for an archetype based on its component type combination. Two archetypes with the same set of component types will have the same ArchetypeId.

BatchAnalysis

Contains the results of batch analysis.

ChunkPoolStats

Statistics for chunk pool usage.

ComponentId

Unique identifier for a component type.

QueryBuilder

Fluent builder for constructing queries.

QueryDescriptor

Immutable descriptor for a query, used as a cache key. Two queries with the same With and Without types produce the same descriptor.

QueryEnumerator

Enumerator for iterating over entities matching a query. Uses archetype-based iteration for cache-friendly performance.

SystemBatch

Represents a batch of systems that can execute in parallel.

SystemConflict

Represents a conflict between two systems.

TypeBatch

Represents a batch of system types that can execute in parallel.

Interfaces

IComponentArray

Non-generic interface for component storage within an archetype. Enables heterogeneous collection of typed component arrays.

Delegates

EntityActionReadOnly<T1>

Delegate for processing an entity with one readonly component.

EntityActionReadOnly<T1, T2>

Delegate for processing an entity with two readonly components.

EntityActionReadOnly<T1, T2, T3>

Delegate for processing an entity with three readonly components.

EntityActionReadOnly<T1, T2, T3, T4>

Delegate for processing an entity with four readonly components.

EntityAction<T1>

Delegate for processing an entity with one component.

EntityAction<T1, T2>

Delegate for processing an entity with two components.

EntityAction<T1, T2, T3>

Delegate for processing an entity with three components.

EntityAction<T1, T2, T3, T4>

Delegate for processing an entity with four components.