Feature/editor optimization (#251)

* refactor: 编辑器/运行时架构拆分与构建系统升级

* feat(core): 层级系统重构与UI变换矩阵修复

* refactor: 移除 ecs-components 聚合包并修复跨包组件查找问题

* fix(physics): 修复跨包组件类引用问题

* feat: 统一运行时架构与浏览器运行支持

* feat(asset): 实现浏览器运行时资产加载系统

* fix: 修复文档、CodeQL安全问题和CI类型检查错误

* fix: 修复文档、CodeQL安全问题和CI类型检查错误

* fix: 修复文档、CodeQL安全问题、CI类型检查和测试错误

* test: 补齐核心模块测试用例,修复CI构建配置

* fix: 修复测试用例中的类型错误和断言问题

* fix: 修复 turbo build:npm 任务的依赖顺序问题

* fix: 修复 CI 构建错误并优化构建性能
This commit is contained in:
YHH
2025-12-01 22:28:51 +08:00
committed by GitHub
parent 189714c727
commit b42a7b4e43
468 changed files with 18301 additions and 9075 deletions

View File

@@ -0,0 +1,56 @@
import { Component } from '../Component';
import { ECSComponent } from '../Decorators';
import { Serializable, Serialize } from '../Serialization/SerializationDecorators';
/**
* 层级关系组件 - 用于建立实体间的父子关系
*
* 只有需要层级关系的实体才添加此组件,遵循 ECS 组合原则。
* 层级操作应通过 HierarchySystem 进行,而非直接修改此组件。
*
* @example
* ```typescript
* // 通过 HierarchySystem 设置父子关系
* const hierarchySystem = scene.getSystem(HierarchySystem);
* hierarchySystem.setParent(childEntity, parentEntity);
*
* // 查询层级信息
* const parent = hierarchySystem.getParent(entity);
* const children = hierarchySystem.getChildren(entity);
* ```
*/
@ECSComponent('Hierarchy')
@Serializable({ version: 1, typeId: 'Hierarchy' })
export class HierarchyComponent extends Component {
/**
* 父实体 ID
* null 表示根实体(无父级)
*/
@Serialize()
public parentId: number | null = null;
/**
* 子实体 ID 列表
* 顺序即为子级的排列顺序
*/
@Serialize()
public childIds: number[] = [];
/**
* 在层级中的深度
* 根实体深度为 0由 HierarchySystem 维护
*/
public depth: number = 0;
/**
* 层级中是否激活
* 考虑所有祖先的激活状态,由 HierarchySystem 维护
*/
public bActiveInHierarchy: boolean = true;
/**
* 层级缓存是否脏
* 用于优化缓存更新
*/
public bCacheDirty: boolean = true;
}

View File

@@ -0,0 +1 @@
export { HierarchyComponent } from './HierarchyComponent';