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.