2025-06-12 09:42:35 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* ECS事件类型枚举
|
|
|
|
|
* 定义实体组件系统中的所有事件类型
|
|
|
|
|
*/
|
|
|
|
|
export enum ECSEventType {
|
|
|
|
|
// 实体相关事件
|
|
|
|
|
ENTITY_CREATED = 'entity:created',
|
|
|
|
|
ENTITY_DESTROYED = 'entity:destroyed',
|
|
|
|
|
ENTITY_ENABLED = 'entity:enabled',
|
|
|
|
|
ENTITY_DISABLED = 'entity:disabled',
|
|
|
|
|
ENTITY_TAG_ADDED = 'entity:tag:added',
|
|
|
|
|
ENTITY_TAG_REMOVED = 'entity:tag:removed',
|
|
|
|
|
ENTITY_NAME_CHANGED = 'entity:name:changed',
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 组件相关事件
|
|
|
|
|
COMPONENT_ADDED = 'component:added',
|
|
|
|
|
COMPONENT_REMOVED = 'component:removed',
|
|
|
|
|
COMPONENT_MODIFIED = 'component:modified',
|
|
|
|
|
COMPONENT_ENABLED = 'component:enabled',
|
|
|
|
|
COMPONENT_DISABLED = 'component:disabled',
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 系统相关事件
|
|
|
|
|
SYSTEM_ADDED = 'system:added',
|
|
|
|
|
SYSTEM_REMOVED = 'system:removed',
|
|
|
|
|
SYSTEM_ENABLED = 'system:enabled',
|
|
|
|
|
SYSTEM_DISABLED = 'system:disabled',
|
|
|
|
|
SYSTEM_PROCESSING_START = 'system:processing:start',
|
|
|
|
|
SYSTEM_PROCESSING_END = 'system:processing:end',
|
|
|
|
|
SYSTEM_ERROR = 'system:error',
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 场景相关事件
|
|
|
|
|
SCENE_CREATED = 'scene:created',
|
|
|
|
|
SCENE_DESTROYED = 'scene:destroyed',
|
|
|
|
|
SCENE_ACTIVATED = 'scene:activated',
|
|
|
|
|
SCENE_DEACTIVATED = 'scene:deactivated',
|
|
|
|
|
SCENE_PAUSED = 'scene:paused',
|
|
|
|
|
SCENE_RESUMED = 'scene:resumed',
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 查询相关事件
|
|
|
|
|
QUERY_EXECUTED = 'query:executed',
|
|
|
|
|
QUERY_CACHE_HIT = 'query:cache:hit',
|
|
|
|
|
QUERY_CACHE_MISS = 'query:cache:miss',
|
|
|
|
|
QUERY_OPTIMIZED = 'query:optimized',
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 性能相关事件
|
|
|
|
|
PERFORMANCE_WARNING = 'performance:warning',
|
|
|
|
|
PERFORMANCE_CRITICAL = 'performance:critical',
|
|
|
|
|
MEMORY_USAGE_HIGH = 'memory:usage:high',
|
|
|
|
|
FRAME_RATE_DROP = 'frame:rate:drop',
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 索引相关事件
|
|
|
|
|
INDEX_CREATED = 'index:created',
|
|
|
|
|
INDEX_UPDATED = 'index:updated',
|
|
|
|
|
INDEX_OPTIMIZED = 'index:optimized',
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// Archetype相关事件
|
|
|
|
|
ARCHETYPE_CREATED = 'archetype:created',
|
|
|
|
|
ARCHETYPE_ENTITY_ADDED = 'archetype:entity:added',
|
|
|
|
|
ARCHETYPE_ENTITY_REMOVED = 'archetype:entity:removed',
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 脏标记相关事件
|
|
|
|
|
DIRTY_MARK_ADDED = 'dirty:mark:added',
|
|
|
|
|
DIRTY_BATCH_PROCESSED = 'dirty:batch:processed',
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 错误和警告事件
|
|
|
|
|
ERROR_OCCURRED = 'error:occurred',
|
|
|
|
|
WARNING_ISSUED = 'warning:issued',
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 生命周期事件
|
|
|
|
|
FRAMEWORK_INITIALIZED = 'framework:initialized',
|
|
|
|
|
FRAMEWORK_SHUTDOWN = 'framework:shutdown',
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 调试相关事件
|
|
|
|
|
DEBUG_INFO = 'debug:info',
|
|
|
|
|
DEBUG_STATS_UPDATED = 'debug:stats:updated'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 事件优先级枚举
|
|
|
|
|
* 定义事件处理的优先级级别
|
|
|
|
|
*/
|
|
|
|
|
export enum EventPriority {
|
|
|
|
|
LOWEST = 0,
|
|
|
|
|
LOW = 25,
|
|
|
|
|
NORMAL = 50,
|
|
|
|
|
HIGH = 75,
|
|
|
|
|
HIGHEST = 100,
|
|
|
|
|
CRITICAL = 200
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 预定义的事件类型常量
|
|
|
|
|
* 提供类型安全的事件类型字符串
|
|
|
|
|
*/
|
|
|
|
|
export const EVENT_TYPES = {
|
|
|
|
|
// 实体事件
|
|
|
|
|
ENTITY: {
|
|
|
|
|
CREATED: ECSEventType.ENTITY_CREATED,
|
|
|
|
|
DESTROYED: ECSEventType.ENTITY_DESTROYED,
|
|
|
|
|
ENABLED: ECSEventType.ENTITY_ENABLED,
|
|
|
|
|
DISABLED: ECSEventType.ENTITY_DISABLED,
|
|
|
|
|
TAG_ADDED: ECSEventType.ENTITY_TAG_ADDED,
|
|
|
|
|
TAG_REMOVED: ECSEventType.ENTITY_TAG_REMOVED,
|
|
|
|
|
NAME_CHANGED: ECSEventType.ENTITY_NAME_CHANGED
|
|
|
|
|
},
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 组件事件
|
|
|
|
|
COMPONENT: {
|
|
|
|
|
ADDED: ECSEventType.COMPONENT_ADDED,
|
|
|
|
|
REMOVED: ECSEventType.COMPONENT_REMOVED,
|
|
|
|
|
MODIFIED: ECSEventType.COMPONENT_MODIFIED,
|
|
|
|
|
ENABLED: ECSEventType.COMPONENT_ENABLED,
|
|
|
|
|
DISABLED: ECSEventType.COMPONENT_DISABLED
|
|
|
|
|
},
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 系统事件
|
|
|
|
|
SYSTEM: {
|
|
|
|
|
ADDED: ECSEventType.SYSTEM_ADDED,
|
|
|
|
|
REMOVED: ECSEventType.SYSTEM_REMOVED,
|
|
|
|
|
ENABLED: ECSEventType.SYSTEM_ENABLED,
|
|
|
|
|
DISABLED: ECSEventType.SYSTEM_DISABLED,
|
|
|
|
|
PROCESSING_START: ECSEventType.SYSTEM_PROCESSING_START,
|
|
|
|
|
PROCESSING_END: ECSEventType.SYSTEM_PROCESSING_END,
|
|
|
|
|
ERROR: ECSEventType.SYSTEM_ERROR
|
|
|
|
|
},
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
// 性能事件
|
|
|
|
|
PERFORMANCE: {
|
|
|
|
|
WARNING: ECSEventType.PERFORMANCE_WARNING,
|
|
|
|
|
CRITICAL: ECSEventType.PERFORMANCE_CRITICAL,
|
|
|
|
|
MEMORY_HIGH: ECSEventType.MEMORY_USAGE_HIGH,
|
|
|
|
|
FRAME_DROP: ECSEventType.FRAME_RATE_DROP
|
|
|
|
|
}
|
|
|
|
|
} as const;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 事件类型验证器
|
|
|
|
|
* 验证事件类型是否有效
|
|
|
|
|
*/
|
|
|
|
|
export class EventTypeValidator {
|
2025-06-12 09:42:35 +08:00
|
|
|
private static validTypes = new Set<string>([
|
2025-06-09 13:24:54 +08:00
|
|
|
...Object.values(ECSEventType),
|
|
|
|
|
...Object.values(EVENT_TYPES.ENTITY),
|
|
|
|
|
...Object.values(EVENT_TYPES.COMPONENT),
|
|
|
|
|
...Object.values(EVENT_TYPES.SYSTEM),
|
|
|
|
|
...Object.values(EVENT_TYPES.PERFORMANCE)
|
|
|
|
|
]);
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
/**
|
|
|
|
|
* 验证事件类型是否有效
|
|
|
|
|
* @param eventType 事件类型
|
|
|
|
|
* @returns 是否有效
|
|
|
|
|
*/
|
|
|
|
|
public static isValid(eventType: string): boolean {
|
|
|
|
|
return this.validTypes.has(eventType);
|
|
|
|
|
}
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
/**
|
|
|
|
|
* 获取所有有效的事件类型
|
|
|
|
|
* @returns 事件类型数组
|
|
|
|
|
*/
|
|
|
|
|
public static getAllValidTypes(): string[] {
|
|
|
|
|
return Array.from(this.validTypes);
|
|
|
|
|
}
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
/**
|
|
|
|
|
* 添加自定义事件类型
|
|
|
|
|
* @param eventType 事件类型
|
|
|
|
|
*/
|
|
|
|
|
public static addCustomType(eventType: string): void {
|
|
|
|
|
this.validTypes.add(eventType);
|
|
|
|
|
}
|
2025-11-01 17:41:50 +08:00
|
|
|
|
2025-06-09 13:24:54 +08:00
|
|
|
/**
|
|
|
|
|
* 移除自定义事件类型
|
|
|
|
|
* @param eventType 事件类型
|
|
|
|
|
*/
|
|
|
|
|
public static removeCustomType(eventType: string): void {
|
|
|
|
|
this.validTypes.delete(eventType);
|
|
|
|
|
}
|
|
|
|
|
}
|