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

@@ -6,7 +6,7 @@
*/
import { EntitySystem, Matcher, type Entity } from '@esengine/ecs-framework';
import { TransformComponent } from '@esengine/ecs-components';
import { TransformComponent } from '@esengine/engine-core';
import { Physics2DWorld } from '../world/Physics2DWorld';
import { Rigidbody2DComponent } from '../components/Rigidbody2DComponent';
import { Collider2DBase } from '../components/Collider2DBase';
@@ -66,9 +66,6 @@ export class Physics2DSystem extends EntitySystem {
// 待处理的新实体队列
private _pendingEntities: Entity[] = [];
// Transform 组件类型(用于检查)
private _transformType = TransformComponent;
constructor(config?: Physics2DSystemConfig) {
// 匹配所有拥有 Rigidbody2DComponent 的实体
super(Matcher.empty().all(Rigidbody2DComponent));
@@ -290,10 +287,13 @@ export class Physics2DSystem extends EntitySystem {
*/
private _createPhysicsBody(entity: Entity): void {
const rigidbody = entity.getComponent(Rigidbody2DComponent);
const transform = entity.getComponent(this._transformType);
const transform = entity.getComponent(TransformComponent);
if (!rigidbody || !transform) {
this.logger.warn(`Entity ${entity.name} missing required components for physics`);
const missing: string[] = [];
if (!rigidbody) missing.push('Rigidbody2DComponent');
if (!transform) missing.push('TransformComponent');
this.logger.warn(`Entity ${entity.name} missing required components: ${missing.join(', ')}`);
return;
}
@@ -361,7 +361,7 @@ export class Physics2DSystem extends EntitySystem {
private _syncTransformsToPhysics(entities: readonly Entity[]): void {
for (const entity of entities) {
const rigidbody = entity.getComponent(Rigidbody2DComponent);
const transform = entity.getComponent(this._transformType);
const transform = entity.getComponent(TransformComponent);
const mapping = this._entityBodies.get(entity.id);
if (!rigidbody || !transform || !mapping) continue;
@@ -465,7 +465,7 @@ export class Physics2DSystem extends EntitySystem {
private _syncPhysicsToTransforms(entities: readonly Entity[]): void {
for (const entity of entities) {
const rigidbody = entity.getComponent(Rigidbody2DComponent);
const transform = entity.getComponent(this._transformType);
const transform = entity.getComponent(TransformComponent);
const mapping = this._entityBodies.get(entity.id);
if (!rigidbody || !transform || !mapping) continue;