Skip to content

Home > @esengine/ecs-framework-monorepo

ecs-framework-monorepo package

Classes

Class

Description

ArchetypeSystem

Archetype系统

根据实体的组件组合将实体分组到不同的原型中,提供高效的查询性能。

BitMask64Utils

Bits

64位位集合类,用于高效的位操作 支持最多64个位的设置、清除、查询和逻辑运算

ComponentDataCollector

组件数据收集器

ComponentIndex

通用组件索引实现

基于Sparse Set算法: - O(1)的实体添加、删除、查找 - 高效的位运算查询 - 内存紧凑的存储结构 - 缓存友好的遍历性能

ComponentIndexManager

组件索引管理器

使用统一的组件索引实现,自动优化查询性能。

ComponentPool

组件对象池,用于复用组件实例以减少内存分配

ComponentPoolManager

全局组件池管理器

ComponentRegistry

组件注册表 管理组件类型的位掩码分配

ComponentSparseSet

组件稀疏集合实现

结合通用稀疏集合和组件位掩码

存储结构: - 稀疏集合存储实体 - 位掩码数组存储组件信息 - 组件类型映射表

ComponentStorage

高性能组件存储器

ComponentTypeManager

组件类型管理器 负责管理组件类型的注册和ID分配

ConsoleLogger

默认控制台日志实现

Core

游戏引擎核心类

负责管理游戏的生命周期、场景切换、全局管理器和定时器系统。 提供统一的游戏循环管理。

DebugManager

调试管理器

整合所有调试数据收集器,负责收集和发送调试数据

DirtyTrackingSystem

脏标记追踪系统

提供高效的组件和实体变更追踪,避免不必要的计算和更新。 支持细粒度的脏标记和批量处理机制。

ECSFluentAPI

ECS流式API主入口 提供统一的流式接口

Emitter

用于事件管理

Entity

游戏实体类

ECS架构中的实体(Entity),作为组件的容器。 实体本身不包含游戏逻辑,所有功能都通过组件来实现。 支持父子关系,可以构建实体层次结构。

EntityDataCollector

实体数据收集器

EntityList

高性能实体列表管理器 管理场景中的所有实体,支持快速查找和批量操作

EntityManager

实体管理器

提供统一的实体管理和查询机制,支持高效的实体操作。 包括实体的创建、销毁、查询和索引管理功能。

EntityProcessorList

实体处理器列表管理器 管理场景中的所有实体系统

EntityQueryBuilder

实体查询构建器

提供流式API来构建复杂的实体查询条件。支持组件过滤、标签过滤、状态过滤和自定义条件。

EventBus

增强的事件总线实现 基于TypeSafeEventSystem,提供类型安全的事件发布订阅机制

EventTypeValidator

事件类型验证器 验证事件类型是否有效

FuncPack

用于包装事件的一个小类

GlobalEventBus

全局事件总线实例 提供全局访问的事件总线

GlobalManager

全局管理器的基类。所有全局管理器都应该从此类继承。

IdentifierPool

世代式ID池管理器

用于管理实体ID的分配和回收,支持世代版本控制以防止悬空引用问题。 世代式ID由索引和版本组成,当ID被回收时版本会递增,确保旧引用失效。

支持动态扩展,理论上可以支持到65535个索引(16位),每个索引65535个版本(16位)。 总计可以处理超过42亿个独特的ID组合,完全满足ECS大规模实体需求。

LoggerManager

日志管理器

Matcher

实体匹配条件描述符

用于描述实体查询条件,不执行实际查询

NumberExtension

数字扩展工具类 提供数字转换的实用方法

PerformanceDataCollector

性能数据收集器

PerformanceMonitor

高性能监控器 用于监控ECS系统的性能表现,提供详细的分析和优化建议

Pool

高性能通用对象池 支持任意类型的对象池化,包含详细的统计信息

PoolManager

池管理器 统一管理所有对象池

QuerySystem

高性能实体查询系统

提供快速的实体查询功能,支持按组件类型、标签、名称等多种方式查询实体。 系统采用多级索引和智能缓存机制,确保在大量实体场景下的查询性能。

