diff --git a/packages/core/src/ECS/Entity.ts b/packages/core/src/ECS/Entity.ts index 18581fec..23fb4c1e 100644 --- a/packages/core/src/ECS/Entity.ts +++ b/packages/core/src/ECS/Entity.ts @@ -1,6 +1,5 @@ import { Component } from './Component'; import { ComponentRegistry, ComponentType } from './Core/ComponentStorage'; -import { EventBus } from './Core/EventBus'; import { BitMask64Utils, BitMask64Data } from './Utils/BigIntCompatibility'; import { createLogger } from '../Utils/Logger'; import { getComponentInstanceTypeName, getComponentTypeName } from './Decorators'; @@ -70,12 +69,6 @@ export class Entity { */ public static entityComparer: EntityComparer = new EntityComparer(); - /** - * 全局事件总线实例 - * 用于发射组件相关事件 - */ - public static eventBus: EventBus | null = null; - /** * 实体名称 */ @@ -428,8 +421,8 @@ export class Entity { } component.onAddedToEntity(); - if (Entity.eventBus) { - Entity.eventBus.emitComponentAdded({ + if (this.scene && this.scene.eventSystem) { + this.scene.eventSystem.emitSync('component:added', { timestamp: Date.now(), source: 'Entity', entityId: this.id, @@ -561,8 +554,8 @@ export class Entity { component.entityId = null; - if (Entity.eventBus) { - Entity.eventBus.emitComponentRemoved({ + if (this.scene && this.scene.eventSystem) { + this.scene.eventSystem.emitSync('component:removed', { timestamp: Date.now(), source: 'Entity', entityId: this.id, diff --git a/packages/core/src/ECS/Scene.ts b/packages/core/src/ECS/Scene.ts index 5a6837ad..89f2c2ed 100644 --- a/packages/core/src/ECS/Scene.ts +++ b/packages/core/src/ECS/Scene.ts @@ -5,7 +5,6 @@ import { EntitySystem } from './Systems/EntitySystem'; import { ComponentStorageManager, ComponentRegistry, ComponentType } from './Core/ComponentStorage'; import { QuerySystem } from './Core/QuerySystem'; import { TypeSafeEventSystem } from './Core/EventSystem'; -import { EventBus } from './Core/EventBus'; import { ReferenceTracker } from './Core/ReferenceTracker'; import { IScene, ISceneConfig } from './IScene'; import { getComponentInstanceTypeName, getSystemInstanceTypeName, getSystemMetadata } from './Decorators'; @@ -245,16 +244,6 @@ export class Scene implements IScene { if (config?.name) { this.name = config.name; } - - if (!Entity.eventBus) { - Entity.eventBus = new EventBus(false); - } - - if (Entity.eventBus) { - Entity.eventBus.onComponentAdded((data: unknown) => { - this.eventSystem.emitSync('component:added', data); - }); - } } /**