@esengine/ecs-framework 2.0.3

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 (187) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +277 -0
  3. package/bin/Core.d.ts +198 -0
  4. package/bin/Core.d.ts.map +1 -0
  5. package/bin/Core.js +249 -0
  6. package/bin/Core.js.map +1 -0
  7. package/bin/ECS/Component.d.ts +119 -0
  8. package/bin/ECS/Component.d.ts.map +1 -0
  9. package/bin/ECS/Component.js +129 -0
  10. package/bin/ECS/Component.js.map +1 -0
  11. package/bin/ECS/Components/IUpdatable.d.ts +22 -0
  12. package/bin/ECS/Components/IUpdatable.d.ts.map +1 -0
  13. package/bin/ECS/Components/IUpdatable.js +17 -0
  14. package/bin/ECS/Components/IUpdatable.js.map +1 -0
  15. package/bin/ECS/Components/SceneComponent.d.ts +40 -0
  16. package/bin/ECS/Components/SceneComponent.d.ts.map +1 -0
  17. package/bin/ECS/Components/SceneComponent.js +57 -0
  18. package/bin/ECS/Components/SceneComponent.js.map +1 -0
  19. package/bin/ECS/Core/ComponentStorage.d.ts +182 -0
  20. package/bin/ECS/Core/ComponentStorage.d.ts.map +1 -0
  21. package/bin/ECS/Core/ComponentStorage.js +346 -0
  22. package/bin/ECS/Core/ComponentStorage.js.map +1 -0
  23. package/bin/ECS/Core/EventSystem.d.ts +236 -0
  24. package/bin/ECS/Core/EventSystem.d.ts.map +1 -0
  25. package/bin/ECS/Core/EventSystem.js +476 -0
  26. package/bin/ECS/Core/EventSystem.js.map +1 -0
  27. package/bin/ECS/Core/FluentAPI.d.ts +392 -0
  28. package/bin/ECS/Core/FluentAPI.d.ts.map +1 -0
  29. package/bin/ECS/Core/FluentAPI.js +575 -0
  30. package/bin/ECS/Core/FluentAPI.js.map +1 -0
  31. package/bin/ECS/Core/QuerySystem.d.ts +574 -0
  32. package/bin/ECS/Core/QuerySystem.d.ts.map +1 -0
  33. package/bin/ECS/Core/QuerySystem.js +1356 -0
  34. package/bin/ECS/Core/QuerySystem.js.map +1 -0
  35. package/bin/ECS/CoreEvents.d.ts +19 -0
  36. package/bin/ECS/CoreEvents.d.ts.map +1 -0
  37. package/bin/ECS/CoreEvents.js +20 -0
  38. package/bin/ECS/CoreEvents.js.map +1 -0
  39. package/bin/ECS/Entity.d.ts +585 -0
  40. package/bin/ECS/Entity.d.ts.map +1 -0
  41. package/bin/ECS/Entity.js +1079 -0
  42. package/bin/ECS/Entity.js.map +1 -0
  43. package/bin/ECS/Scene.d.ts +210 -0
  44. package/bin/ECS/Scene.d.ts.map +1 -0
  45. package/bin/ECS/Scene.js +267 -0
  46. package/bin/ECS/Scene.js.map +1 -0
  47. package/bin/ECS/Systems/EntitySystem.d.ts +185 -0
  48. package/bin/ECS/Systems/EntitySystem.d.ts.map +1 -0
  49. package/bin/ECS/Systems/EntitySystem.js +278 -0
  50. package/bin/ECS/Systems/EntitySystem.js.map +1 -0
  51. package/bin/ECS/Systems/IntervalSystem.d.ts +33 -0
  52. package/bin/ECS/Systems/IntervalSystem.d.ts.map +1 -0
  53. package/bin/ECS/Systems/IntervalSystem.js +50 -0
  54. package/bin/ECS/Systems/IntervalSystem.js.map +1 -0
  55. package/bin/ECS/Systems/PassiveSystem.d.ts +20 -0
  56. package/bin/ECS/Systems/PassiveSystem.d.ts.map +1 -0
  57. package/bin/ECS/Systems/PassiveSystem.js +21 -0
  58. package/bin/ECS/Systems/PassiveSystem.js.map +1 -0
  59. package/bin/ECS/Systems/ProcessingSystem.d.ts +24 -0
  60. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +1 -0
  61. package/bin/ECS/Systems/ProcessingSystem.js +22 -0
  62. package/bin/ECS/Systems/ProcessingSystem.js.map +1 -0
  63. package/bin/ECS/Systems/index.d.ts +5 -0
  64. package/bin/ECS/Systems/index.d.ts.map +1 -0
  65. package/bin/ECS/Systems/index.js +6 -0
  66. package/bin/ECS/Systems/index.js.map +1 -0
  67. package/bin/ECS/Transform.d.ts +178 -0
  68. package/bin/ECS/Transform.d.ts.map +1 -0
  69. package/bin/ECS/Transform.js +249 -0
  70. package/bin/ECS/Transform.js.map +1 -0
  71. package/bin/ECS/Utils/Bits.d.ts +74 -0
  72. package/bin/ECS/Utils/Bits.d.ts.map +1 -0
  73. package/bin/ECS/Utils/Bits.js +142 -0
  74. package/bin/ECS/Utils/Bits.js.map +1 -0
  75. package/bin/ECS/Utils/ComponentTypeManager.d.ts +50 -0
  76. package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +1 -0
  77. package/bin/ECS/Utils/ComponentTypeManager.js +84 -0
  78. package/bin/ECS/Utils/ComponentTypeManager.js.map +1 -0
  79. package/bin/ECS/Utils/EntityList.d.ts +108 -0
  80. package/bin/ECS/Utils/EntityList.d.ts.map +1 -0
  81. package/bin/ECS/Utils/EntityList.js +249 -0
  82. package/bin/ECS/Utils/EntityList.js.map +1 -0
  83. package/bin/ECS/Utils/EntityProcessorList.d.ts +53 -0
  84. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +1 -0
  85. package/bin/ECS/Utils/EntityProcessorList.js +96 -0
  86. package/bin/ECS/Utils/EntityProcessorList.js.map +1 -0
  87. package/bin/ECS/Utils/IdentifierPool.d.ts +18 -0
  88. package/bin/ECS/Utils/IdentifierPool.d.ts.map +1 -0
  89. package/bin/ECS/Utils/IdentifierPool.js +27 -0
  90. package/bin/ECS/Utils/IdentifierPool.js.map +1 -0
  91. package/bin/ECS/Utils/Matcher.d.ts +63 -0
  92. package/bin/ECS/Utils/Matcher.d.ts.map +1 -0
  93. package/bin/ECS/Utils/Matcher.js +140 -0
  94. package/bin/ECS/Utils/Matcher.js.map +1 -0
  95. package/bin/ECS/Utils/index.d.ts +7 -0
  96. package/bin/ECS/Utils/index.d.ts.map +1 -0
  97. package/bin/ECS/Utils/index.js +8 -0
  98. package/bin/ECS/Utils/index.js.map +1 -0
  99. package/bin/ECS/index.d.ts +8 -0
  100. package/bin/ECS/index.d.ts.map +1 -0
  101. package/bin/ECS/index.js +9 -0
  102. package/bin/ECS/index.js.map +1 -0
  103. package/bin/Math/Edge.d.ts +23 -0
  104. package/bin/Math/Edge.d.ts.map +1 -0
  105. package/bin/Math/Edge.js +24 -0
  106. package/bin/Math/Edge.js.map +1 -0
  107. package/bin/Math/MathHelper.d.ts +75 -0
  108. package/bin/Math/MathHelper.d.ts.map +1 -0
  109. package/bin/Math/MathHelper.js +91 -0
  110. package/bin/Math/MathHelper.js.map +1 -0
  111. package/bin/Math/Rectangle.d.ts +126 -0
  112. package/bin/Math/Rectangle.d.ts.map +1 -0
  113. package/bin/Math/Rectangle.js +181 -0
  114. package/bin/Math/Rectangle.js.map +1 -0
  115. package/bin/Math/Vector2.d.ts +229 -0
  116. package/bin/Math/Vector2.d.ts.map +1 -0
  117. package/bin/Math/Vector2.js +338 -0
  118. package/bin/Math/Vector2.js.map +1 -0
  119. package/bin/Math/index.d.ts +5 -0
  120. package/bin/Math/index.d.ts.map +1 -0
  121. package/bin/Math/index.js +6 -0
  122. package/bin/Math/index.js.map +1 -0
  123. package/bin/Types/index.d.ts +22 -0
  124. package/bin/Types/index.d.ts.map +1 -0
  125. package/bin/Types/index.js +20 -0
  126. package/bin/Types/index.js.map +1 -0
  127. package/bin/Utils/Emitter.d.ts +43 -0
  128. package/bin/Utils/Emitter.d.ts.map +1 -0
  129. package/bin/Utils/Emitter.js +69 -0
  130. package/bin/Utils/Emitter.js.map +1 -0
  131. package/bin/Utils/Extensions/EdgeExt.d.ts +26 -0
  132. package/bin/Utils/Extensions/EdgeExt.d.ts.map +1 -0
  133. package/bin/Utils/Extensions/EdgeExt.js +41 -0
  134. package/bin/Utils/Extensions/EdgeExt.js.map +1 -0
  135. package/bin/Utils/Extensions/NumberExtension.d.ts +13 -0
  136. package/bin/Utils/Extensions/NumberExtension.d.ts.map +1 -0
  137. package/bin/Utils/Extensions/NumberExtension.js +17 -0
  138. package/bin/Utils/Extensions/NumberExtension.js.map +1 -0
  139. package/bin/Utils/Extensions/TypeUtils.d.ts +13 -0
  140. package/bin/Utils/Extensions/TypeUtils.d.ts.map +1 -0
  141. package/bin/Utils/Extensions/TypeUtils.js +15 -0
  142. package/bin/Utils/Extensions/TypeUtils.js.map +1 -0
  143. package/bin/Utils/Extensions/index.d.ts +4 -0
  144. package/bin/Utils/Extensions/index.d.ts.map +1 -0
  145. package/bin/Utils/Extensions/index.js +5 -0
  146. package/bin/Utils/Extensions/index.js.map +1 -0
  147. package/bin/Utils/GlobalManager.d.ts +32 -0
  148. package/bin/Utils/GlobalManager.d.ts.map +1 -0
  149. package/bin/Utils/GlobalManager.js +53 -0
  150. package/bin/Utils/GlobalManager.js.map +1 -0
  151. package/bin/Utils/PerformanceMonitor.d.ts +211 -0
  152. package/bin/Utils/PerformanceMonitor.d.ts.map +1 -0
  153. package/bin/Utils/PerformanceMonitor.js +270 -0
  154. package/bin/Utils/PerformanceMonitor.js.map +1 -0
  155. package/bin/Utils/Pool.d.ts +239 -0
  156. package/bin/Utils/Pool.d.ts.map +1 -0
  157. package/bin/Utils/Pool.js +449 -0
  158. package/bin/Utils/Pool.js.map +1 -0
  159. package/bin/Utils/Screen.d.ts +12 -0
  160. package/bin/Utils/Screen.d.ts.map +1 -0
  161. package/bin/Utils/Screen.js +14 -0
  162. package/bin/Utils/Screen.js.map +1 -0
  163. package/bin/Utils/Time.d.ts +55 -0
  164. package/bin/Utils/Time.d.ts.map +1 -0
  165. package/bin/Utils/Time.js +78 -0
  166. package/bin/Utils/Time.js.map +1 -0
  167. package/bin/Utils/Timers/ITimer.d.ts +16 -0
  168. package/bin/Utils/Timers/ITimer.d.ts.map +1 -0
  169. package/bin/Utils/Timers/ITimer.js +2 -0
  170. package/bin/Utils/Timers/ITimer.js.map +1 -0
  171. package/bin/Utils/Timers/Timer.d.ts +22 -0
  172. package/bin/Utils/Timers/Timer.d.ts.map +1 -0
  173. package/bin/Utils/Timers/Timer.js +46 -0
  174. package/bin/Utils/Timers/Timer.js.map +1 -0
  175. package/bin/Utils/Timers/TimerManager.d.ts +19 -0
  176. package/bin/Utils/Timers/TimerManager.d.ts.map +1 -0
  177. package/bin/Utils/Timers/TimerManager.js +33 -0
  178. package/bin/Utils/Timers/TimerManager.js.map +1 -0
  179. package/bin/Utils/index.d.ts +6 -0
  180. package/bin/Utils/index.d.ts.map +1 -0
  181. package/bin/Utils/index.js +7 -0
  182. package/bin/Utils/index.js.map +1 -0
  183. package/bin/index.d.ts +21 -0
  184. package/bin/index.d.ts.map +1 -0
  185. package/bin/index.js +26 -0
  186. package/bin/index.js.map +1 -0
  187. package/package.json +68 -0
