@esengine/ecs-framework 2.1.3 → 2.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/README.md +385 -0
  2. package/{bin/index.d.ts → index.d.ts} +9 -6
  3. package/index.js +7 -0
  4. package/index.js.map +7 -0
  5. package/package.json +20 -48
  6. package/bin/Core.d.ts +0 -198
  7. package/bin/Core.d.ts.map +0 -1
  8. package/bin/Core.js +0 -247
  9. package/bin/Core.js.map +0 -1
  10. package/bin/ECS/Component.d.ts +0 -119
  11. package/bin/ECS/Component.d.ts.map +0 -1
  12. package/bin/ECS/Component.js +0 -129
  13. package/bin/ECS/Component.js.map +0 -1
  14. package/bin/ECS/Components/IUpdatable.d.ts +0 -22
  15. package/bin/ECS/Components/IUpdatable.d.ts.map +0 -1
  16. package/bin/ECS/Components/IUpdatable.js +0 -22
  17. package/bin/ECS/Components/IUpdatable.js.map +0 -1
  18. package/bin/ECS/Components/SceneComponent.d.ts +0 -40
  19. package/bin/ECS/Components/SceneComponent.d.ts.map +0 -1
  20. package/bin/ECS/Components/SceneComponent.js +0 -61
  21. package/bin/ECS/Components/SceneComponent.js.map +0 -1
  22. package/bin/ECS/Core/BitMaskOptimizer.d.ts +0 -75
  23. package/bin/ECS/Core/BitMaskOptimizer.d.ts.map +0 -1
  24. package/bin/ECS/Core/BitMaskOptimizer.js +0 -161
  25. package/bin/ECS/Core/BitMaskOptimizer.js.map +0 -1
  26. package/bin/ECS/Core/ComponentPool.d.ts +0 -72
  27. package/bin/ECS/Core/ComponentPool.d.ts.map +0 -1
  28. package/bin/ECS/Core/ComponentPool.js +0 -123
  29. package/bin/ECS/Core/ComponentPool.js.map +0 -1
  30. package/bin/ECS/Core/ComponentStorage.d.ts +0 -182
  31. package/bin/ECS/Core/ComponentStorage.d.ts.map +0 -1
  32. package/bin/ECS/Core/ComponentStorage.js +0 -346
  33. package/bin/ECS/Core/ComponentStorage.js.map +0 -1
  34. package/bin/ECS/Core/EventSystem.d.ts +0 -236
  35. package/bin/ECS/Core/EventSystem.d.ts.map +0 -1
  36. package/bin/ECS/Core/EventSystem.js +0 -476
  37. package/bin/ECS/Core/EventSystem.js.map +0 -1
  38. package/bin/ECS/Core/FluentAPI.d.ts +0 -371
  39. package/bin/ECS/Core/FluentAPI.d.ts.map +0 -1
  40. package/bin/ECS/Core/FluentAPI.js +0 -543
  41. package/bin/ECS/Core/FluentAPI.js.map +0 -1
  42. package/bin/ECS/Core/IndexUpdateBatcher.d.ts +0 -100
  43. package/bin/ECS/Core/IndexUpdateBatcher.d.ts.map +0 -1
  44. package/bin/ECS/Core/IndexUpdateBatcher.js +0 -219
  45. package/bin/ECS/Core/IndexUpdateBatcher.js.map +0 -1
  46. package/bin/ECS/Core/QuerySystem.d.ts +0 -422
  47. package/bin/ECS/Core/QuerySystem.d.ts.map +0 -1
  48. package/bin/ECS/Core/QuerySystem.js +0 -937
  49. package/bin/ECS/Core/QuerySystem.js.map +0 -1
  50. package/bin/ECS/CoreEvents.d.ts +0 -19
  51. package/bin/ECS/CoreEvents.d.ts.map +0 -1
  52. package/bin/ECS/CoreEvents.js +0 -20
  53. package/bin/ECS/CoreEvents.js.map +0 -1
  54. package/bin/ECS/Entity.d.ts +0 -538
  55. package/bin/ECS/Entity.d.ts.map +0 -1
  56. package/bin/ECS/Entity.js +0 -1030
  57. package/bin/ECS/Entity.js.map +0 -1
  58. package/bin/ECS/Scene.d.ts +0 -226
  59. package/bin/ECS/Scene.d.ts.map +0 -1
  60. package/bin/ECS/Scene.js +0 -308
  61. package/bin/ECS/Scene.js.map +0 -1
  62. package/bin/ECS/Systems/EntitySystem.d.ts +0 -185
  63. package/bin/ECS/Systems/EntitySystem.d.ts.map +0 -1
  64. package/bin/ECS/Systems/EntitySystem.js +0 -278
  65. package/bin/ECS/Systems/EntitySystem.js.map +0 -1
  66. package/bin/ECS/Systems/IntervalSystem.d.ts +0 -33
  67. package/bin/ECS/Systems/IntervalSystem.d.ts.map +0 -1
  68. package/bin/ECS/Systems/IntervalSystem.js +0 -50
  69. package/bin/ECS/Systems/IntervalSystem.js.map +0 -1
  70. package/bin/ECS/Systems/PassiveSystem.d.ts +0 -20
  71. package/bin/ECS/Systems/PassiveSystem.d.ts.map +0 -1
  72. package/bin/ECS/Systems/PassiveSystem.js +0 -21
  73. package/bin/ECS/Systems/PassiveSystem.js.map +0 -1
  74. package/bin/ECS/Systems/ProcessingSystem.d.ts +0 -24
  75. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +0 -1
  76. package/bin/ECS/Systems/ProcessingSystem.js +0 -22
  77. package/bin/ECS/Systems/ProcessingSystem.js.map +0 -1
  78. package/bin/ECS/Systems/index.d.ts +0 -5
  79. package/bin/ECS/Systems/index.d.ts.map +0 -1
  80. package/bin/ECS/Systems/index.js +0 -6
  81. package/bin/ECS/Systems/index.js.map +0 -1
  82. package/bin/ECS/Utils/Bits.d.ts +0 -74
  83. package/bin/ECS/Utils/Bits.d.ts.map +0 -1
  84. package/bin/ECS/Utils/Bits.js +0 -142
  85. package/bin/ECS/Utils/Bits.js.map +0 -1
  86. package/bin/ECS/Utils/ComponentTypeManager.d.ts +0 -50
  87. package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +0 -1
  88. package/bin/ECS/Utils/ComponentTypeManager.js +0 -84
  89. package/bin/ECS/Utils/ComponentTypeManager.js.map +0 -1
  90. package/bin/ECS/Utils/EntityList.d.ts +0 -108
  91. package/bin/ECS/Utils/EntityList.d.ts.map +0 -1
  92. package/bin/ECS/Utils/EntityList.js +0 -249
  93. package/bin/ECS/Utils/EntityList.js.map +0 -1
  94. package/bin/ECS/Utils/EntityProcessorList.d.ts +0 -53
  95. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +0 -1
  96. package/bin/ECS/Utils/EntityProcessorList.js +0 -96
  97. package/bin/ECS/Utils/EntityProcessorList.js.map +0 -1
  98. package/bin/ECS/Utils/IdentifierPool.d.ts +0 -18
  99. package/bin/ECS/Utils/IdentifierPool.d.ts.map +0 -1
  100. package/bin/ECS/Utils/IdentifierPool.js +0 -27
  101. package/bin/ECS/Utils/IdentifierPool.js.map +0 -1
  102. package/bin/ECS/Utils/Matcher.d.ts +0 -63
  103. package/bin/ECS/Utils/Matcher.d.ts.map +0 -1
  104. package/bin/ECS/Utils/Matcher.js +0 -140
  105. package/bin/ECS/Utils/Matcher.js.map +0 -1
  106. package/bin/ECS/Utils/index.d.ts +0 -7
  107. package/bin/ECS/Utils/index.d.ts.map +0 -1
  108. package/bin/ECS/Utils/index.js +0 -8
  109. package/bin/ECS/Utils/index.js.map +0 -1
  110. package/bin/ECS/index.d.ts +0 -7
  111. package/bin/ECS/index.d.ts.map +0 -1
  112. package/bin/ECS/index.js +0 -29
  113. package/bin/ECS/index.js.map +0 -1
  114. package/bin/Testing/Performance/benchmark.d.ts +0 -6
  115. package/bin/Testing/Performance/benchmark.d.ts.map +0 -1
  116. package/bin/Testing/Performance/benchmark.js +0 -639
  117. package/bin/Testing/Performance/benchmark.js.map +0 -1
  118. package/bin/Testing/Performance/component-performance.d.ts +0 -2
  119. package/bin/Testing/Performance/component-performance.d.ts.map +0 -1
  120. package/bin/Testing/Performance/component-performance.js +0 -43
  121. package/bin/Testing/Performance/component-performance.js.map +0 -1
  122. package/bin/Testing/Unit/bitmask-optimizer.test.d.ts +0 -2
  123. package/bin/Testing/Unit/bitmask-optimizer.test.d.ts.map +0 -1
  124. package/bin/Testing/Unit/bitmask-optimizer.test.js +0 -164
  125. package/bin/Testing/Unit/bitmask-optimizer.test.js.map +0 -1
  126. package/bin/Testing/Unit/component-pool.test.d.ts +0 -5
  127. package/bin/Testing/Unit/component-pool.test.d.ts.map +0 -1
  128. package/bin/Testing/Unit/component-pool.test.js +0 -149
  129. package/bin/Testing/Unit/component-pool.test.js.map +0 -1
  130. package/bin/Testing/test-runner.d.ts +0 -51
  131. package/bin/Testing/test-runner.d.ts.map +0 -1
  132. package/bin/Testing/test-runner.js +0 -159
  133. package/bin/Testing/test-runner.js.map +0 -1
  134. package/bin/Types/index.d.ts +0 -22
  135. package/bin/Types/index.d.ts.map +0 -1
  136. package/bin/Types/index.js +0 -20
  137. package/bin/Types/index.js.map +0 -1
  138. package/bin/Utils/Emitter.d.ts +0 -43
  139. package/bin/Utils/Emitter.d.ts.map +0 -1
  140. package/bin/Utils/Emitter.js +0 -69
  141. package/bin/Utils/Emitter.js.map +0 -1
  142. package/bin/Utils/Extensions/NumberExtension.d.ts +0 -13
  143. package/bin/Utils/Extensions/NumberExtension.d.ts.map +0 -1
  144. package/bin/Utils/Extensions/NumberExtension.js +0 -17
  145. package/bin/Utils/Extensions/NumberExtension.js.map +0 -1
  146. package/bin/Utils/Extensions/TypeUtils.d.ts +0 -13
  147. package/bin/Utils/Extensions/TypeUtils.d.ts.map +0 -1
  148. package/bin/Utils/Extensions/TypeUtils.js +0 -15
  149. package/bin/Utils/Extensions/TypeUtils.js.map +0 -1
  150. package/bin/Utils/Extensions/index.d.ts +0 -3
  151. package/bin/Utils/Extensions/index.d.ts.map +0 -1
  152. package/bin/Utils/Extensions/index.js +0 -4
  153. package/bin/Utils/Extensions/index.js.map +0 -1
  154. package/bin/Utils/GlobalManager.d.ts +0 -32
  155. package/bin/Utils/GlobalManager.d.ts.map +0 -1
  156. package/bin/Utils/GlobalManager.js +0 -53
  157. package/bin/Utils/GlobalManager.js.map +0 -1
  158. package/bin/Utils/PerformanceMonitor.d.ts +0 -211
  159. package/bin/Utils/PerformanceMonitor.d.ts.map +0 -1
  160. package/bin/Utils/PerformanceMonitor.js +0 -270
  161. package/bin/Utils/PerformanceMonitor.js.map +0 -1
  162. package/bin/Utils/Pool.d.ts +0 -239
  163. package/bin/Utils/Pool.d.ts.map +0 -1
  164. package/bin/Utils/Pool.js +0 -449
  165. package/bin/Utils/Pool.js.map +0 -1
  166. package/bin/Utils/Time.d.ts +0 -55
  167. package/bin/Utils/Time.d.ts.map +0 -1
  168. package/bin/Utils/Time.js +0 -78
  169. package/bin/Utils/Time.js.map +0 -1
  170. package/bin/Utils/Timers/ITimer.d.ts +0 -16
  171. package/bin/Utils/Timers/ITimer.d.ts.map +0 -1
  172. package/bin/Utils/Timers/ITimer.js +0 -2
  173. package/bin/Utils/Timers/ITimer.js.map +0 -1
  174. package/bin/Utils/Timers/Timer.d.ts +0 -22
  175. package/bin/Utils/Timers/Timer.d.ts.map +0 -1
  176. package/bin/Utils/Timers/Timer.js +0 -46
  177. package/bin/Utils/Timers/Timer.js.map +0 -1
  178. package/bin/Utils/Timers/TimerManager.d.ts +0 -19
  179. package/bin/Utils/Timers/TimerManager.d.ts.map +0 -1
  180. package/bin/Utils/Timers/TimerManager.js +0 -33
  181. package/bin/Utils/Timers/TimerManager.js.map +0 -1
  182. package/bin/Utils/WasmCore.d.ts +0 -234
  183. package/bin/Utils/WasmCore.d.ts.map +0 -1
  184. package/bin/Utils/WasmCore.js +0 -596
  185. package/bin/Utils/WasmCore.js.map +0 -1
  186. package/bin/Utils/index.d.ts +0 -16
  187. package/bin/Utils/index.d.ts.map +0 -1
  188. package/bin/Utils/index.js +0 -37
  189. package/bin/Utils/index.js.map +0 -1
  190. package/bin/index.cjs +0 -51
  191. package/bin/index.d.ts.map +0 -1
  192. package/bin/index.esm.d.ts +0 -45
  193. package/bin/index.esm.d.ts.map +0 -1
  194. package/bin/index.esm.js +0 -46
  195. package/bin/index.esm.js.map +0 -1
  196. package/bin/index.js.map +0 -1
