@esengine/ecs-framework 2.1.4 → 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 (201) 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 -46
  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
  197. package/bin/wasm/ecs_wasm_core.d.ts +0 -141
  198. package/bin/wasm/ecs_wasm_core.js +0 -415
  199. package/bin/wasm/ecs_wasm_core_bg.wasm +0 -0
  200. package/bin/wasm/ecs_wasm_core_bg.wasm.d.ts +0 -29
  201. package/bin/wasm/package.json +0 -15
@@ -1,185 +0,0 @@
1
- import { Entity } from '../Entity';
2
- import { Matcher } from '../Utils/Matcher';
3
- import type { Scene } from '../Scene';
4
- /**
5
- * 实体系统的基类
6
- *
7
- * 用于处理一组符合特定条件的实体。系统是ECS架构中的逻辑处理单元,
8
- * 负责对拥有特定组件组合的实体执行业务逻辑。
9
- *
10
- * @example
11
- * ```typescript
12
- * class MovementSystem extends EntitySystem {
13
- * constructor() {
14
- * super(Matcher.empty().all(Transform, Velocity));
15
- * }
16
- *
17
- * protected process(entities: Entity[]): void {
18
- * for (const entity of entities) {
19
- * const transform = entity.getComponent(Transform);
20
- * const velocity = entity.getComponent(Velocity);
21
- * transform.position.add(velocity.value);
22
- * }
23
- * }
24
- * }
25
- * ```
26
- */
27
- export declare abstract class EntitySystem {
28
- private _entities;
29
- private _updateOrder;
30
- private _enabled;
31
- private _performanceMonitor;
32
- private _systemName;
33
- /**
34
- * 获取系统处理的实体列表
35
- */
36
- get entities(): readonly Entity[];
37
- /**
38
- * 获取系统的更新时序
39
- */
40
- get updateOrder(): number;
41
- set updateOrder(value: number);
42
- /**
43
- * 获取系统的启用状态
44
- */
45
- get enabled(): boolean;
46
- /**
47
- * 设置系统的启用状态
48
- */
49
- set enabled(value: boolean);
50
- /**
51
- * 获取系统名称
52
- */
53
- get systemName(): string;
54
- constructor(matcher?: Matcher);
55
- private _scene;
56
- /**
57
- * 这个系统所属的场景
58
- */
59
- get scene(): Scene;
60
- set scene(value: Scene);
61
- private _matcher;
62
- /**
63
- * 获取实体匹配器
64
- */
65
- get matcher(): Matcher;
66
- /**
67
- * 设置更新时序
68
- * @param order 更新时序
69
- */
70
- setUpdateOrder(order: number): void;
71
- /**
72
- * 系统初始化
73
- *
74
- * 在系统创建时调用,子类可以重写此方法进行初始化操作。
75
- */
76
- initialize(): void;
77
- /**
78
- * 当实体的组件发生变化时调用
79
- *
80
- * 检查实体是否仍然符合系统的匹配条件,并相应地添加或移除实体。
81
- *
82
- * @param entity 发生变化的实体
83
- */
84
- onChanged(entity: Entity): void;
85
- /**
86
- * 添加实体到系统
87
- *
88
- * @param entity 要添加的实体
89
- */
90
- add(entity: Entity): void;
91
- /**
92
- * 当实体被添加到系统时调用
93
- *
94
- * 子类可以重写此方法来处理实体添加事件。
95
- *
96
- * @param entity 被添加的实体
97
- */
98
- protected onAdded(entity: Entity): void;
99
- /**
100
- * 从系统中移除实体
101
- *
102
- * @param entity 要移除的实体
103
- */
104
- remove(entity: Entity): void;
105
- /**
106
- * 当实体从系统中移除时调用
107
- *
108
- * 子类可以重写此方法来处理实体移除事件。
109
- *
110
- * @param entity 被移除的实体
111
- */
112
- protected onRemoved(entity: Entity): void;
113
- /**
114
- * 更新系统
115
- *
116
- * 在每帧调用,处理系统的主要逻辑。
117
- */
118
- update(): void;
119
- /**
120
- * 后期更新系统
121
- *
122
- * 在所有系统的update方法执行完毕后调用。
123
- */
124
- lateUpdate(): void;
125
- /**
126
- * 在系统处理开始前调用
127
- *
128
- * 子类可以重写此方法进行预处理操作。
129
- */
130
- protected begin(): void;
131
- /**
132
- * 处理实体列表
133
- *
134
- * 系统的核心逻辑,子类必须实现此方法来定义具体的处理逻辑。
135
- *
136
- * @param entities 要处理的实体列表
137
- */
138
- protected process(entities: Entity[]): void;
139
- /**
140
- * 后期处理实体列表
141
- *
142
- * 在主要处理逻辑之后执行,子类可以重写此方法。
143
- *
144
- * @param entities 要处理的实体列表
145
- */
146
- protected lateProcess(entities: Entity[]): void;
147
- /**
148
- * 系统处理完毕后调用
149
- *
150
- * 子类可以重写此方法进行后处理操作。
151
- */
152
- protected end(): void;
153
- /**
154
- * 检查系统是否需要处理
155
- *
156
- * 在启用系统时有用,但仅偶尔需要处理。
157
- * 这只影响处理,不影响事件或订阅列表。
158
- *
159
- * @returns 如果系统应该处理,则为true,如果不处理则为false
160
- */
161
- protected checkProcessing(): boolean;
162
- /**
163
- * 获取系统的性能数据
164
- *
165
- * @returns 性能数据或undefined
166
- */
167
- getPerformanceData(): import("../../Utils/PerformanceMonitor").PerformanceData | undefined;
168
- /**
169
- * 获取系统的性能统计
170
- *
171
- * @returns 性能统计或undefined
172
- */
173
- getPerformanceStats(): import("../../Utils/PerformanceMonitor").PerformanceStats | undefined;
174
- /**
175
- * 重置系统的性能数据
176
- */
177
- resetPerformanceData(): void;
178
- /**
179
- * 获取系统信息的字符串表示
180
- *
181
- * @returns 系统信息字符串
182
- */
183
- toString(): string;
184
- }
185
- //# sourceMappingURL=EntitySystem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntitySystem.d.ts","sourceRoot":"","sources":["../../../src/ECS/Systems/EntitySystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,8BAAsB,YAAY;IAC9B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACH,IAAW,QAAQ,IAAI,SAAS,MAAM,EAAE,CAEvC;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAEnC;IAED;;OAEG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED;;OAEG;IACH,IAAW,OAAO,CAAC,KAAK,EAAE,OAAO,EAEhC;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;gBAEW,OAAO,CAAC,EAAE,OAAO;IAM7B,OAAO,CAAC,MAAM,CAAS;IAEvB;;OAEG;IACH,IAAW,KAAK,IAAI,KAAK,CAExB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAG5B;IAED,OAAO,CAAC,QAAQ,CAAU;IAE1B;;OAEG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED;;;OAGG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C;;;;OAIG;IACI,UAAU,IAAI,IAAI;IAIzB;;;;;;OAMG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAWtC;;;;OAIG;IACI,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOhC;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIvC;;;;OAIG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQnC;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIzC;;;;OAIG;IACI,MAAM,IAAI,IAAI;IAerB;;;;OAIG;IACI,UAAU,IAAI,IAAI;IAezB;;;;OAIG;IACH,SAAS,CAAC,KAAK,IAAI,IAAI;IAIvB;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAI3C;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAI/C;;;;OAIG;IACH,SAAS,CAAC,GAAG,IAAI,IAAI;IAIrB;;;;;;;OAOG;IACH,SAAS,CAAC,eAAe,IAAI,OAAO;IAIpC;;;;OAIG;IACI,kBAAkB;IAIzB;;;;OAIG;IACI,mBAAmB;IAI1B;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAInC;;;;OAIG;IACI,QAAQ,IAAI,MAAM;CAO5B"}
@@ -1,278 +0,0 @@
1
- import { Matcher } from '../Utils/Matcher';
2
- import { PerformanceMonitor } from '../../Utils/PerformanceMonitor';
3
- /**
4
- * 实体系统的基类
5
- *
6
- * 用于处理一组符合特定条件的实体。系统是ECS架构中的逻辑处理单元,
7
- * 负责对拥有特定组件组合的实体执行业务逻辑。
8
- *
9
- * @example
10
- * ```typescript
11
- * class MovementSystem extends EntitySystem {
12
- * constructor() {
13
- * super(Matcher.empty().all(Transform, Velocity));
14
- * }
15
- *
16
- * protected process(entities: Entity[]): void {
17
- * for (const entity of entities) {
18
- * const transform = entity.getComponent(Transform);
19
- * const velocity = entity.getComponent(Velocity);
20
- * transform.position.add(velocity.value);
21
- * }
22
- * }
23
- * }
24
- * ```
25
- */
26
- export class EntitySystem {
27
- /**
28
- * 获取系统处理的实体列表
29
- */
30
- get entities() {
31
- return this._entities;
32
- }
33
- /**
34
- * 获取系统的更新时序
35
- */
36
- get updateOrder() {
37
- return this._updateOrder;
38
- }
39
- set updateOrder(value) {
40
- this.setUpdateOrder(value);
41
- }
42
- /**
43
- * 获取系统的启用状态
44
- */
45
- get enabled() {
46
- return this._enabled;
47
- }
48
- /**
49
- * 设置系统的启用状态
50
- */
51
- set enabled(value) {
52
- this._enabled = value;
53
- }
54
- /**
55
- * 获取系统名称
56
- */
57
- get systemName() {
58
- return this._systemName;
59
- }
60
- constructor(matcher) {
61
- this._entities = [];
62
- this._updateOrder = 0;
63
- this._enabled = true;
64
- this._performanceMonitor = PerformanceMonitor.instance;
65
- this._matcher = matcher ? matcher : Matcher.empty();
66
- this._systemName = this.constructor.name;
67
- this.initialize();
68
- }
69
- /**
70
- * 这个系统所属的场景
71
- */
72
- get scene() {
73
- return this._scene;
74
- }
75
- set scene(value) {
76
- this._scene = value;
77
- this._entities = [];
78
- }
79
- /**
80
- * 获取实体匹配器
81
- */
82
- get matcher() {
83
- return this._matcher;
84
- }
85
- /**
86
- * 设置更新时序
87
- * @param order 更新时序
88
- */
89
- setUpdateOrder(order) {
90
- this._updateOrder = order;
91
- this.scene.entityProcessors.setDirty();
92
- }
93
- /**
94
- * 系统初始化
95
- *
96
- * 在系统创建时调用,子类可以重写此方法进行初始化操作。
97
- */
98
- initialize() {
99
- // 子类可以重写此方法
100
- }
101
- /**
102
- * 当实体的组件发生变化时调用
103
- *
104
- * 检查实体是否仍然符合系统的匹配条件,并相应地添加或移除实体。
105
- *
106
- * @param entity 发生变化的实体
107
- */
108
- onChanged(entity) {
109
- const contains = this._entities.includes(entity);
110
- const interest = this._matcher.isInterestedEntity(entity);
111
- if (interest && !contains) {
112
- this.add(entity);
113
- }
114
- else if (!interest && contains) {
115
- this.remove(entity);
116
- }
117
- }
118
- /**
119
- * 添加实体到系统
120
- *
121
- * @param entity 要添加的实体
122
- */
123
- add(entity) {
124
- if (!this._entities.includes(entity)) {
125
- this._entities.push(entity);
126
- this.onAdded(entity);
127
- }
128
- }
129
- /**
130
- * 当实体被添加到系统时调用
131
- *
132
- * 子类可以重写此方法来处理实体添加事件。
133
- *
134
- * @param entity 被添加的实体
135
- */
136
- onAdded(entity) {
137
- // 子类可以重写此方法
138
- }
139
- /**
140
- * 从系统中移除实体
141
- *
142
- * @param entity 要移除的实体
143
- */
144
- remove(entity) {
145
- const index = this._entities.indexOf(entity);
146
- if (index !== -1) {
147
- this._entities.splice(index, 1);
148
- this.onRemoved(entity);
149
- }
150
- }
151
- /**
152
- * 当实体从系统中移除时调用
153
- *
154
- * 子类可以重写此方法来处理实体移除事件。
155
- *
156
- * @param entity 被移除的实体
157
- */
158
- onRemoved(entity) {
159
- // 子类可以重写此方法
160
- }
161
- /**
162
- * 更新系统
163
- *
164
- * 在每帧调用,处理系统的主要逻辑。
165
- */
166
- update() {
167
- if (!this._enabled || !this.checkProcessing()) {
168
- return;
169
- }
170
- const startTime = this._performanceMonitor.startMonitoring(this._systemName);
171
- try {
172
- this.begin();
173
- this.process(this._entities);
174
- }
175
- finally {
176
- this._performanceMonitor.endMonitoring(this._systemName, startTime, this._entities.length);
177
- }
178
- }
179
- /**
180
- * 后期更新系统
181
- *
182
- * 在所有系统的update方法执行完毕后调用。
183
- */
184
- lateUpdate() {
185
- if (!this._enabled || !this.checkProcessing()) {
186
- return;
187
- }
188
- const startTime = this._performanceMonitor.startMonitoring(`${this._systemName}_Late`);
189
- try {
190
- this.lateProcess(this._entities);
191
- this.end();
192
- }
193
- finally {
194
- this._performanceMonitor.endMonitoring(`${this._systemName}_Late`, startTime, this._entities.length);
195
- }
196
- }
197
- /**
198
- * 在系统处理开始前调用
199
- *
200
- * 子类可以重写此方法进行预处理操作。
201
- */
202
- begin() {
203
- // 子类可以重写此方法
204
- }
205
- /**
206
- * 处理实体列表
207
- *
208
- * 系统的核心逻辑,子类必须实现此方法来定义具体的处理逻辑。
209
- *
210
- * @param entities 要处理的实体列表
211
- */
212
- process(entities) {
213
- // 子类必须实现此方法
214
- }
215
- /**
216
- * 后期处理实体列表
217
- *
218
- * 在主要处理逻辑之后执行,子类可以重写此方法。
219
- *
220
- * @param entities 要处理的实体列表
221
- */
222
- lateProcess(entities) {
223
- // 子类可以重写此方法
224
- }
225
- /**
226
- * 系统处理完毕后调用
227
- *
228
- * 子类可以重写此方法进行后处理操作。
229
- */
230
- end() {
231
- // 子类可以重写此方法
232
- }
233
- /**
234
- * 检查系统是否需要处理
235
- *
236
- * 在启用系统时有用,但仅偶尔需要处理。
237
- * 这只影响处理,不影响事件或订阅列表。
238
- *
239
- * @returns 如果系统应该处理,则为true,如果不处理则为false
240
- */
241
- checkProcessing() {
242
- return true;
243
- }
244
- /**
245
- * 获取系统的性能数据
246
- *
247
- * @returns 性能数据或undefined
248
- */
249
- getPerformanceData() {
250
- return this._performanceMonitor.getSystemData(this._systemName);
251
- }
252
- /**
253
- * 获取系统的性能统计
254
- *
255
- * @returns 性能统计或undefined
256
- */
257
- getPerformanceStats() {
258
- return this._performanceMonitor.getSystemStats(this._systemName);
259
- }
260
- /**
261
- * 重置系统的性能数据
262
- */
263
- resetPerformanceData() {
264
- this._performanceMonitor.resetSystem(this._systemName);
265
- }
266
- /**
267
- * 获取系统信息的字符串表示
268
- *
269
- * @returns 系统信息字符串
270
- */
271
- toString() {
272
- const entityCount = this._entities.length;
273
- const perfData = this.getPerformanceData();
274
- const perfInfo = perfData ? ` (${perfData.executionTime.toFixed(2)}ms)` : '';
275
- return `${this._systemName}[${entityCount} entities]${perfInfo}`;
276
- }
277
- }
278
- //# sourceMappingURL=EntitySystem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntitySystem.js","sourceRoot":"","sources":["../../../src/ECS/Systems/EntitySystem.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- import { Matcher } from '../Utils/Matcher';
3
- /**
4
- * 间隔系统抽象类
5
- * 定义一个按时间间隔处理的抽象类,继承自EntitySystem类
6
- * 子类需要实现process方法,用于实现具体的处理逻辑
7
- */
8
- export declare abstract class IntervalSystem extends EntitySystem {
9
- /** 累积增量以跟踪间隔 */
10
- private acc;
11
- /** 更新之间需要等待多长时间 */
12
- private readonly interval;
13
- /** 时间间隔的余数,用于计算下一次需要等待的时间 */
14
- private intervalRemainder;
15
- /**
16
- * 构造函数,初始化时间间隔
17
- * @param matcher 实体匹配器
18
- * @param interval 时间间隔
19
- */
20
- constructor(matcher: Matcher, interval: number);
21
- /**
22
- * 判断是否需要进行处理
23
- * 如果需要进行处理,则更新累积增量和时间间隔余数,返回true
24
- * 否则返回false
25
- */
26
- protected checkProcessing(): boolean;
27
- /**
28
- * 获取本系统上次处理后的实际delta值
29
- * 实际delta值等于时间间隔加上时间间隔余数
30
- */
31
- protected getIntervalDelta(): number;
32
- }
33
- //# sourceMappingURL=IntervalSystem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntervalSystem.d.ts","sourceRoot":"","sources":["../../../src/ECS/Systems/IntervalSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C;;;;GAIG;AACH,8BAAsB,cAAe,SAAQ,YAAY;IACrD,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAa;IACxB,mBAAmB;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,6BAA6B;IAC7B,OAAO,CAAC,iBAAiB,CAAa;IAEtC;;;;OAIG;gBACS,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;IAK9C;;;;OAIG;cACgB,eAAe,IAAI,OAAO;IAkB7C;;;OAGG;IACH,SAAS,CAAC,gBAAgB,IAAI,MAAM;CAGvC"}
@@ -1,50 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- import { Time } from '../../Utils/Time';
3
- /**
4
- * 间隔系统抽象类
5
- * 定义一个按时间间隔处理的抽象类,继承自EntitySystem类
6
- * 子类需要实现process方法,用于实现具体的处理逻辑
7
- */
8
- export class IntervalSystem extends EntitySystem {
9
- /**
10
- * 构造函数,初始化时间间隔
11
- * @param matcher 实体匹配器
12
- * @param interval 时间间隔
13
- */
14
- constructor(matcher, interval) {
15
- super(matcher);
16
- /** 累积增量以跟踪间隔 */
17
- this.acc = 0;
18
- /** 时间间隔的余数,用于计算下一次需要等待的时间 */
19
- this.intervalRemainder = 0;
20
- this.interval = interval;
21
- }
22
- /**
23
- * 判断是否需要进行处理
24
- * 如果需要进行处理,则更新累积增量和时间间隔余数,返回true
25
- * 否则返回false
26
- */
27
- checkProcessing() {
28
- // 更新累积增量
29
- this.acc += Time.deltaTime;
30
- // 如果累积增量超过时间间隔,则进行处理
31
- if (this.acc >= this.interval) {
32
- // 更新时间间隔余数
33
- this.intervalRemainder = this.acc - this.interval;
34
- // 重置累积增量
35
- this.acc = 0;
36
- // 返回true,表示需要进行处理
37
- return true;
38
- }
39
- // 返回false,表示不需要进行处理
40
- return false;
41
- }
42
- /**
43
- * 获取本系统上次处理后的实际delta值
44
- * 实际delta值等于时间间隔加上时间间隔余数
45
- */
46
- getIntervalDelta() {
47
- return this.interval + this.intervalRemainder;
48
- }
49
- }
50
- //# sourceMappingURL=IntervalSystem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntervalSystem.js","sourceRoot":"","sources":["../../../src/ECS/Systems/IntervalSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC;;;;GAIG;AACH,MAAM,OAAgB,cAAe,SAAQ,YAAY;IAQrD;;;;OAIG;IACH,YAAY,OAAgB,EAAE,QAAgB;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAbnB,gBAAgB;QACR,QAAG,GAAW,CAAC,CAAC;QAGxB,6BAA6B;QACrB,sBAAiB,GAAW,CAAC,CAAC;QASlC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACgB,eAAe;QAC9B,SAAS;QACT,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;QAE3B,qBAAqB;QACrB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,WAAW;YACX,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClD,SAAS;YACT,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACb,kBAAkB;YAClB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,oBAAoB;QACpB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACO,gBAAgB;QACtB,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAClD,CAAC;CACJ"}
@@ -1,20 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- import { Entity } from '../Entity';
3
- /**
4
- * 被动实体系统
5
- * 定义一个被动的实体系统,继承自EntitySystem类
6
- * 被动的实体系统不会对实体进行任何修改,只会被动地接收实体的变化事件
7
- */
8
- export declare abstract class PassiveSystem extends EntitySystem {
9
- /**
10
- * 当实体发生变化时,不进行任何操作
11
- * @param entity 发生变化的实体
12
- */
13
- onChanged(entity: Entity): void;
14
- /**
15
- * 不进行任何处理
16
- * @param entities 实体数组,未被使用
17
- */
18
- protected process(entities: Entity[]): void;
19
- }
20
- //# sourceMappingURL=PassiveSystem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PassiveSystem.d.ts","sourceRoot":"","sources":["../../../src/ECS/Systems/PassiveSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC;;;;GAIG;AACH,8BAAsB,aAAc,SAAQ,YAAY;IACpD;;;OAGG;IACa,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAE/C;;;OAGG;cACgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;CAGvD"}
@@ -1,21 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- /**
3
- * 被动实体系统
4
- * 定义一个被动的实体系统,继承自EntitySystem类
5
- * 被动的实体系统不会对实体进行任何修改,只会被动地接收实体的变化事件
6
- */
7
- export class PassiveSystem extends EntitySystem {
8
- /**
9
- * 当实体发生变化时,不进行任何操作
10
- * @param entity 发生变化的实体
11
- */
12
- onChanged(entity) { }
13
- /**
14
- * 不进行任何处理
15
- * @param entities 实体数组,未被使用
16
- */
17
- process(entities) {
18
- // 被动系统不进行任何处理
19
- }
20
- }
21
- //# sourceMappingURL=PassiveSystem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PassiveSystem.js","sourceRoot":"","sources":["../../../src/ECS/Systems/PassiveSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;GAIG;AACH,MAAM,OAAgB,aAAc,SAAQ,YAAY;IACpD;;;OAGG;IACa,SAAS,CAAC,MAAc,IAAU,CAAC;IAEnD;;;OAGG;IACgB,OAAO,CAAC,QAAkB;QACzC,cAAc;IAClB,CAAC;CACJ"}
@@ -1,24 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- import { Entity } from '../Entity';
3
- /**
4
- * 处理系统抽象类
5
- * 定义一个处理实体的抽象类,继承自EntitySystem类
6
- * 子类需要实现processSystem方法,用于实现具体的处理逻辑
7
- */
8
- export declare abstract class ProcessingSystem extends EntitySystem {
9
- /**
10
- * 当实体发生变化时,不进行任何操作
11
- * @param entity 发生变化的实体
12
- */
13
- onChanged(entity: Entity): void;
14
- /**
15
- * 处理实体,每帧调用processSystem方法进行处理
16
- * @param entities 实体数组,未被使用
17
- */
18
- protected process(entities: Entity[]): void;
19
- /**
20
- * 处理实体的具体方法,由子类实现
21
- */
22
- abstract processSystem(): void;
23
- }
24
- //# sourceMappingURL=ProcessingSystem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProcessingSystem.d.ts","sourceRoot":"","sources":["../../../src/ECS/Systems/ProcessingSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC;;;;GAIG;AACH,8BAAsB,gBAAiB,SAAQ,YAAY;IACvD;;;OAGG;IACa,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAE/C;;;OAGG;cACgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAKpD;;OAEG;aACa,aAAa,IAAI,IAAI;CACxC"}
@@ -1,22 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- /**
3
- * 处理系统抽象类
4
- * 定义一个处理实体的抽象类,继承自EntitySystem类
5
- * 子类需要实现processSystem方法,用于实现具体的处理逻辑
6
- */
7
- export class ProcessingSystem extends EntitySystem {
8
- /**
9
- * 当实体发生变化时,不进行任何操作
10
- * @param entity 发生变化的实体
11
- */
12
- onChanged(entity) { }
13
- /**
14
- * 处理实体,每帧调用processSystem方法进行处理
15
- * @param entities 实体数组,未被使用
16
- */
17
- process(entities) {
18
- // 调用子类实现的processSystem方法进行实体处理
19
- this.processSystem();
20
- }
21
- }
22
- //# sourceMappingURL=ProcessingSystem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProcessingSystem.js","sourceRoot":"","sources":["../../../src/ECS/Systems/ProcessingSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;GAIG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,YAAY;IACvD;;;OAGG;IACa,SAAS,CAAC,MAAc,IAAU,CAAC;IAEnD;;;OAGG;IACgB,OAAO,CAAC,QAAkB;QACzC,+BAA+B;QAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;CAMJ"}
@@ -1,5 +0,0 @@
1
- export { EntitySystem } from './EntitySystem';
2
- export { ProcessingSystem } from './ProcessingSystem';
3
- export { PassiveSystem } from './PassiveSystem';
4
- export { IntervalSystem } from './IntervalSystem';
5
- //# sourceMappingURL=index.d.ts.map