MCPcopy Create free account
hub / github.com/esengine/esengine / executeCommand

Method executeCommand

packages/core/src/ECS/Core/CommandBuffer.ts:518–554  ·  view source on GitHub ↗

* 执行单个命令(旧模式) * Execute single command (legacy mode)

(cmd: DeferredCommand)

Source from the content-addressed store, hash-verified

516 * Execute single command (legacy mode)
517 */
518 private executeCommand(cmd: DeferredCommand): void {
519 // 检查实体是否仍然有效
520 if (!cmd.entity.scene) {
521 if (this._debug) {
522 logger.debug(`CommandBuffer: 跳过命令,实体 ${cmd.entity.name} 已无效`);
523 }
524 return;
525 }
526
527 try {
528 switch (cmd.type) {
529 case CommandType.ADD_COMPONENT:
530 if (cmd.component) {
531 cmd.entity.addComponent(cmd.component);
532 }
533 break;
534
535 case CommandType.REMOVE_COMPONENT:
536 if (cmd.componentType) {
537 cmd.entity.removeComponentByType(cmd.componentType);
538 }
539 break;
540
541 case CommandType.DESTROY_ENTITY:
542 cmd.entity.destroy();
543 break;
544
545 case CommandType.SET_ENTITY_ACTIVE:
546 if (cmd.value !== undefined) {
547 cmd.entity.active = cmd.value;
548 }
549 break;
550 }
551 } catch (error) {
552 logger.error(`CommandBuffer: 执行命令失败`, { command: cmd, error });
553 }
554 }
555
556 /**
557 * 清空所有待处理的命令(不执行)

Callers 1

flushLegacyMethod · 0.95

Calls 5

destroyMethod · 0.65
debugMethod · 0.45
addComponentMethod · 0.45
removeComponentByTypeMethod · 0.45
errorMethod · 0.45

Tested by

no test coverage detected