主要特性: - 支持单组件和多组件查询 - 自动索引管理和缓存优化 - WebAssembly计算加速(如果可用) - 详细的性能统计信息

Scene

游戏场景默认实现类

实现IScene接口,提供场景的基础功能。 推荐使用组合而非继承的方式来构建自定义场景。

SceneDataCollector

场景数据收集器

SoAStorage

SoA存储器(需要装饰器启用) 使用Structure of Arrays存储模式,在大规模批量操作时提供优异性能

SparseSet

稀疏集合实现

提供O(1)的插入、删除、查找操作,同时保持数据的紧凑存储。 使用密集数组存储实际数据,稀疏映射提供快速访问

T 存储的数据类型

SystemDataCollector

系统数据收集器

Time

时间管理工具类 提供游戏时间相关的功能,包括帧时间、总时间、时间缩放等

Timer

私有类隐藏ITimer的实现

TimerManager

允许动作的延迟和重复执行

TypeSafeEventSystem

类型安全的高性能事件系统 支持同步/异步事件、优先级、批处理等功能

TypeUtils

类型工具类 提供类型相关的实用方法

WebSocketManager

WebSocket连接管理器

World

World类 - ECS世界管理器

World是Scene的容器,每个World可以管理多个Scene。 这种设计允许创建独立的游戏世界,如: - 游戏房间(每个房间一个World) - 不同的游戏模式 - 独立的模拟环境

WorldManager

World管理器 - 管理所有World实例

WorldManager是全局单例,负责管理所有World的生命周期。 每个World都是独立的ECS环境,可以包含多个Scene。

Abstract Classes

Abstract Class

Description

Component

游戏组件基类

ECS架构中的组件(Component),用于实现具体的游戏功能。 组件包含数据和行为,可以被添加到实体上以扩展实体的功能。

EntitySystem

实体系统的基类

用于处理一组符合特定条件的实体。系统是ECS架构中的逻辑处理单元, 负责对拥有特定组件组合的实体执行业务逻辑。

IntervalSystem

间隔系统抽象类 定义一个按时间间隔处理的抽象类,继承自EntitySystem类 子类需要实现process方法,用于实现具体的处理逻辑

PassiveSystem

被动实体系统 定义一个被动的实体系统,继承自EntitySystem类 被动的实体系统不会对实体进行任何修改,只会被动地接收实体的变化事件

ProcessingSystem

处理系统抽象类 定义一个处理实体的抽象类,继承自EntitySystem类 子类需要实现processSystem方法,用于实现具体的处理逻辑

Enumerations

Enumeration

Description

DirtyFlag

脏标记类型

ECSEventType

ECS事件类型枚举 定义实体组件系统中的所有事件类型

EventPriority

事件优先级枚举 定义事件处理的优先级级别

LogLevel

日志级别

Functions

Function

Description

AsyncEventHandler(eventType, config)

异步事件装饰器工厂 用于自动注册异步事件监听器

createECSAPI(scene, querySystem, eventSystem)

创建ECS流式API实例

createLogger(name)

创建命名日志器

ECSComponent(typeName)

组件类型装饰器 用于为组件类指定固定的类型名称,避免在代码混淆后失效

ECSSystem(typeName)

系统类型装饰器 用于为系统类指定固定的类型名称,避免在代码混淆后失效

EnableSoA(target)

启用SoA优化装饰器 默认关闭SoA,只有在大规模批量操作场景下才建议开启

EventHandler(eventType, config)

事件装饰器工厂 用于自动注册事件监听器

Float32(target, propertyKey)

32位浮点数装饰器 标记字段使用Float32Array存储(默认类型,平衡性能和精度)

Float64(target, propertyKey)

64位浮点数装饰器 标记字段使用Float64Array存储(更高精度但更多内存)

getComponentInstanceTypeName(component)

从组件实例获取类型名称

getComponentTypeName(componentType)

获取组件类型的名称,优先使用装饰器指定的名称

getSystemInstanceTypeName(system)

从系统实例获取类型名称

getSystemTypeName(systemType)