@@ -0,0 +1,6 @@
1
+ // ECS系统导出
2
+ export { EntitySystem } from './EntitySystem';
3
+ export { ProcessingSystem } from './ProcessingSystem';
4
+ export { PassiveSystem } from './PassiveSystem';
5
+ export { IntervalSystem } from './IntervalSystem';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ECS/Systems/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,178 @@
1
+ import { Vector2 } from '../Math/Vector2';
2
+ /**
3
+ * 变换组件类
4
+ *
5
+ * 管理游戏对象的空间变换信息,包括位置、旋转和缩放。
6
+ * 支持父子层级关系,可以构建复杂的变换层次结构。
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const transform = new Transform();
11
+ * transform.setPosition(100, 200);
12
+ * transform.setRotationDegrees(45);
13
+ * transform.setScale(2, 2);
14
+ *
15
+ * // 设置父子关系
16
+ * childTransform.setParent(transform);
17
+ * ```
18
+ */
19
+ export declare class Transform {
20
+ /**
21
+ * 本地位置坐标
22
+ *
23
+ * 相对于父变换的位置,如果没有父变换则为世界坐标。
24
+ */
25
+ position: Vector2;
26
+ /**
27
+ * 本地旋转角度
28
+ *
29
+ * 以弧度为单位的旋转角度,相对于父变换的旋转。
30
+ */
31
+ rotation: number;
32
+ /**
33
+ * 本地缩放比例
34
+ *
35
+ * 相对于父变换的缩放比例。
36
+ */
37
+ scale: Vector2;
38
+ /**
39
+ * 父变换引用
40
+ *
41
+ * 指向父级变换,如果为null则表示这是根变换。
42
+ */
43
+ parent: Transform | null;
44
+ /**
45
+ * 子变换集合
46
+ *
47
+ * 存储所有子级变换的数组。
48
+ */
49
+ private _children;
50
+ /**
51
+ * 创建变换实例
52
+ *
53
+ * @param position - 初始位置,默认为零向量
54
+ * @param rotation - 初始旋转角度(弧度),默认为0
55
+ * @param scale - 初始缩放,默认为单位向量
56
+ */
57
+ constructor(position?: Vector2, rotation?: number, scale?: Vector2);
58
+ /**
59
+ * 获取旋转角度(度数)
60
+ *
61
+ * @returns 以度数为单位的旋转角度
62
+ */
63
+ get rotationDegrees(): number;
64
+ /**
65
+ * 设置旋转角度(度数)
66
+ *
67
+ * @param value - 以度数为单位的旋转角度
68
+ */
69
+ set rotationDegrees(value: number);
70
+ /**
71
+ * 获取世界坐标位置
72
+ *
73
+ * 计算并返回在世界坐标系中的绝对位置。
74
+ *
75
+ * @returns 世界坐标位置
76
+ */
77
+ get worldPosition(): Vector2;
78
+ /**
79
+ * 获取世界旋转角度
80
+ *
81
+ * 计算并返回在世界坐标系中的绝对旋转角度。
82
+ *
83
+ * @returns 世界旋转角度(弧度)
84
+ */
85
+ get worldRotation(): number;
86
+ /**
87
+ * 获取世界缩放比例
88
+ *
89
+ * 计算并返回在世界坐标系中的绝对缩放比例。
90
+ *
91
+ * @returns 世界缩放比例
92
+ */
93
+ get worldScale(): Vector2;
94
+ /**
95
+ * 获取子变换数量
96
+ *
97
+ * @returns 子变换的数量
98
+ */
99
+ get childCount(): number;
100
+ /**
101
+ * 获取指定索引的子变换
102
+ *
103
+ * @param index - 子变换的索引
104
+ * @returns 子变换实例,如果索引无效则返回null
105
+ */
106
+ getChild(index: number): Transform | null;
107
+ /**
108
+ * 设置父变换
109
+ *
110
+ * 建立或断开与父变换的层级关系。
111
+ *
112
+ * @param parent - 新的父变换,传入null表示断开父子关系
113
+ */
114
+ setParent(parent: Transform | null): void;
115
+ /**
116
+ * 设置本地位置
117
+ *
118
+ * @param x - X坐标
119
+ * @param y - Y坐标
120
+ */
121
+ setPosition(x: number, y: number): void;
122
+ /**
123
+ * 设置本地旋转角度(弧度)
124
+ *
125
+ * @param radians - 旋转角度(弧度)
126
+ */
127
+ setRotation(radians: number): void;
128
+ /**
129
+ * 设置本地旋转角度(度数)
130
+ *
131
+ * @param degrees - 旋转角度(度数)
132
+ */
133
+ setRotationDegrees(degrees: number): void;
134
+ /**
135
+ * 设置本地缩放比例
136
+ *
137
+ * @param scale - 缩放向量
138
+ */
139
+ setScale(scale: Vector2): void;
140
+ /**
141
+ * 设置本地缩放比例
142
+ *
143
+ * @param x - X轴缩放比例
144
+ * @param y - Y轴缩放比例
145
+ */
146
+ setScale(x: number, y: number): void;
147
+ /**
148
+ * 朝向指定位置
149
+ *
150
+ * 调整旋转角度使变换朝向目标位置。
151
+ *
152
+ * @param target - 目标位置
153
+ */
154
+ lookAt(target: Vector2): void;
155
+ /**
156
+ * 平移变换
157
+ *
158
+ * 在当前位置基础上添加偏移量。
159
+ *
160
+ * @param offset - 位置偏移量
161
+ */
162
+ translate(offset: Vector2): void;
163
+ /**
164
+ * 旋转
165
+ * @param radians 旋转角度(弧度)
166
+ */
167
+ rotate(radians: number): void;
168
+ /**
169
+ * 复制另一个变换的值
170
+ * @param other 另一个变换
171
+ */
172
+ copyFrom(other: Transform): void;
173
+ /**
174
+ * 克隆变换
175
+ */
176
+ clone(): Transform;
177
+ }
178
+ //# sourceMappingURL=Transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../src/ECS/Transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,SAAS;IAClB;;;;OAIG;IACI,QAAQ,EAAE,OAAO,CAAgB;IAExC;;;;OAIG;IACI,QAAQ,EAAE,MAAM,CAAK;IAE5B;;;;OAIG;IACI,KAAK,EAAE,OAAO,CAAe;IAEpC;;;;OAIG;IACI,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEvC;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAmB;IAEpC;;;;;;OAMG;gBACS,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAU,EAAE,KAAK,CAAC,EAAE,OAAO;IAMrE;;;;OAIG;IACH,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED;;;;OAIG;IACH,IAAW,eAAe,CAAC,KAAK,EAAE,MAAM,EAEvC;IAED;;;;;;OAMG;IACH,IAAW,aAAa,IAAI,OAAO,CAgBlC;IAED;;;;;;OAMG;IACH,IAAW,aAAa,IAAI,MAAM,CAKjC;IAED;;;;;;OAMG;IACH,IAAW,UAAU,IAAI,OAAO,CAK/B;IAED;;;;OAIG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED;;;;;OAKG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAOhD;;;;;;OAMG;IACI,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAkBhD;;;;;OAKG;IACI,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;OAIG;IACI,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC;;;;OAIG;IACI,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhD;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IACrC;;;;;OAKG;IACI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAS3C;;;;;;OAMG;IACI,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKpC;;;;;;OAMG;IACI,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIvC;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpC;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMvC;;OAEG;IACI,KAAK,IAAI,SAAS;CAI5B"}
@@ -0,0 +1,249 @@
1
+ import { Vector2 } from '../Math/Vector2';
2
+ import { MathHelper } from '../Math/MathHelper';
3
+ /**
4
+ * 变换组件类
5
+ *
6
+ * 管理游戏对象的空间变换信息,包括位置、旋转和缩放。
7
+ * 支持父子层级关系,可以构建复杂的变换层次结构。
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const transform = new Transform();
12
+ * transform.setPosition(100, 200);
13
+ * transform.setRotationDegrees(45);
14
+ * transform.setScale(2, 2);
15
+ *
16
+ * // 设置父子关系
17
+ * childTransform.setParent(transform);
18
+ * ```
19
+ */
20
+ export class Transform {
21
+ /**
22
+ * 创建变换实例
23
+ *
24
+ * @param position - 初始位置,默认为零向量
25
+ * @param rotation - 初始旋转角度(弧度),默认为0
26
+ * @param scale - 初始缩放,默认为单位向量
27
+ */
28
+ constructor(position, rotation = 0, scale) {
29
+ /**
30
+ * 本地位置坐标
31
+ *
32
+ * 相对于父变换的位置,如果没有父变换则为世界坐标。
33
+ */
34
+ this.position = Vector2.zero;
35
+ /**
36
+ * 本地旋转角度
37
+ *
38
+ * 以弧度为单位的旋转角度,相对于父变换的旋转。
39
+ */
40
+ this.rotation = 0;
41
+ /**
42
+ * 本地缩放比例
43
+ *
44
+ * 相对于父变换的缩放比例。
45
+ */
46
+ this.scale = Vector2.one;
47
+ /**
48
+ * 父变换引用
49
+ *
50
+ * 指向父级变换,如果为null则表示这是根变换。
51
+ */
52
+ this.parent = null;
53
+ /**
54
+ * 子变换集合
55
+ *
56
+ * 存储所有子级变换的数组。
57
+ */
58
+ this._children = [];
59
+ if (position)
60
+ this.position = position.clone();
61
+ this.rotation = rotation;
62
+ if (scale)
63
+ this.scale = scale.clone();
64
+ }
65
+ /**
66
+ * 获取旋转角度(度数)
67
+ *
68
+ * @returns 以度数为单位的旋转角度
69
+ */
70
+ get rotationDegrees() {
71
+ return MathHelper.toDegrees(this.rotation);
72
+ }
73
+ /**
74
+ * 设置旋转角度(度数)
75
+ *
76
+ * @param value - 以度数为单位的旋转角度
77
+ */
78
+ set rotationDegrees(value) {
79
+ this.rotation = MathHelper.toRadians(value);
80
+ }
81
+ /**
82
+ * 获取世界坐标位置
83
+ *
84
+ * 计算并返回在世界坐标系中的绝对位置。
85
+ *
86
+ * @returns 世界坐标位置
87
+ */
88
+ get worldPosition() {
89
+ if (!this.parent) {
90
+ return this.position.clone();
91
+ }
92
+ // 计算世界位置
93
+ const parentWorld = this.parent.worldPosition;
94
+ const cos = Math.cos(this.parent.worldRotation);
95
+ const sin = Math.sin(this.parent.worldRotation);
96
+ const parentScale = this.parent.worldScale;
97
+ const scaledPos = Vector2.multiply(this.position, parentScale);
98
+ const rotatedX = scaledPos.x * cos - scaledPos.y * sin;
99
+ const rotatedY = scaledPos.x * sin + scaledPos.y * cos;
100
+ return new Vector2(parentWorld.x + rotatedX, parentWorld.y + rotatedY);
101
+ }
102
+ /**
103
+ * 获取世界旋转角度
104
+ *
105
+ * 计算并返回在世界坐标系中的绝对旋转角度。
106
+ *
107
+ * @returns 世界旋转角度(弧度)
108
+ */
109
+ get worldRotation() {
110
+ if (!this.parent) {
111
+ return this.rotation;
112
+ }
113
+ return this.parent.worldRotation + this.rotation;
114
+ }
115
+ /**
116
+ * 获取世界缩放比例
117
+ *
118
+ * 计算并返回在世界坐标系中的绝对缩放比例。
119
+ *
120
+ * @returns 世界缩放比例
121
+ */
122
+ get worldScale() {
123
+ if (!this.parent) {
124
+ return this.scale.clone();
125
+ }
126
+ return Vector2.multiply(this.parent.worldScale, this.scale);
127
+ }
128
+ /**
129
+ * 获取子变换数量
130
+ *
131
+ * @returns 子变换的数量
132
+ */
133
+ get childCount() {
134
+ return this._children.length;
135
+ }
136
+ /**
137
+ * 获取指定索引的子变换
138
+ *
139
+ * @param index - 子变换的索引
140
+ * @returns 子变换实例,如果索引无效则返回null
141
+ */
142
+ getChild(index) {
143
+ if (index >= 0 && index < this._children.length) {
144
+ return this._children[index];
145
+ }
146
+ return null;
147
+ }
148
+ /**
149
+ * 设置父变换
150
+ *
151
+ * 建立或断开与父变换的层级关系。
152
+ *
153
+ * @param parent - 新的父变换,传入null表示断开父子关系
154
+ */
155
+ setParent(parent) {
156
+ if (this.parent === parent)
157
+ return;
158
+ // 从旧父级移除
159
+ if (this.parent) {
160
+ const index = this.parent._children.indexOf(this);
161
+ if (index >= 0) {
162
+ this.parent._children.splice(index, 1);
163
+ }
164
+ }
165
+ // 设置新父级
166
+ this.parent = parent;
167
+ if (parent) {
168
+ parent._children.push(this);
169
+ }
170
+ }
171
+ /**
172
+ * 设置本地位置
173
+ *
174
+ * @param x - X坐标
175
+ * @param y - Y坐标
176
+ */
177
+ setPosition(x, y) {
178
+ this.position.set(x, y);
179
+ }
180
+ /**
181
+ * 设置本地旋转角度(弧度)
182
+ *
183
+ * @param radians - 旋转角度(弧度)
184
+ */
185
+ setRotation(radians) {
186
+ this.rotation = radians;
187
+ }
188
+ /**
189
+ * 设置本地旋转角度(度数)
190
+ *
191
+ * @param degrees - 旋转角度(度数)
192
+ */
193
+ setRotationDegrees(degrees) {
194
+ this.rotation = MathHelper.toRadians(degrees);
195
+ }
196
+ setScale(scaleOrX, y) {
197
+ if (typeof scaleOrX === 'number') {
198
+ this.scale.set(scaleOrX, y);
199
+ }
200
+ else {
201
+ this.scale.copyFrom(scaleOrX);
202
+ }
203
+ }
204
+ /**
205
+ * 朝向指定位置
206
+ *
207
+ * 调整旋转角度使变换朝向目标位置。
208
+ *
209
+ * @param target - 目标位置
210
+ */
211
+ lookAt(target) {
212
+ const direction = target.subtract(this.worldPosition);
213
+ this.rotation = Math.atan2(direction.y, direction.x);
214
+ }
215
+ /**
216
+ * 平移变换
217
+ *
218
+ * 在当前位置基础上添加偏移量。
219
+ *
220
+ * @param offset - 位置偏移量
221
+ */
222
+ translate(offset) {
223
+ this.position = this.position.add(offset);
224
+ }
225
+ /**
226
+ * 旋转
227
+ * @param radians 旋转角度(弧度)
228
+ */
229
+ rotate(radians) {
230
+ this.rotation += radians;
231
+ }
232
+ /**
233
+ * 复制另一个变换的值
234
+ * @param other 另一个变换
235
+ */
236
+ copyFrom(other) {
237
+ this.position.copyFrom(other.position);
238
+ this.rotation = other.rotation;
239
+ this.scale.copyFrom(other.scale);
240
+ }
241
+ /**
242
+ * 克隆变换
243
+ */
244
+ clone() {
245
+ const transform = new Transform(this.position, this.rotation, this.scale);
246
+ return transform;
247
+ }
248
+ }
249
+ //# sourceMappingURL=Transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transform.js","sourceRoot":"","sources":["../../src/ECS/Transform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * 高性能位操作类
3
+ * 用于快速操作位数组,支持组件匹配等场景
4
+ */
5
+ export declare class Bits {
6
+ private _words;
7
+ private static readonly WORD_SIZE;
8
+ constructor();
9
+ /**
10
+ * 设置指定位置的位为1
11
+ * @param index 位置索引
12
+ */
13
+ set(index: number): void;
14
+ /**
15
+ * 清除指定位置的位(设为0)
16
+ * @param index 位置索引
17
+ */
18
+ clear(index: number): void;
19
+ /**
20
+ * 获取指定位置的位值
21
+ * @param index 位置索引
22
+ * @returns 位值(true或false)
23
+ */
24
+ get(index: number): boolean;
25
+ /**
26
+ * 检查是否包含所有指定的位
27
+ * @param other 另一个Bits对象
28
+ * @returns 如果包含所有位则返回true
29
+ */
30
+ containsAll(other: Bits): boolean;
31
+ /**
32
+ * 检查是否包含任意一个指定的位
33
+ * @param other 另一个Bits对象
34
+ * @returns 如果包含任意位则返回true
35
+ */
36
+ intersects(other: Bits): boolean;
37
+ /**
38
+ * 检查是否不包含任何指定的位
39
+ * @param other 另一个Bits对象
40
+ * @returns 如果不包含任何位则返回true
41
+ */
42
+ excludes(other: Bits): boolean;
43
+ /**
44
+ * 清空所有位
45
+ */
46
+ clearAll(): void;
47
+ /**
48
+ * 检查是否为空(没有设置任何位)
49
+ * @returns 如果为空则返回true
50
+ */
51
+ isEmpty(): boolean;
52
+ /**
53
+ * 获取设置的位数量
54
+ * @returns 设置的位数量
55
+ */
56
+ cardinality(): number;
57
+ /**
58
+ * 计算一个32位整数中设置的位数量
59
+ * @param n 32位整数
60
+ * @returns 设置的位数量
61
+ */
62
+ private popCount;
63
+ /**
64
+ * 复制另一个Bits对象
65
+ * @param other 要复制的Bits对象
66
+ */
67
+ copyFrom(other: Bits): void;
68
+ /**
69
+ * 创建当前Bits的副本
70
+ * @returns 新的Bits对象
71
+ */
72
+ clone(): Bits;
73
+ }
74
+ //# sourceMappingURL=Bits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bits.d.ts","sourceRoot":"","sources":["../../../src/ECS/Utils/Bits.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,IAAI;IACb,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAM;;IAMvC;;;OAGG;IACI,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAY/B;;;OAGG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IASjC;;;;OAIG;IACI,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAWlC;;;;OAIG;IACI,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAexC;;;;OAIG;IACI,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAYvC;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAIrC;;OAEG;IACI,QAAQ,IAAI,IAAI;IAIvB;;;OAGG;IACI,OAAO,IAAI,OAAO;IASzB;;;OAGG;IACI,WAAW,IAAI,MAAM;IAQ5B;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAMhB;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAIlC;;;OAGG;IACI,KAAK,IAAI,IAAI;CAKvB"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * 高性能位操作类
3
+ * 用于快速操作位数组,支持组件匹配等场景
4
+ */
5
+ export class Bits {
6
+ constructor() {
7
+ this._words = [];
8
+ this._words = [];
9
+ }
10
+ /**
11
+ * 设置指定位置的位为1
12
+ * @param index 位置索引
13
+ */
14
+ set(index) {
15
+ const wordIndex = Math.floor(index / Bits.WORD_SIZE);
16
+ const bitIndex = index % Bits.WORD_SIZE;
17
+ // 确保数组足够大
18
+ while (this._words.length <= wordIndex) {
19
+ this._words.push(0);
20
+ }
21
+ this._words[wordIndex] |= (1 << bitIndex);
22
+ }
23
+ /**
24
+ * 清除指定位置的位(设为0)
25
+ * @param index 位置索引
26
+ */
27
+ clear(index) {
28
+ const wordIndex = Math.floor(index / Bits.WORD_SIZE);
29
+ const bitIndex = index % Bits.WORD_SIZE;
30
+ if (wordIndex < this._words.length) {
31
+ this._words[wordIndex] &= ~(1 << bitIndex);
32
+ }
33
+ }
34
+ /**
35
+ * 获取指定位置的位值
36
+ * @param index 位置索引
37
+ * @returns 位值(true或false)
38
+ */
39
+ get(index) {
40
+ const wordIndex = Math.floor(index / Bits.WORD_SIZE);
41
+ const bitIndex = index % Bits.WORD_SIZE;
42
+ if (wordIndex >= this._words.length) {
43
+ return false;
44
+ }
45
+ return (this._words[wordIndex] & (1 << bitIndex)) !== 0;
46
+ }
47
+ /**
48
+ * 检查是否包含所有指定的位
49
+ * @param other 另一个Bits对象
50
+ * @returns 如果包含所有位则返回true
51
+ */
52
+ containsAll(other) {
53
+ const maxLength = Math.max(this._words.length, other._words.length);
54
+ for (let i = 0; i < maxLength; i++) {
55
+ const thisWord = i < this._words.length ? this._words[i] : 0;
56
+ const otherWord = i < other._words.length ? other._words[i] : 0;
57
+ if ((thisWord & otherWord) !== otherWord) {
58
+ return false;
59
+ }
60
+ }
61
+ return true;
62
+ }
63
+ /**
64
+ * 检查是否包含任意一个指定的位
65
+ * @param other 另一个Bits对象
66
+ * @returns 如果包含任意位则返回true
67
+ */
68
+ intersects(other) {
69
+ const minLength = Math.min(this._words.length, other._words.length);
70
+ for (let i = 0; i < minLength; i++) {
71
+ if ((this._words[i] & other._words[i]) !== 0) {
72
+ return true;
73
+ }
74
+ }
75
+ return false;
76
+ }
77
+ /**
78
+ * 检查是否不包含任何指定的位
79
+ * @param other 另一个Bits对象
80
+ * @returns 如果不包含任何位则返回true
81
+ */
82
+ excludes(other) {
83
+ return !this.intersects(other);
84
+ }
85
+ /**
86
+ * 清空所有位
87
+ */
88
+ clearAll() {
89
+ this._words.length = 0;
90
+ }
91
+ /**
92
+ * 检查是否为空(没有设置任何位)
93
+ * @returns 如果为空则返回true
94
+ */
95
+ isEmpty() {
96
+ for (const word of this._words) {
97
+ if (word !== 0) {
98
+ return false;
99
+ }
100
+ }
101
+ return true;
102
+ }
103
+ /**
104
+ * 获取设置的位数量
105
+ * @returns 设置的位数量
106
+ */
107
+ cardinality() {
108
+ let count = 0;
109
+ for (const word of this._words) {
110
+ count += this.popCount(word);
111
+ }
112
+ return count;
113
+ }
114
+ /**
115
+ * 计算一个32位整数中设置的位数量
116
+ * @param n 32位整数
117
+ * @returns 设置的位数量
118
+ */
119
+ popCount(n) {
120
+ n = n - ((n >>> 1) & 0x55555555);
121
+ n = (n & 0x33333333) + ((n >>> 2) & 0x33333333);
122
+ return (((n + (n >>> 4)) & 0xF0F0F0F) * 0x1010101) >>> 24;
123
+ }
124
+ /**
125
+ * 复制另一个Bits对象
126
+ * @param other 要复制的Bits对象
127
+ */
128
+ copyFrom(other) {
129
+ this._words = [...other._words];
130
+ }
131
+ /**
132
+ * 创建当前Bits的副本
133
+ * @returns 新的Bits对象
134
+ */
135
+ clone() {
136
+ const newBits = new Bits();
137
+ newBits.copyFrom(this);
138
+ return newBits;
139
+ }
140
+ }
141
+ Bits.WORD_SIZE = 32;
142
+ //# sourceMappingURL=Bits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bits.js","sourceRoot":"","sources":["../../../src/ECS/Utils/Bits.ts"],"names":[],"mappings":"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"}