* 执行单个命令(旧模式) * Execute single command (legacy mode)
(cmd: DeferredCommand)
| 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 | * 清空所有待处理的命令(不执行) |
no test coverage detected