@@ -1,129 +0,0 @@
1
- /**
2
- * 游戏组件基类
3
- *
4
- * ECS架构中的组件(Component),用于实现具体的游戏功能。
5
- * 组件包含数据和行为,可以被添加到实体上以扩展实体的功能。
6
- *
7
- * @example
8
- * ```typescript
9
- * class HealthComponent extends Component {
10
- * public health: number = 100;
11
- *
12
- * public takeDamage(damage: number): void {
13
- * this.health -= damage;
14
- * if (this.health <= 0) {
15
- * this.entity.destroy();
16
- * }
17
- * }
18
- * }
19
- * ```
20
- */
21
- export class Component {
22
- /**
23
- * 创建组件实例
24
- *
25
- * 自动分配唯一ID给组件。
26
- */
27
- constructor() {
28
- /**
29
- * 组件启用状态
30
- *
31
- * 控制组件是否参与更新循环。
32
- */
33
- this._enabled = true;
34
- /**
35
- * 更新顺序
36
- *
37
- * 决定组件在更新循环中的执行顺序。
38
- */
39
- this._updateOrder = 0;
40
- this.id = Component._idGenerator++;
41
- }
42
- /**
43
- * 获取组件启用状态
44
- *
45
- * 组件的实际启用状态取决于自身状态和所属实体的状态。
46
- *
47
- * @returns 如果组件和所属实体都启用则返回true
48
- */
49
- get enabled() {
50
- return this.entity ? this.entity.enabled && this._enabled : this._enabled;
51
- }
52
- /**
53
- * 设置组件启用状态
54
- *
55
- * 当状态改变时会触发相应的生命周期回调。
56
- *
57
- * @param value - 新的启用状态
58
- */
59
- set enabled(value) {
60
- if (this._enabled !== value) {
61
- this._enabled = value;
62
- if (this._enabled) {
63
- this.onEnabled();
64
- }
65
- else {
66
- this.onDisabled();
67
- }
68
- }
69
- }
70
- /**
71
- * 获取更新顺序
72
- *
73
- * @returns 组件的更新顺序值
74
- */
75
- get updateOrder() {
76
- return this._updateOrder;
77
- }
78
- /**
79
- * 设置更新顺序
80
- *
81
- * @param value - 新的更新顺序值
82
- */
83
- set updateOrder(value) {
84
- this._updateOrder = value;
85
- }
86
- /**
87
- * 组件添加到实体时的回调
88
- *
89
- * 当组件被添加到实体时调用,可以在此方法中进行初始化操作。
90
- */
91
- onAddedToEntity() {
92
- }
93
- /**
94
- * 组件从实体移除时的回调
95
- *
96
- * 当组件从实体中移除时调用,可以在此方法中进行清理操作。
97
- */
98
- onRemovedFromEntity() {
99
- }
100
- /**
101
- * 组件启用时的回调
102
- *
103
- * 当组件被启用时调用。
104
- */
105
- onEnabled() {
106
- }
107
- /**
108
- * 组件禁用时的回调
109
- *
110
- * 当组件被禁用时调用。
111
- */
112
- onDisabled() {
113
- }
114
- /**
115
- * 更新组件
116
- *
117
- * 每帧调用,用于更新组件的逻辑。
118
- * 子类应该重写此方法来实现具体的更新逻辑。
119
- */
120
- update() {
121
- }
122
- }
123
- /**
124
- * 组件ID生成器
125
- *
126
- * 用于为每个组件分配唯一的ID。
127
- */
128
- Component._idGenerator = 0;
129
- //# sourceMappingURL=Component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../src/ECS/Component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAgB,SAAS;IAoC3B;;;;OAIG;IACH;QAnBA;;;;WAIG;QACK,aAAQ,GAAY,IAAI,CAAC;QAEjC;;;;WAIG;QACK,iBAAY,GAAW,CAAC,CAAC;QAQ7B,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACH,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9E,CAAC;IAED;;;;;;OAMG;IACH,IAAW,OAAO,CAAC,KAAc;QAC7B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,IAAW,WAAW,CAAC,KAAa;QAChC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACI,eAAe;IACtB,CAAC;IAED;;;;OAIG;IACI,mBAAmB;IAC1B,CAAC;IAED;;;;OAIG;IACI,SAAS;IAChB,CAAC;IAED;;;;OAIG;IACI,UAAU;IACjB,CAAC;IAED;;;;;OAKG;IACI,MAAM;IACb,CAAC;;AAlID;;;;GAIG;AACW,sBAAY,GAAW,CAAC,AAAZ,CAAa"}
@@ -1,22 +0,0 @@
1
- /**
2
- * 可更新接口
3
- * 当添加到组件时,只要组件和实体被启用,就会在每帧调用update方法
4
- */
5
- export interface IUpdatable {
6
- enabled: boolean;
7
- updateOrder: number;
8
- update(): void;
9
- }
10
- /**
11
- * 用于比较组件更新排序的比较器
12
- */
13
- export declare class IUpdatableComparer {
14
- compare(a: IUpdatable, b: IUpdatable): number;
15
- }
16
- /**
17
- * 检查对象是否实现了IUpdatable接口
18
- * @param props 要检查的对象
19
- * @returns 如果实现了IUpdatable接口返回true,否则返回false
20
- */
21
- export declare function isIUpdatable(props: any): props is IUpdatable;
22
- //# sourceMappingURL=IUpdatable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IUpdatable.d.ts","sourceRoot":"","sources":["../../../src/ECS/Components/IUpdatable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,IAAI,IAAI,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IACpB,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM;CAGvD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,UAAU,CAE5D"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IUpdatableComparer = void 0;
4
- exports.isIUpdatable = isIUpdatable;
5
- /**
6
- * 用于比较组件更新排序的比较器
7
- */
8
- class IUpdatableComparer {
9
- compare(a, b) {
10
- return a.updateOrder - b.updateOrder;
11
- }
12
- }
13
- exports.IUpdatableComparer = IUpdatableComparer;
14
- /**
15
- * 检查对象是否实现了IUpdatable接口
16
- * @param props 要检查的对象
17
- * @returns 如果实现了IUpdatable接口返回true,否则返回false
18
- */
19
- function isIUpdatable(props) {
20
- return typeof props['update'] !== 'undefined';
21
- }
22
- //# sourceMappingURL=IUpdatable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IUpdatable.js","sourceRoot":"","sources":["../../../src/ECS/Components/IUpdatable.ts"],"names":[],"mappings":";;;AAwBA,oCAEC;AAhBD;;GAEG;AACH,MAAa,kBAAkB;IACpB,OAAO,CAAC,CAAa,EAAE,CAAa;QACvC,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACzC,CAAC;CACJ;AAJD,gDAIC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,KAAU;IACnC,OAAO,OAAQ,KAAoB,CAAC,QAAQ,CAAC,KAAK,WAAW,CAAC;AAClE,CAAC"}
@@ -1,40 +0,0 @@
1
- import type { Scene } from '../Scene';
2
- /**
3
- * 场景组件基类
4
- * 附加到场景的组件,用于实现场景级别的功能
5
- */
6
- export declare class SceneComponent {
7
- /** 组件所属的场景 */
8
- scene: Scene;
9
- /** 更新顺序 */
10
- updateOrder: number;
11
- /** 是否启用 */
12
- private _enabled;
13
- /** 获取是否启用 */
14
- get enabled(): boolean;
15
- /** 设置是否启用 */
16
- set enabled(value: boolean);
17
- /**
18
- * 当组件启用时调用
19
- */
20
- onEnabled(): void;
21
- /**
22
- * 当组件禁用时调用
23
- */
24
- onDisabled(): void;
25
- /**
26
- * 当组件从场景中移除时调用
27
- */
28
- onRemovedFromScene(): void;
29
- /**
30
- * 每帧更新
31
- */
32
- update(): void;
33
- /**
34
- * 比较组件的更新顺序
35
- * @param other 其他组件
36
- * @returns 比较结果
37
- */
38
- compare(other: SceneComponent): number;
39
- }
40
- //# sourceMappingURL=SceneComponent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneComponent.d.ts","sourceRoot":"","sources":["../../../src/ECS/Components/SceneComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC;;;GAGG;AACH,qBAAa,cAAc;IACvB,cAAc;IACP,KAAK,EAAG,KAAK,CAAC;IACrB,WAAW;IACJ,WAAW,EAAE,MAAM,CAAK;IAC/B,WAAW;IACX,OAAO,CAAC,QAAQ,CAAiB;IAEjC,aAAa;IACb,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,aAAa;IACb,IAAW,OAAO,CAAC,KAAK,EAAE,OAAO,EAShC;IAED;;OAEG;IACI,SAAS,IAAI,IAAI;IAGxB;;OAEG;IACI,UAAU,IAAI,IAAI;IAGzB;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAGjC;;OAEG;IACI,MAAM,IAAI,IAAI;IAGrB;;;;OAIG;IACI,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;CAGhD"}
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SceneComponent = void 0;
4
- /**
5
- * 场景组件基类
6
- * 附加到场景的组件,用于实现场景级别的功能
7
- */
8
- class SceneComponent {
9
- constructor() {
10
- /** 更新顺序 */
11
- this.updateOrder = 0;
12
- /** 是否启用 */
13
- this._enabled = true;
14
- }
15
- /** 获取是否启用 */
16
- get enabled() {
17
- return this._enabled;
18
- }
19
- /** 设置是否启用 */
20
- set enabled(value) {
21
- if (this._enabled !== value) {
22
- this._enabled = value;
23
- if (this._enabled) {
24
- this.onEnabled();
25
- }
26
- else {
27
- this.onDisabled();
28
- }
29
- }
30
- }
31
- /**
32
- * 当组件启用时调用
33
- */
34
- onEnabled() {
35
- }
36
- /**
37
- * 当组件禁用时调用
38
- */
39
- onDisabled() {
40
- }
41
- /**
42
- * 当组件从场景中移除时调用
43
- */
44
- onRemovedFromScene() {
45
- }
46
- /**
47
- * 每帧更新
48
- */
49
- update() {
50
- }
51
- /**
52
- * 比较组件的更新顺序
53
- * @param other 其他组件
54
- * @returns 比较结果
55
- */
56
- compare(other) {
57
- return this.updateOrder - other.updateOrder;
58
- }
59
- }
60
- exports.SceneComponent = SceneComponent;
61
- //# sourceMappingURL=SceneComponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneComponent.js","sourceRoot":"","sources":["../../../src/ECS/Components/SceneComponent.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,cAAc;IAA3B;QAGI,WAAW;QACJ,gBAAW,GAAW,CAAC,CAAC;QAC/B,WAAW;QACH,aAAQ,GAAY,IAAI,CAAC;IAmDrC,CAAC;IAjDG,aAAa;IACb,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,aAAa;IACb,IAAW,OAAO,CAAC,KAAc;QAC7B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACI,SAAS;IAChB,CAAC;IAED;;OAEG;IACI,UAAU;IACjB,CAAC;IAED;;OAEG;IACI,kBAAkB;IACzB,CAAC;IAED;;OAEG;IACI,MAAM;IACb,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,KAAqB;QAChC,OAAO,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IAChD,CAAC;CACJ;AAzDD,wCAyDC"}
@@ -1,75 +0,0 @@
1
- /**
2
- * 位掩码优化器,用于预计算和缓存常用的组件掩码
3
- */
4
- export declare class BitMaskOptimizer {
5
- private static instance;
6
- private maskCache;
7
- private componentTypeMap;
8
- private nextComponentId;
9
- private constructor();
10
- static getInstance(): BitMaskOptimizer;
11
- /**
12
- * 注册组件类型
13
- */
14
- registerComponentType(componentName: string): number;
15
- /**
16
- * 获取组件类型ID
17
- */
18
- getComponentTypeId(componentName: string): number | undefined;
19
- /**
20
- * 创建单个组件的掩码
21
- */
22
- createSingleComponentMask(componentName: string): bigint;
23
- /**
24
- * 创建多个组件的组合掩码
25
- */
26
- createCombinedMask(componentNames: string[]): bigint;
27
- /**
28
- * 检查掩码是否包含指定组件
29
- */
30
- maskContainsComponent(mask: bigint, componentName: string): boolean;
31
- /**
32
- * 检查掩码是否包含所有指定组件
33
- */
34
- maskContainsAllComponents(mask: bigint, componentNames: string[]): boolean;
35
- /**
36
- * 检查掩码是否包含任一指定组件
37
- */
38
- maskContainsAnyComponent(mask: bigint, componentNames: string[]): boolean;
39
- /**
40
- * 添加组件到掩码
41
- */
42
- addComponentToMask(mask: bigint, componentName: string): bigint;
43
- /**
44
- * 从掩码中移除组件
45
- */
46
- removeComponentFromMask(mask: bigint, componentName: string): bigint;
47
- /**
48
- * 预计算常用掩码组合
49
- */
50
- precomputeCommonMasks(commonCombinations: string[][]): void;
51
- /**
52
- * 获取掩码缓存统计信息
53
- */
54
- getCacheStats(): {
55
- size: number;
56
- componentTypes: number;
57
- };
58
- /**
59
- * 清空缓存
60
- */
61
- clearCache(): void;
62
- /**
63
- * 重置优化器
64
- */
65
- reset(): void;
66
- /**
67
- * 将掩码转换为组件名称数组
68
- */
69
- maskToComponentNames(mask: bigint): string[];
70
- /**
71
- * 获取掩码中组件的数量
72
- */
73
- getComponentCount(mask: bigint): number;
74
- }
75
- //# sourceMappingURL=BitMaskOptimizer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BitMaskOptimizer.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/BitMaskOptimizer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOtC;;OAEG;IACH,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAOpD;;OAEG;IACH,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7D;;OAEG;IACH,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAiBxD;;OAEG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM;IAqBpD;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAKnE;;OAEG;IACH,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO;IAK1E;;OAEG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO;IAKzE;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAK/D;;OAEG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAKpE;;OAEG;IACH,qBAAqB,CAAC,kBAAkB,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI;IAM3D;;OAEG;IACH,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAOzD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAa5C;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAa1C"}
@@ -1,161 +0,0 @@
1
- /**
2
- * 位掩码优化器,用于预计算和缓存常用的组件掩码
3
- */
4
- export class BitMaskOptimizer {
5
- constructor() {
6
- this.maskCache = new Map();
7
- this.componentTypeMap = new Map();
8
- this.nextComponentId = 0;
9
- }
10
- static getInstance() {
11
- if (!BitMaskOptimizer.instance) {
12
- BitMaskOptimizer.instance = new BitMaskOptimizer();
13
- }
14
- return BitMaskOptimizer.instance;
15
- }
16
- /**
17
- * 注册组件类型
18
- */
19
- registerComponentType(componentName) {
20
- if (!this.componentTypeMap.has(componentName)) {
21
- this.componentTypeMap.set(componentName, this.nextComponentId++);
22
- }
23
- return this.componentTypeMap.get(componentName);
24
- }
25
- /**
26
- * 获取组件类型ID
27
- */
28
- getComponentTypeId(componentName) {
29
- return this.componentTypeMap.get(componentName);
30
- }
31
- /**
32
- * 创建单个组件的掩码
33
- */
34
- createSingleComponentMask(componentName) {
35
- const cacheKey = `single:${componentName}`;
36
- if (this.maskCache.has(cacheKey)) {
37
- return this.maskCache.get(cacheKey);
38
- }
39
- const componentId = this.getComponentTypeId(componentName);
40
- if (componentId === undefined) {
41
- throw new Error(`Component type not registered: ${componentName}`);
42
- }
43
- const mask = 1n << BigInt(componentId);
44
- this.maskCache.set(cacheKey, mask);
45
- return mask;
46
- }
47
- /**
48
- * 创建多个组件的组合掩码
49
- */
50
- createCombinedMask(componentNames) {
51
- const sortedNames = [...componentNames].sort();
52
- const cacheKey = `combined:${sortedNames.join(',')}`;
53
- if (this.maskCache.has(cacheKey)) {
54
- return this.maskCache.get(cacheKey);
55
- }
56
- let mask = 0n;
57
- for (const componentName of componentNames) {
58
- const componentId = this.getComponentTypeId(componentName);
59
- if (componentId === undefined) {
60
- throw new Error(`Component type not registered: ${componentName}`);
61
- }
62
- mask |= 1n << BigInt(componentId);
63
- }
64
- this.maskCache.set(cacheKey, mask);
65
- return mask;
66
- }
67
- /**
68
- * 检查掩码是否包含指定组件
69
- */
70
- maskContainsComponent(mask, componentName) {
71
- const componentMask = this.createSingleComponentMask(componentName);
72
- return (mask & componentMask) !== 0n;
73
- }
74
- /**
75
- * 检查掩码是否包含所有指定组件
76
- */
77
- maskContainsAllComponents(mask, componentNames) {
78
- const requiredMask = this.createCombinedMask(componentNames);
79
- return (mask & requiredMask) === requiredMask;
80
- }
81
- /**
82
- * 检查掩码是否包含任一指定组件
83
- */
84
- maskContainsAnyComponent(mask, componentNames) {
85
- const anyMask = this.createCombinedMask(componentNames);
86
- return (mask & anyMask) !== 0n;
87
- }
88
- /**
89
- * 添加组件到掩码
90
- */
91
- addComponentToMask(mask, componentName) {
92
- const componentMask = this.createSingleComponentMask(componentName);
93
- return mask | componentMask;
94
- }
95
- /**
96
- * 从掩码中移除组件
97
- */
98
- removeComponentFromMask(mask, componentName) {
99
- const componentMask = this.createSingleComponentMask(componentName);
100
- return mask & ~componentMask;
101
- }
102
- /**
103
- * 预计算常用掩码组合
104
- */
105
- precomputeCommonMasks(commonCombinations) {
106
- for (const combination of commonCombinations) {
107
- this.createCombinedMask(combination);
108
- }
109
- }
110
- /**
111
- * 获取掩码缓存统计信息
112
- */
113
- getCacheStats() {
114
- return {
115
- size: this.maskCache.size,
116
- componentTypes: this.componentTypeMap.size
117
- };
118
- }
119
- /**
120
- * 清空缓存
121
- */
122
- clearCache() {
123
- this.maskCache.clear();
124
- }
125
- /**
126
- * 重置优化器
127
- */
128
- reset() {
129
- this.maskCache.clear();
130
- this.componentTypeMap.clear();
131
- this.nextComponentId = 0;
132
- }
133
- /**
134
- * 将掩码转换为组件名称数组
135
- */
136
- maskToComponentNames(mask) {
137
- const componentNames = [];
138
- for (const [componentName, componentId] of this.componentTypeMap) {
139
- const componentMask = 1n << BigInt(componentId);
140
- if ((mask & componentMask) !== 0n) {
141
- componentNames.push(componentName);
142
- }
143
- }
144
- return componentNames;
145
- }
146
- /**
147
- * 获取掩码中组件的数量
148
- */
149
- getComponentCount(mask) {
150
- let count = 0;
151
- let tempMask = mask;
152
- while (tempMask !== 0n) {
153
- if ((tempMask & 1n) !== 0n) {
154
- count++;
155
- }
156
- tempMask >>= 1n;
157
- }
158
- return count;
159
- }
160
- }
161
- //# sourceMappingURL=BitMaskOptimizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BitMaskOptimizer.js","sourceRoot":"","sources":["../../../src/ECS/Core/BitMaskOptimizer.ts"],"names":[],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- import { Component } from '../Component';
2
- /**
3
- * 组件对象池,用于复用组件实例以减少内存分配
4
- */
5
- export declare class ComponentPool<T extends Component> {
6
- private pool;
7
- private createFn;
8
- private resetFn?;
9
- private maxSize;
10
- constructor(createFn: () => T, resetFn?: (component: T) => void, maxSize?: number);
11
- /**
12
- * 获取一个组件实例
13
- */
14
- acquire(): T;
15
- /**
16
- * 释放一个组件实例回池中
17
- */
18
- release(component: T): void;
19
- /**
20
- * 预填充对象池
21
- */
22
- prewarm(count: number): void;
23
- /**
24
- * 清空对象池
25
- */
26
- clear(): void;
27
- /**
28
- * 获取池中可用对象数量
29
- */
30
- getAvailableCount(): number;
31
- /**
32
- * 获取池的最大容量
33
- */
34
- getMaxSize(): number;
35
- }
36
- /**
37
- * 全局组件池管理器
38
- */
39
- export declare class ComponentPoolManager {
40
- private static instance;
41
- private pools;
42
- private constructor();
43
- static getInstance(): ComponentPoolManager;
44
- /**
45
- * 注册组件池
46
- */
47
- registerPool<T extends Component>(componentName: string, createFn: () => T, resetFn?: (component: T) => void, maxSize?: number): void;
48
- /**
49
- * 获取组件实例
50
- */
51
- acquireComponent<T extends Component>(componentName: string): T | null;
52
- /**
53
- * 释放组件实例
54
- */
55
- releaseComponent<T extends Component>(componentName: string, component: T): void;
56
- /**
57
- * 预热所有池
58
- */
59
- prewarmAll(count?: number): void;
60
- /**
61
- * 清空所有池
62
- */
63
- clearAll(): void;
64
- /**
65
- * 获取池统计信息
66
- */
67
- getPoolStats(): Map<string, {
68
- available: number;
69
- maxSize: number;
70
- }>;
71
- }
72
- //# sourceMappingURL=ComponentPool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentPool.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/ComponentPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,SAAS;IAC1C,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAyB;IACzC,OAAO,CAAC,OAAO,CAAS;gBAGpB,QAAQ,EAAE,MAAM,CAAC,EACjB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,EAChC,OAAO,GAAE,MAAa;IAO1B;;OAEG;IACH,OAAO,IAAI,CAAC;IAOZ;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI;IAS3B;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,UAAU,IAAI,MAAM;CAGvB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuB;IAC9C,OAAO,CAAC,KAAK,CAAyC;IAEtD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,oBAAoB;IAO1C;;OAEG;IACH,YAAY,CAAC,CAAC,SAAS,SAAS,EAC5B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,CAAC,EACjB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,EAChC,OAAO,CAAC,EAAE,MAAM,GACjB,IAAI;IAIP;;OAEG;IACH,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAKtE;;OAEG;IACH,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI;IAOhF;;OAEG;IACH,UAAU,CAAC,KAAK,GAAE,MAAY,GAAG,IAAI;IAMrC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAMhB;;OAEG;IACH,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAUtE"}