@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,338 @@
1
+ /**
2
+ * 二维向量类
3
+ * 提供二维向量的基本数学运算
4
+ */
5
+ export class Vector2 {
6
+ /**
7
+ * 构造函数
8
+ * @param x X坐标,默认为0
9
+ * @param y Y坐标,默认为0
10
+ */
11
+ constructor(x = 0, y = 0) {
12
+ this.x = x;
13
+ this.y = y;
14
+ }
15
+ /**
16
+ * 零向量
17
+ */
18
+ static get zero() {
19
+ return new Vector2(0, 0);
20
+ }
21
+ /**
22
+ * 单位向量(1, 1)
23
+ */
24
+ static get one() {
25
+ return new Vector2(1, 1);
26
+ }
27
+ /**
28
+ * 单位X向量(1, 0)
29
+ */
30
+ static get unitX() {
31
+ return new Vector2(1, 0);
32
+ }
33
+ /**
34
+ * 单位Y向量(0, 1)
35
+ */
36
+ static get unitY() {
37
+ return new Vector2(0, 1);
38
+ }
39
+ /**
40
+ * 向上向量(0, -1)
41
+ */
42
+ static get up() {
43
+ return new Vector2(0, -1);
44
+ }
45
+ /**
46
+ * 向下向量(0, 1)
47
+ */
48
+ static get down() {
49
+ return new Vector2(0, 1);
50
+ }
51
+ /**
52
+ * 向左向量(-1, 0)
53
+ */
54
+ static get left() {
55
+ return new Vector2(-1, 0);
56
+ }
57
+ /**
58
+ * 向右向量(1, 0)
59
+ */
60
+ static get right() {
61
+ return new Vector2(1, 0);
62
+ }
63
+ /**
64
+ * 获取向量长度
65
+ */
66
+ get length() {
67
+ return Math.sqrt(this.x * this.x + this.y * this.y);
68
+ }
69
+ /**
70
+ * 获取向量长度的平方
71
+ */
72
+ get lengthSquared() {
73
+ return this.x * this.x + this.y * this.y;
74
+ }
75
+ /**
76
+ * 设置向量的值
77
+ * @param x X坐标
78
+ * @param y Y坐标
79
+ */
80
+ set(x, y) {
81
+ this.x = x;
82
+ this.y = y;
83
+ return this;
84
+ }
85
+ /**
86
+ * 复制另一个向量的值
87
+ * @param other 另一个向量
88
+ */
89
+ copyFrom(other) {
90
+ this.x = other.x;
91
+ this.y = other.y;
92
+ return this;
93
+ }
94
+ /**
95
+ * 克隆向量
96
+ */
97
+ clone() {
98
+ return new Vector2(this.x, this.y);
99
+ }
100
+ /**
101
+ * 向量加法
102
+ * @param other 另一个向量
103
+ */
104
+ add(other) {
105
+ return new Vector2(this.x + other.x, this.y + other.y);
106
+ }
107
+ /**
108
+ * 向量减法
109
+ * @param other 另一个向量
110
+ */
111
+ subtract(other) {
112
+ return new Vector2(this.x - other.x, this.y - other.y);
113
+ }
114
+ /**
115
+ * 向量乘法(标量)
116
+ * @param scalar 标量
117
+ */
118
+ multiply(scalar) {
119
+ return new Vector2(this.x * scalar, this.y * scalar);
120
+ }
121
+ /**
122
+ * 向量除法(标量)
123
+ * @param scalar 标量
124
+ */
125
+ divide(scalar) {
126
+ return new Vector2(this.x / scalar, this.y / scalar);
127
+ }
128
+ /**
129
+ * 向量点积
130
+ * @param other 另一个向量
131
+ */
132
+ dot(other) {
133
+ return this.x * other.x + this.y * other.y;
134
+ }
135
+ /**
136
+ * 向量叉积(2D中返回标量)
137
+ * @param other 另一个向量
138
+ */
139
+ cross(other) {
140
+ return this.x * other.y - this.y * other.x;
141
+ }
142
+ /**
143
+ * 归一化向量
144
+ */
145
+ normalize() {
146
+ const length = this.length;
147
+ if (length === 0) {
148
+ return Vector2.zero;
149
+ }
150
+ return new Vector2(this.x / length, this.y / length);
151
+ }
152
+ /**
153
+ * 获取到另一个向量的距离
154
+ * @param other 另一个向量
155
+ */
156
+ distanceTo(other) {
157
+ const dx = this.x - other.x;
158
+ const dy = this.y - other.y;
159
+ return Math.sqrt(dx * dx + dy * dy);
160
+ }
161
+ /**
162
+ * 获取到另一个向量的距离的平方
163
+ * @param other 另一个向量
164
+ */
165
+ distanceSquaredTo(other) {
166
+ const dx = this.x - other.x;
167
+ const dy = this.y - other.y;
168
+ return dx * dx + dy * dy;
169
+ }
170
+ /**
171
+ * 检查向量是否相等
172
+ * @param other 另一个向量
173
+ * @param tolerance 容差
174
+ */
175
+ equals(other, tolerance = 0.0001) {
176
+ return Math.abs(this.x - other.x) < tolerance && Math.abs(this.y - other.y) < tolerance;
177
+ }
178
+ /**
179
+ * 获取向量的角度(弧度)
180
+ */
181
+ angle() {
182
+ return Math.atan2(this.y, this.x);
183
+ }
184
+ /**
185
+ * 旋转向量
186
+ * @param radians 旋转角度(弧度)
187
+ */
188
+ rotate(radians) {
189
+ const cos = Math.cos(radians);
190
+ const sin = Math.sin(radians);
191
+ return new Vector2(this.x * cos - this.y * sin, this.x * sin + this.y * cos);
192
+ }
193
+ /**
194
+ * 线性插值
195
+ * @param other 目标向量
196
+ * @param t 插值参数(0-1)
197
+ */
198
+ lerp(other, t) {
199
+ return new Vector2(this.x + (other.x - this.x) * t, this.y + (other.y - this.y) * t);
200
+ }
201
+ /**
202
+ * 四舍五入
203
+ */
204
+ round() {
205
+ return new Vector2(Math.round(this.x), Math.round(this.y));
206
+ }
207
+ /**
208
+ * 向下取整
209
+ */
210
+ floor() {
211
+ return new Vector2(Math.floor(this.x), Math.floor(this.y));
212
+ }
213
+ /**
214
+ * 向上取整
215
+ */
216
+ ceil() {
217
+ return new Vector2(Math.ceil(this.x), Math.ceil(this.y));
218
+ }
219
+ /**
220
+ * 转换为字符串
221
+ */
222
+ toString() {
223
+ return `(${this.x.toFixed(2)}, ${this.y.toFixed(2)})`;
224
+ }
225
+ // 静态方法
226
+ /**
227
+ * 向量加法
228
+ * @param a 向量A
229
+ * @param b 向量B
230
+ */
231
+ static add(a, b) {
232
+ return new Vector2(a.x + b.x, a.y + b.y);
233
+ }
234
+ /**
235
+ * 向量减法
236
+ * @param a 向量A
237
+ * @param b 向量B
238
+ */
239
+ static subtract(a, b) {
240
+ return new Vector2(a.x - b.x, a.y - b.y);
241
+ }
242
+ /**
243
+ * 向量乘法
244
+ * @param a 向量A
245
+ * @param b 向量B或标量
246
+ */
247
+ static multiply(a, b) {
248
+ if (typeof b === 'number') {
249
+ return new Vector2(a.x * b, a.y * b);
250
+ }
251
+ else {
252
+ return new Vector2(a.x * b.x, a.y * b.y);
253
+ }
254
+ }
255
+ /**
256
+ * 向量除法
257
+ * @param a 向量A
258
+ * @param b 向量B或标量
259
+ */
260
+ static divide(a, b) {
261
+ if (typeof b === 'number') {
262
+ return new Vector2(a.x / b, a.y / b);
263
+ }
264
+ else {
265
+ return new Vector2(a.x / b.x, a.y / b.y);
266
+ }
267
+ }
268
+ /**
269
+ * 向量点积
270
+ * @param a 向量A
271
+ * @param b 向量B
272
+ */
273
+ static dot(a, b) {
274
+ return a.x * b.x + a.y * b.y;
275
+ }
276
+ /**
277
+ * 向量叉积
278
+ * @param a 向量A
279
+ * @param b 向量B
280
+ */
281
+ static cross(a, b) {
282
+ return a.x * b.y - a.y * b.x;
283
+ }
284
+ /**
285
+ * 向量距离
286
+ * @param a 向量A
287
+ * @param b 向量B
288
+ */
289
+ static distance(a, b) {
290
+ const dx = a.x - b.x;
291
+ const dy = a.y - b.y;
292
+ return Math.sqrt(dx * dx + dy * dy);
293
+ }
294
+ /**
295
+ * 向量距离的平方
296
+ * @param a 向量A
297
+ * @param b 向量B
298
+ */
299
+ static distanceSquared(a, b) {
300
+ const dx = a.x - b.x;
301
+ const dy = a.y - b.y;
302
+ return dx * dx + dy * dy;
303
+ }
304
+ /**
305
+ * 线性插值
306
+ * @param a 起始向量
307
+ * @param b 目标向量
308
+ * @param t 插值参数(0-1)
309
+ */
310
+ static lerp(a, b, t) {
311
+ return new Vector2(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t);
312
+ }
313
+ /**
314
+ * 四舍五入
315
+ * @param vector 向量
316
+ */
317
+ static round(vector) {
318
+ return new Vector2(Math.round(vector.x), Math.round(vector.y));
319
+ }
320
+ /**
321
+ * 从角度创建向量
322
+ * @param radians 角度(弧度)
323
+ * @param length 长度,默认为1
324
+ */
325
+ static fromAngle(radians, length = 1) {
326
+ return new Vector2(Math.cos(radians) * length, Math.sin(radians) * length);
327
+ }
328
+ /**
329
+ * 反射向量
330
+ * @param vector 入射向量
331
+ * @param normal 法向量
332
+ */
333
+ static reflect(vector, normal) {
334
+ const dot = Vector2.dot(vector, normal);
335
+ return Vector2.subtract(vector, Vector2.multiply(normal, 2 * dot));
336
+ }
337
+ }
338
+ //# sourceMappingURL=Vector2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vector2.js","sourceRoot":"","sources":["../../src/Math/Vector2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { Vector2 } from './Vector2';
2
+ export { MathHelper } from './MathHelper';
3
+ export { Rectangle } from './Rectangle';
4
+ export { Edge } from './Edge';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Math/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,6 @@
1
+ // 数学库导出
2
+ export { Vector2 } from './Vector2';
3
+ export { MathHelper } from './MathHelper';
4
+ export { Rectangle } from './Rectangle';
5
+ export { Edge } from './Edge';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Math/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 框架核心类型定义
3
+ */
4
+ /** 更新顺序比较器接口 */
5
+ export interface IUpdateOrderComparable {
6
+ updateOrder: number;
7
+ }
8
+ /** 日志类型枚举 */
9
+ export declare enum LogType {
10
+ Error = 0,
11
+ Assert = 1,
12
+ Warning = 2,
13
+ Log = 3,
14
+ Exception = 4
15
+ }
16
+ /** 组件变换类型枚举 */
17
+ export declare enum ComponentTransform {
18
+ Position = 1,
19
+ Scale = 2,
20
+ Rotation = 4
21
+ }
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,gBAAgB;AAChB,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,aAAa;AACb,oBAAY,OAAO;IACf,KAAK,IAAI;IACT,MAAM,IAAI;IACV,OAAO,IAAI;IACX,GAAG,IAAI;IACP,SAAS,IAAI;CAChB;AAED,eAAe;AACf,oBAAY,kBAAkB;IAC1B,QAAQ,IAAI;IACZ,KAAK,IAAI;IACT,QAAQ,IAAI;CACf"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * 框架核心类型定义
3
+ */
4
+ /** 日志类型枚举 */
5
+ export var LogType;
6
+ (function (LogType) {
7
+ LogType[LogType["Error"] = 0] = "Error";
8
+ LogType[LogType["Assert"] = 1] = "Assert";
9
+ LogType[LogType["Warning"] = 2] = "Warning";
10
+ LogType[LogType["Log"] = 3] = "Log";
11
+ LogType[LogType["Exception"] = 4] = "Exception";
12
+ })(LogType || (LogType = {}));
13
+ /** 组件变换类型枚举 */
14
+ export var ComponentTransform;
15
+ (function (ComponentTransform) {
16
+ ComponentTransform[ComponentTransform["Position"] = 1] = "Position";
17
+ ComponentTransform[ComponentTransform["Scale"] = 2] = "Scale";
18
+ ComponentTransform[ComponentTransform["Rotation"] = 4] = "Rotation";
19
+ })(ComponentTransform || (ComponentTransform = {}));
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,aAAa;AACb,MAAM,CAAN,IAAY,OAMX;AAND,WAAY,OAAO;IACf,uCAAS,CAAA;IACT,yCAAU,CAAA;IACV,2CAAW,CAAA;IACX,mCAAO,CAAA;IACP,+CAAa,CAAA;AACjB,CAAC,EANW,OAAO,KAAP,OAAO,QAMlB;AAED,eAAe;AACf,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,mEAAY,CAAA;IACZ,6DAAS,CAAA;IACT,mEAAY,CAAA;AAChB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * 用于包装事件的一个小类
3
+ */
4
+ export declare class FuncPack {
5
+ /** 函数 */
6
+ func: Function;
7
+ /** 上下文 */
8
+ context: any;
9
+ constructor(func: Function, context: any);
10
+ }
11
+ /**
12
+ * 用于事件管理
13
+ */
14
+ export declare class Emitter<T> {
15
+ private _messageTable;
16
+ constructor();
17
+ /**
18
+ * 开始监听项
19
+ * @param eventType 监听类型
20
+ * @param handler 监听函数
21
+ * @param context 监听上下文
22
+ */
23
+ addObserver(eventType: T, handler: Function, context: any): void;
24
+ /**
25
+ * 移除监听项
26
+ * @param eventType 事件类型
27
+ * @param handler 事件函数
28
+ */
29
+ removeObserver(eventType: T, handler: Function): void;
30
+ /**
31
+ * 触发该事件
32
+ * @param eventType 事件类型
33
+ * @param data 事件数据
34
+ */
35
+ emit(eventType: T, ...data: any[]): void;
36
+ /**
37
+ * 判断是否存在该类型的观察者
38
+ * @param eventType 事件类型
39
+ * @param handler 事件函数
40
+ */
41
+ hasObserver(eventType: T, handler: Function): boolean;
42
+ }
43
+ //# sourceMappingURL=Emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Emitter.d.ts","sourceRoot":"","sources":["../../src/Utils/Emitter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,QAAQ;IACjB,SAAS;IACF,IAAI,EAAE,QAAQ,CAAC;IACtB,UAAU;IACH,OAAO,EAAE,GAAG,CAAC;gBAER,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG;CAI3C;AAED;;GAEG;AACH,qBAAa,OAAO,CAAC,CAAC;IAClB,OAAO,CAAC,aAAa,CAAqB;;IAM1C;;;;;OAKG;IACI,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG;IAYhE;;;;OAIG;IACI,cAAc,CAAC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ;IASrD;;;;OAIG;IACI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IASxC;;;;OAIG;IACI,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO;CAI/D"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * 用于包装事件的一个小类
3
+ */
4
+ export class FuncPack {
5
+ constructor(func, context) {
6
+ this.func = func;
7
+ this.context = context;
8
+ }
9
+ }
10
+ /**
11
+ * 用于事件管理
12
+ */
13
+ export class Emitter {
14
+ constructor() {
15
+ this._messageTable = new Map();
16
+ }
17
+ /**
18
+ * 开始监听项
19
+ * @param eventType 监听类型
20
+ * @param handler 监听函数
21
+ * @param context 监听上下文
22
+ */
23
+ addObserver(eventType, handler, context) {
24
+ let list = this._messageTable.get(eventType);
25
+ if (!list) {
26
+ list = [];
27
+ this._messageTable.set(eventType, list);
28
+ }
29
+ if (!this.hasObserver(eventType, handler)) {
30
+ list.push(new FuncPack(handler, context));
31
+ }
32
+ }
33
+ /**
34
+ * 移除监听项
35
+ * @param eventType 事件类型
36
+ * @param handler 事件函数
37
+ */
38
+ removeObserver(eventType, handler) {
39
+ let messageData = this._messageTable.get(eventType);
40
+ if (messageData) {
41
+ let index = messageData.findIndex(data => data.func == handler);
42
+ if (index != -1)
43
+ messageData.splice(index, 1);
44
+ }
45
+ }
46
+ /**
47
+ * 触发该事件
48
+ * @param eventType 事件类型
49
+ * @param data 事件数据
50
+ */
51
+ emit(eventType, ...data) {
52
+ let list = this._messageTable.get(eventType);
53
+ if (list) {
54
+ for (let observer of list) {
55
+ observer.func.call(observer.context, ...data);
56
+ }
57
+ }
58
+ }
59
+ /**
60
+ * 判断是否存在该类型的观察者
61
+ * @param eventType 事件类型
62
+ * @param handler 事件函数
63
+ */
64
+ hasObserver(eventType, handler) {
65
+ let list = this._messageTable.get(eventType);
66
+ return list ? list.some(observer => observer.func === handler) : false;
67
+ }
68
+ }
69
+ //# sourceMappingURL=Emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Emitter.js","sourceRoot":"","sources":["../../src/Utils/Emitter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,QAAQ;IAMjB,YAAY,IAAc,EAAE,OAAY;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,OAAO;IAGhB;QACI,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAiB,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,SAAY,EAAE,OAAiB,EAAE,OAAY;QAC5D,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,SAAY,EAAE,OAAiB;QACjD,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC;YAChE,IAAI,KAAK,IAAI,CAAC,CAAC;gBACX,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,SAAY,EAAE,GAAG,IAAW;QACpC,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,IAAI,EAAE,CAAC;YACP,KAAK,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,SAAY,EAAE,OAAiB;QAC9C,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3E,CAAC;CACJ"}
@@ -0,0 +1,26 @@
1
+ import { Edge } from '../../Math/Edge';
2
+ /**
3
+ * 边缘扩展工具类
4
+ * 提供边缘相关的实用方法
5
+ */
6
+ export declare class EdgeExt {
7
+ /**
8
+ * 获取相对的边缘
9
+ * @param self 当前边缘
10
+ * @returns 相对的边缘
11
+ */
12
+ static oppositeEdge(self: Edge): Edge;
13
+ /**
14
+ * 检查边缘是否为水平方向(左或右)
15
+ * @param self 边缘
16
+ * @returns 如果是水平方向返回true,否则返回false
17
+ */
18
+ static isHorizontal(self: Edge): boolean;
19
+ /**
20
+ * 检查边缘是否为垂直方向(上或下)
21
+ * @param self 边缘
22
+ * @returns 如果是垂直方向返回true,否则返回false
23
+ */
24
+ static isVertical(self: Edge): boolean;
25
+ }
26
+ //# sourceMappingURL=EdgeExt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EdgeExt.d.ts","sourceRoot":"","sources":["../../../src/Utils/Extensions/EdgeExt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC;;;GAGG;AACH,qBAAa,OAAO;IAChB;;;;OAIG;WACW,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAa5C;;;;OAIG;WACW,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAI/C;;;;OAIG;WACW,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAGhD"}
@@ -0,0 +1,41 @@
1
+ import { Edge } from '../../Math/Edge';
2
+ /**
3
+ * 边缘扩展工具类
4
+ * 提供边缘相关的实用方法
5
+ */
6
+ export class EdgeExt {
7
+ /**
8
+ * 获取相对的边缘
9
+ * @param self 当前边缘
10
+ * @returns 相对的边缘
11
+ */
12
+ static oppositeEdge(self) {
13
+ switch (self) {
14
+ case Edge.bottom:
15
+ return Edge.top;
16
+ case Edge.top:
17
+ return Edge.bottom;
18
+ case Edge.left:
19
+ return Edge.right;
20
+ case Edge.right:
21
+ return Edge.left;
22
+ }
23
+ }
24
+ /**
25
+ * 检查边缘是否为水平方向(左或右)
26
+ * @param self 边缘
27
+ * @returns 如果是水平方向返回true,否则返回false
28
+ */
29
+ static isHorizontal(self) {
30
+ return self == Edge.right || self == Edge.left;
31
+ }
32
+ /**
33
+ * 检查边缘是否为垂直方向(上或下)
34
+ * @param self 边缘
35
+ * @returns 如果是垂直方向返回true,否则返回false
36
+ */
37
+ static isVertical(self) {
38
+ return self == Edge.top || self == Edge.bottom;
39
+ }
40
+ }
41
+ //# sourceMappingURL=EdgeExt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EdgeExt.js","sourceRoot":"","sources":["../../../src/Utils/Extensions/EdgeExt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC;;;GAGG;AACH,MAAM,OAAO,OAAO;IAChB;;;;OAIG;IACI,MAAM,CAAC,YAAY,CAAC,IAAU;QACjC,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,MAAM;gBACZ,OAAO,IAAI,CAAC,GAAG,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG;gBACT,OAAO,IAAI,CAAC,MAAM,CAAC;YACvB,KAAK,IAAI,CAAC,IAAI;gBACV,OAAO,IAAI,CAAC,KAAK,CAAC;YACtB,KAAK,IAAI,CAAC,KAAK;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC;QACzB,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,YAAY,CAAC,IAAU;QACjC,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,UAAU,CAAC,IAAU;QAC/B,OAAO,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;IACnD,CAAC;CACJ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 数字扩展工具类
3
+ * 提供数字转换的实用方法
4
+ */
5
+ export declare class NumberExtension {
6
+ /**
7
+ * 将值转换为数字
8
+ * @param value 要转换的值
9
+ * @returns 转换后的数字,如果值为undefined则返回0
10
+ */
11
+ static toNumber(value: any): number;
12
+ }
13
+ //# sourceMappingURL=NumberExtension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberExtension.d.ts","sourceRoot":"","sources":["../../../src/Utils/Extensions/NumberExtension.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,eAAe;IACxB;;;;OAIG;WACW,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;CAI7C"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 数字扩展工具类
3
+ * 提供数字转换的实用方法
4
+ */
5
+ export class NumberExtension {
6
+ /**
7
+ * 将值转换为数字
8
+ * @param value 要转换的值
9
+ * @returns 转换后的数字,如果值为undefined则返回0
10
+ */
11
+ static toNumber(value) {
12
+ if (value == undefined)
13
+ return 0;
14
+ return Number(value);
15
+ }
16
+ }
17
+ //# sourceMappingURL=NumberExtension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberExtension.js","sourceRoot":"","sources":["../../../src/Utils/Extensions/NumberExtension.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,eAAe;IACxB;;;;OAIG;IACI,MAAM,CAAC,QAAQ,CAAC,KAAU;QAC7B,IAAI,KAAK,IAAI,SAAS;YAAE,OAAO,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACJ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 类型工具类
3
+ * 提供类型相关的实用方法
4
+ */
5
+ export declare class TypeUtils {
6
+ /**
7
+ * 获取对象的类型
8
+ * @param obj 对象
9
+ * @returns 对象的构造函数
10
+ */
11
+ static getType(obj: any): any;
12
+ }
13
+ //# sourceMappingURL=TypeUtils.d.ts.map