获取系统类型的名称,优先使用装饰器指定的名称

HighPrecision(target, propertyKey)

高精度数值装饰器 标记字段需要保持完整精度,存储为复杂对象而非TypedArray

Int32(target, propertyKey)

32位整数装饰器 标记字段使用Int32Array存储(适用于整数值)

resetLoggerColors()

重置日志颜色为默认配置

SerializeMap(target, propertyKey)

序列化Map装饰器 标记Map字段需要序列化/反序列化存储

setGlobalLogLevel(level)

设置全局日志级别

setLoggerColors(colors)

设置全局日志颜色配置

Interfaces

Interface

Description

Archetype

原型数据结构

ArchetypeInfo

Archetype分组信息

ArchetypeQueryResult

原型查询结果

ArchetypeSystemInfo

Archetype系统信息

BitMask64Data

64位掩码数据结构,使用两个32位整数表示

CacheStats

缓存统计信息

ComponentPropertyInfo

组件属性信息

ComponentStatsInfo

组件统计信息

DebugChannels

调试数据通道配置

DirtyData

脏标记数据

DirtyListener

脏标记监听器

ECSStats

ECS统计信息接口

EntityComponentInfo

实体组件信息

EntityDetailInfo

实体详情信息

EntityListStats

实体列表统计信息

EventListenerConfig

事件监听器配置

EventStats

事件统计信息

IComponent

组件接口

定义组件的基本契约,所有组件都应该实现此接口

IComponentDebugData

组件调试数据接口

IComponentEventData

组件事件数据接口

IComponentIndex

组件索引接口

ICoreConfig

Core配置接口

IdentifierPoolStats

ID池统计信息接口

IECSDebugConfig

ECS调试配置接口

IECSDebugData

ECS调试数据接口

IEntityDebugData

实体调试数据接口

IEntityEventData

实体事件数据接口

IEntityHierarchyNode

实体层次结构节点接口

IEventBus

事件总线接口 提供类型安全的事件发布订阅机制

IEventData

事件数据基类接口

IEventListenerConfig

事件监听器配置接口

IEventStats

事件统计信息接口

ILogger

日志接口

IndexStats

索引统计信息

IPerformanceDebugData

性能调试数据接口

IPerformanceEventData

性能事件数据接口

IPoolable

可池化对象接口

IScene

场景接口定义

定义场景应该实现的核心功能和属性,使用接口而非继承提供更灵活的实现方式。

ISceneConfig

场景配置接口

ISceneDebugData

场景调试数据接口

ISceneEventData

场景事件数据接口

ISceneFactory

场景工厂接口

ISystemBase

系统基础接口

为现有的EntitySystem类提供类型定义

ISystemDebugData

系统调试数据接口

ISystemEventData

系统事件数据接口

ITimer

IWorldConfig

World配置接口

IWorldManagerConfig

WorldManager配置接口

LoggerColorConfig

日志颜色配置接口

LoggerConfig

日志配置

MemoryDetails

内存详情信息

MemoryStats

内存统计信息

OptimizationStats

优化统计信息

PerformanceData

性能监控数据

PerformanceStats

性能统计信息

PoolStats

对象池统计信息

QueryIndexStats

查询索引统计信息

QueryStats

查询统计信息

QuerySystemStats

查询系统统计信息

SparseSetMemoryStats

SparseSet内存统计信息

StorageStats

组件存储统计信息

SystemBreakdownInfo

系统性能占比信息

SystemInfo

系统信息

SystemPerformanceInfo

系统性能信息

Variables

Variable

Description

Colors

预定义的颜色常量

COMPONENT_TYPE_NAME

存储组件类型名称的Symbol键

EVENT_TYPES

预定义的事件类型常量 提供类型安全的事件类型字符串

Logger

默认日志器实例

SYSTEM_TYPE_NAME

存储系统类型名称的Symbol键

Type Aliases

Type Alias

Description

ArchetypeId

原型标识符

ComponentConstructor

组件类型定义

用于类型安全的组件操作 支持任意构造函数签名,提供更好的类型安全性

ComponentType

组件类型定义

基于 MIT 许可证发布