@esengine/ecs-framework 2.1.4 → 2.1.6
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.
- package/README.md +385 -0
- package/{bin/index.d.ts → index.d.ts} +9 -6
- package/index.js +7 -0
- package/index.js.map +7 -0
- package/package.json +21 -46
- package/{bin/wasm → wasm}/ecs_wasm_core_bg.wasm +0 -0
- package/bin/Core.d.ts +0 -198
- package/bin/Core.d.ts.map +0 -1
- package/bin/Core.js +0 -247
- package/bin/Core.js.map +0 -1
- package/bin/ECS/Component.d.ts +0 -119
- package/bin/ECS/Component.d.ts.map +0 -1
- package/bin/ECS/Component.js +0 -129
- package/bin/ECS/Component.js.map +0 -1
- package/bin/ECS/Components/IUpdatable.d.ts +0 -22
- package/bin/ECS/Components/IUpdatable.d.ts.map +0 -1
- package/bin/ECS/Components/IUpdatable.js +0 -22
- package/bin/ECS/Components/IUpdatable.js.map +0 -1
- package/bin/ECS/Components/SceneComponent.d.ts +0 -40
- package/bin/ECS/Components/SceneComponent.d.ts.map +0 -1
- package/bin/ECS/Components/SceneComponent.js +0 -61
- package/bin/ECS/Components/SceneComponent.js.map +0 -1
- package/bin/ECS/Core/BitMaskOptimizer.d.ts +0 -75
- package/bin/ECS/Core/BitMaskOptimizer.d.ts.map +0 -1
- package/bin/ECS/Core/BitMaskOptimizer.js +0 -161
- package/bin/ECS/Core/BitMaskOptimizer.js.map +0 -1
- package/bin/ECS/Core/ComponentPool.d.ts +0 -72
- package/bin/ECS/Core/ComponentPool.d.ts.map +0 -1
- package/bin/ECS/Core/ComponentPool.js +0 -123
- package/bin/ECS/Core/ComponentPool.js.map +0 -1
- package/bin/ECS/Core/ComponentStorage.d.ts +0 -182
- package/bin/ECS/Core/ComponentStorage.d.ts.map +0 -1
- package/bin/ECS/Core/ComponentStorage.js +0 -346
- package/bin/ECS/Core/ComponentStorage.js.map +0 -1
- package/bin/ECS/Core/EventSystem.d.ts +0 -236
- package/bin/ECS/Core/EventSystem.d.ts.map +0 -1
- package/bin/ECS/Core/EventSystem.js +0 -476
- package/bin/ECS/Core/EventSystem.js.map +0 -1
- package/bin/ECS/Core/FluentAPI.d.ts +0 -371
- package/bin/ECS/Core/FluentAPI.d.ts.map +0 -1
- package/bin/ECS/Core/FluentAPI.js +0 -543
- package/bin/ECS/Core/FluentAPI.js.map +0 -1
- package/bin/ECS/Core/IndexUpdateBatcher.d.ts +0 -100
- package/bin/ECS/Core/IndexUpdateBatcher.d.ts.map +0 -1
- package/bin/ECS/Core/IndexUpdateBatcher.js +0 -219
- package/bin/ECS/Core/IndexUpdateBatcher.js.map +0 -1
- package/bin/ECS/Core/QuerySystem.d.ts +0 -422
- package/bin/ECS/Core/QuerySystem.d.ts.map +0 -1
- package/bin/ECS/Core/QuerySystem.js +0 -937
- package/bin/ECS/Core/QuerySystem.js.map +0 -1
- package/bin/ECS/CoreEvents.d.ts +0 -19
- package/bin/ECS/CoreEvents.d.ts.map +0 -1
- package/bin/ECS/CoreEvents.js +0 -20
- package/bin/ECS/CoreEvents.js.map +0 -1
- package/bin/ECS/Entity.d.ts +0 -538
- package/bin/ECS/Entity.d.ts.map +0 -1
- package/bin/ECS/Entity.js +0 -1030
- package/bin/ECS/Entity.js.map +0 -1
- package/bin/ECS/Scene.d.ts +0 -226
- package/bin/ECS/Scene.d.ts.map +0 -1
- package/bin/ECS/Scene.js +0 -308
- package/bin/ECS/Scene.js.map +0 -1
- package/bin/ECS/Systems/EntitySystem.d.ts +0 -185
- package/bin/ECS/Systems/EntitySystem.d.ts.map +0 -1
- package/bin/ECS/Systems/EntitySystem.js +0 -278
- package/bin/ECS/Systems/EntitySystem.js.map +0 -1
- package/bin/ECS/Systems/IntervalSystem.d.ts +0 -33
- package/bin/ECS/Systems/IntervalSystem.d.ts.map +0 -1
- package/bin/ECS/Systems/IntervalSystem.js +0 -50
- package/bin/ECS/Systems/IntervalSystem.js.map +0 -1
- package/bin/ECS/Systems/PassiveSystem.d.ts +0 -20
- package/bin/ECS/Systems/PassiveSystem.d.ts.map +0 -1
- package/bin/ECS/Systems/PassiveSystem.js +0 -21
- package/bin/ECS/Systems/PassiveSystem.js.map +0 -1
- package/bin/ECS/Systems/ProcessingSystem.d.ts +0 -24
- package/bin/ECS/Systems/ProcessingSystem.d.ts.map +0 -1
- package/bin/ECS/Systems/ProcessingSystem.js +0 -22
- package/bin/ECS/Systems/ProcessingSystem.js.map +0 -1
- package/bin/ECS/Systems/index.d.ts +0 -5
- package/bin/ECS/Systems/index.d.ts.map +0 -1
- package/bin/ECS/Systems/index.js +0 -6
- package/bin/ECS/Systems/index.js.map +0 -1
- package/bin/ECS/Utils/Bits.d.ts +0 -74
- package/bin/ECS/Utils/Bits.d.ts.map +0 -1
- package/bin/ECS/Utils/Bits.js +0 -142
- package/bin/ECS/Utils/Bits.js.map +0 -1
- package/bin/ECS/Utils/ComponentTypeManager.d.ts +0 -50
- package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +0 -1
- package/bin/ECS/Utils/ComponentTypeManager.js +0 -84
- package/bin/ECS/Utils/ComponentTypeManager.js.map +0 -1
- package/bin/ECS/Utils/EntityList.d.ts +0 -108
- package/bin/ECS/Utils/EntityList.d.ts.map +0 -1
- package/bin/ECS/Utils/EntityList.js +0 -249
- package/bin/ECS/Utils/EntityList.js.map +0 -1
- package/bin/ECS/Utils/EntityProcessorList.d.ts +0 -53
- package/bin/ECS/Utils/EntityProcessorList.d.ts.map +0 -1
- package/bin/ECS/Utils/EntityProcessorList.js +0 -96
- package/bin/ECS/Utils/EntityProcessorList.js.map +0 -1
- package/bin/ECS/Utils/IdentifierPool.d.ts +0 -18
- package/bin/ECS/Utils/IdentifierPool.d.ts.map +0 -1
- package/bin/ECS/Utils/IdentifierPool.js +0 -27
- package/bin/ECS/Utils/IdentifierPool.js.map +0 -1
- package/bin/ECS/Utils/Matcher.d.ts +0 -63
- package/bin/ECS/Utils/Matcher.d.ts.map +0 -1
- package/bin/ECS/Utils/Matcher.js +0 -140
- package/bin/ECS/Utils/Matcher.js.map +0 -1
- package/bin/ECS/Utils/index.d.ts +0 -7
- package/bin/ECS/Utils/index.d.ts.map +0 -1
- package/bin/ECS/Utils/index.js +0 -8
- package/bin/ECS/Utils/index.js.map +0 -1
- package/bin/ECS/index.d.ts +0 -7
- package/bin/ECS/index.d.ts.map +0 -1
- package/bin/ECS/index.js +0 -29
- package/bin/ECS/index.js.map +0 -1
- package/bin/Testing/Performance/benchmark.d.ts +0 -6
- package/bin/Testing/Performance/benchmark.d.ts.map +0 -1
- package/bin/Testing/Performance/benchmark.js +0 -639
- package/bin/Testing/Performance/benchmark.js.map +0 -1
- package/bin/Testing/Performance/component-performance.d.ts +0 -2
- package/bin/Testing/Performance/component-performance.d.ts.map +0 -1
- package/bin/Testing/Performance/component-performance.js +0 -43
- package/bin/Testing/Performance/component-performance.js.map +0 -1
- package/bin/Testing/Unit/bitmask-optimizer.test.d.ts +0 -2
- package/bin/Testing/Unit/bitmask-optimizer.test.d.ts.map +0 -1
- package/bin/Testing/Unit/bitmask-optimizer.test.js +0 -164
- package/bin/Testing/Unit/bitmask-optimizer.test.js.map +0 -1
- package/bin/Testing/Unit/component-pool.test.d.ts +0 -5
- package/bin/Testing/Unit/component-pool.test.d.ts.map +0 -1
- package/bin/Testing/Unit/component-pool.test.js +0 -149
- package/bin/Testing/Unit/component-pool.test.js.map +0 -1
- package/bin/Testing/test-runner.d.ts +0 -51
- package/bin/Testing/test-runner.d.ts.map +0 -1
- package/bin/Testing/test-runner.js +0 -159
- package/bin/Testing/test-runner.js.map +0 -1
- package/bin/Types/index.d.ts +0 -22
- package/bin/Types/index.d.ts.map +0 -1
- package/bin/Types/index.js +0 -20
- package/bin/Types/index.js.map +0 -1
- package/bin/Utils/Emitter.d.ts +0 -43
- package/bin/Utils/Emitter.d.ts.map +0 -1
- package/bin/Utils/Emitter.js +0 -69
- package/bin/Utils/Emitter.js.map +0 -1
- package/bin/Utils/Extensions/NumberExtension.d.ts +0 -13
- package/bin/Utils/Extensions/NumberExtension.d.ts.map +0 -1
- package/bin/Utils/Extensions/NumberExtension.js +0 -17
- package/bin/Utils/Extensions/NumberExtension.js.map +0 -1
- package/bin/Utils/Extensions/TypeUtils.d.ts +0 -13
- package/bin/Utils/Extensions/TypeUtils.d.ts.map +0 -1
- package/bin/Utils/Extensions/TypeUtils.js +0 -15
- package/bin/Utils/Extensions/TypeUtils.js.map +0 -1
- package/bin/Utils/Extensions/index.d.ts +0 -3
- package/bin/Utils/Extensions/index.d.ts.map +0 -1
- package/bin/Utils/Extensions/index.js +0 -4
- package/bin/Utils/Extensions/index.js.map +0 -1
- package/bin/Utils/GlobalManager.d.ts +0 -32
- package/bin/Utils/GlobalManager.d.ts.map +0 -1
- package/bin/Utils/GlobalManager.js +0 -53
- package/bin/Utils/GlobalManager.js.map +0 -1
- package/bin/Utils/PerformanceMonitor.d.ts +0 -211
- package/bin/Utils/PerformanceMonitor.d.ts.map +0 -1
- package/bin/Utils/PerformanceMonitor.js +0 -270
- package/bin/Utils/PerformanceMonitor.js.map +0 -1
- package/bin/Utils/Pool.d.ts +0 -239
- package/bin/Utils/Pool.d.ts.map +0 -1
- package/bin/Utils/Pool.js +0 -449
- package/bin/Utils/Pool.js.map +0 -1
- package/bin/Utils/Time.d.ts +0 -55
- package/bin/Utils/Time.d.ts.map +0 -1
- package/bin/Utils/Time.js +0 -78
- package/bin/Utils/Time.js.map +0 -1
- package/bin/Utils/Timers/ITimer.d.ts +0 -16
- package/bin/Utils/Timers/ITimer.d.ts.map +0 -1
- package/bin/Utils/Timers/ITimer.js +0 -2
- package/bin/Utils/Timers/ITimer.js.map +0 -1
- package/bin/Utils/Timers/Timer.d.ts +0 -22
- package/bin/Utils/Timers/Timer.d.ts.map +0 -1
- package/bin/Utils/Timers/Timer.js +0 -46
- package/bin/Utils/Timers/Timer.js.map +0 -1
- package/bin/Utils/Timers/TimerManager.d.ts +0 -19
- package/bin/Utils/Timers/TimerManager.d.ts.map +0 -1
- package/bin/Utils/Timers/TimerManager.js +0 -33
- package/bin/Utils/Timers/TimerManager.js.map +0 -1
- package/bin/Utils/WasmCore.d.ts +0 -234
- package/bin/Utils/WasmCore.d.ts.map +0 -1
- package/bin/Utils/WasmCore.js +0 -596
- package/bin/Utils/WasmCore.js.map +0 -1
- package/bin/Utils/index.d.ts +0 -16
- package/bin/Utils/index.d.ts.map +0 -1
- package/bin/Utils/index.js +0 -37
- package/bin/Utils/index.js.map +0 -1
- package/bin/index.cjs +0 -51
- package/bin/index.d.ts.map +0 -1
- package/bin/index.esm.d.ts +0 -45
- package/bin/index.esm.d.ts.map +0 -1
- package/bin/index.esm.js +0 -46
- package/bin/index.esm.js.map +0 -1
- package/bin/index.js.map +0 -1
- /package/{bin/wasm → wasm}/ecs_wasm_core.d.ts +0 -0
- /package/{bin/wasm → wasm}/ecs_wasm_core.js +0 -0
- /package/{bin/wasm → wasm}/ecs_wasm_core_bg.wasm.d.ts +0 -0
- /package/{bin/wasm → wasm}/package.json +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ECS/Systems/index.ts"],"names":[],"mappings":"AACA,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"}
|
package/bin/ECS/Systems/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ECS/Systems/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,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"}
|
package/bin/ECS/Utils/Bits.d.ts
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/bin/ECS/Utils/Bits.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Bits.js","sourceRoot":"","sources":["../../../src/ECS/Utils/Bits.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,IAAI;IAIb;QAHQ,WAAM,GAAa,EAAE,CAAC;QAI1B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACI,GAAG,CAAC,KAAa;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAExC,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,KAAa;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAExC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,KAAa;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAExC,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,KAAW;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,KAAW;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,KAAW;QACvB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,QAAQ;QACX,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,OAAO;QACV,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,WAAW;QACd,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACK,QAAQ,CAAC,CAAS;QACtB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;QACjC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,KAAW;QACvB,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACI,KAAK;QACR,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC;IACnB,CAAC;;AA5JuB,cAAS,GAAG,EAAE,AAAL,CAAM"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Component } from '../Component';
|
|
2
|
-
import { Bits } from './Bits';
|
|
3
|
-
/**
|
|
4
|
-
* 组件类型管理器
|
|
5
|
-
* 负责管理组件类型的注册和ID分配
|
|
6
|
-
*/
|
|
7
|
-
export declare class ComponentTypeManager {
|
|
8
|
-
private static _instance;
|
|
9
|
-
private _componentTypes;
|
|
10
|
-
private _typeNames;
|
|
11
|
-
private _nextTypeId;
|
|
12
|
-
/**
|
|
13
|
-
* 获取单例实例
|
|
14
|
-
*/
|
|
15
|
-
static get instance(): ComponentTypeManager;
|
|
16
|
-
private constructor();
|
|
17
|
-
/**
|
|
18
|
-
* 获取组件类型的ID
|
|
19
|
-
* @param componentType 组件类型构造函数
|
|
20
|
-
* @returns 组件类型ID
|
|
21
|
-
*/
|
|
22
|
-
getTypeId<T extends Component>(componentType: new (...args: any[]) => T): number;
|
|
23
|
-
/**
|
|
24
|
-
* 获取组件类型名称
|
|
25
|
-
* @param typeId 组件类型ID
|
|
26
|
-
* @returns 组件类型名称
|
|
27
|
-
*/
|
|
28
|
-
getTypeName(typeId: number): string;
|
|
29
|
-
/**
|
|
30
|
-
* 创建包含指定组件类型的Bits对象
|
|
31
|
-
* @param componentTypes 组件类型构造函数数组
|
|
32
|
-
* @returns Bits对象
|
|
33
|
-
*/
|
|
34
|
-
createBits(...componentTypes: (new (...args: any[]) => Component)[]): Bits;
|
|
35
|
-
/**
|
|
36
|
-
* 获取实体的组件位掩码
|
|
37
|
-
* @param components 组件数组
|
|
38
|
-
* @returns Bits对象
|
|
39
|
-
*/
|
|
40
|
-
getEntityBits(components: Component[]): Bits;
|
|
41
|
-
/**
|
|
42
|
-
* 重置管理器(主要用于测试)
|
|
43
|
-
*/
|
|
44
|
-
reset(): void;
|
|
45
|
-
/**
|
|
46
|
-
* 获取已注册的组件类型数量
|
|
47
|
-
*/
|
|
48
|
-
get registeredTypeCount(): number;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=ComponentTypeManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentTypeManager.d.ts","sourceRoot":"","sources":["../../../src/ECS/Utils/ComponentTypeManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;GAGG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAuB;IAC/C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,WAAW,CAAK;IAExB;;OAEG;IACH,WAAkB,QAAQ,IAAI,oBAAoB,CAKjD;IAED,OAAO;IAEP;;;;OAIG;IACI,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM;IAYvF;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;OAIG;IACI,UAAU,CAAC,GAAG,cAAc,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,EAAE,GAAG,IAAI;IAWjF;;;;OAIG;IACI,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAWnD;;OAEG;IACI,KAAK,IAAI,IAAI;IAMpB;;OAEG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAEvC;CACJ"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Bits } from './Bits';
|
|
2
|
-
/**
|
|
3
|
-
* 组件类型管理器
|
|
4
|
-
* 负责管理组件类型的注册和ID分配
|
|
5
|
-
*/
|
|
6
|
-
export class ComponentTypeManager {
|
|
7
|
-
/**
|
|
8
|
-
* 获取单例实例
|
|
9
|
-
*/
|
|
10
|
-
static get instance() {
|
|
11
|
-
if (!ComponentTypeManager._instance) {
|
|
12
|
-
ComponentTypeManager._instance = new ComponentTypeManager();
|
|
13
|
-
}
|
|
14
|
-
return ComponentTypeManager._instance;
|
|
15
|
-
}
|
|
16
|
-
constructor() {
|
|
17
|
-
this._componentTypes = new Map();
|
|
18
|
-
this._typeNames = new Map();
|
|
19
|
-
this._nextTypeId = 0;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* 获取组件类型的ID
|
|
23
|
-
* @param componentType 组件类型构造函数
|
|
24
|
-
* @returns 组件类型ID
|
|
25
|
-
*/
|
|
26
|
-
getTypeId(componentType) {
|
|
27
|
-
let typeId = this._componentTypes.get(componentType);
|
|
28
|
-
if (typeId === undefined) {
|
|
29
|
-
typeId = this._nextTypeId++;
|
|
30
|
-
this._componentTypes.set(componentType, typeId);
|
|
31
|
-
this._typeNames.set(typeId, componentType.name);
|
|
32
|
-
}
|
|
33
|
-
return typeId;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* 获取组件类型名称
|
|
37
|
-
* @param typeId 组件类型ID
|
|
38
|
-
* @returns 组件类型名称
|
|
39
|
-
*/
|
|
40
|
-
getTypeName(typeId) {
|
|
41
|
-
return this._typeNames.get(typeId) || 'Unknown';
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* 创建包含指定组件类型的Bits对象
|
|
45
|
-
* @param componentTypes 组件类型构造函数数组
|
|
46
|
-
* @returns Bits对象
|
|
47
|
-
*/
|
|
48
|
-
createBits(...componentTypes) {
|
|
49
|
-
const bits = new Bits();
|
|
50
|
-
for (const componentType of componentTypes) {
|
|
51
|
-
const typeId = this.getTypeId(componentType);
|
|
52
|
-
bits.set(typeId);
|
|
53
|
-
}
|
|
54
|
-
return bits;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* 获取实体的组件位掩码
|
|
58
|
-
* @param components 组件数组
|
|
59
|
-
* @returns Bits对象
|
|
60
|
-
*/
|
|
61
|
-
getEntityBits(components) {
|
|
62
|
-
const bits = new Bits();
|
|
63
|
-
for (const component of components) {
|
|
64
|
-
const typeId = this.getTypeId(component.constructor);
|
|
65
|
-
bits.set(typeId);
|
|
66
|
-
}
|
|
67
|
-
return bits;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* 重置管理器(主要用于测试)
|
|
71
|
-
*/
|
|
72
|
-
reset() {
|
|
73
|
-
this._componentTypes.clear();
|
|
74
|
-
this._typeNames.clear();
|
|
75
|
-
this._nextTypeId = 0;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* 获取已注册的组件类型数量
|
|
79
|
-
*/
|
|
80
|
-
get registeredTypeCount() {
|
|
81
|
-
return this._componentTypes.size;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=ComponentTypeManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentTypeManager.js","sourceRoot":"","sources":["../../../src/ECS/Utils/ComponentTypeManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IAM7B;;OAEG;IACI,MAAM,KAAK,QAAQ;QACtB,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;YAClC,oBAAoB,CAAC,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAChE,CAAC;QACD,OAAO,oBAAoB,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED;QAdQ,oBAAe,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC9C,eAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvC,gBAAW,GAAG,CAAC,CAAC;IAYD,CAAC;IAExB;;;;OAIG;IACI,SAAS,CAAsB,aAAwC;QAC1E,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAErD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,GAAG,cAAqD;QACtE,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,UAAuB;QACxC,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAgD,CAAC,CAAC;YAC1F,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IACrC,CAAC;CACJ"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { Entity } from '../Entity';
|
|
2
|
-
import { Component } from '../Component';
|
|
3
|
-
/**
|
|
4
|
-
* 高性能实体列表管理器
|
|
5
|
-
* 管理场景中的所有实体,支持快速查找和批量操作
|
|
6
|
-
*/
|
|
7
|
-
export declare class EntityList {
|
|
8
|
-
buffer: Entity[];
|
|
9
|
-
private _scene;
|
|
10
|
-
private _idToEntity;
|
|
11
|
-
private _nameToEntities;
|
|
12
|
-
private _entitiesToAdd;
|
|
13
|
-
private _entitiesToRemove;
|
|
14
|
-
private _isUpdating;
|
|
15
|
-
get count(): number;
|
|
16
|
-
constructor(scene: any);
|
|
17
|
-
/**
|
|
18
|
-
* 添加实体(立即添加或延迟添加)
|
|
19
|
-
* @param entity 要添加的实体
|
|
20
|
-
*/
|
|
21
|
-
add(entity: Entity): void;
|
|
22
|
-
/**
|
|
23
|
-
* 立即添加实体
|
|
24
|
-
* @param entity 要添加的实体
|
|
25
|
-
*/
|
|
26
|
-
private addImmediate;
|
|
27
|
-
/**
|
|
28
|
-
* 移除实体(立即移除或延迟移除)
|
|
29
|
-
* @param entity 要移除的实体
|
|
30
|
-
*/
|
|
31
|
-
remove(entity: Entity): void;
|
|
32
|
-
/**
|
|
33
|
-
* 立即移除实体
|
|
34
|
-
* @param entity 要移除的实体
|
|
35
|
-
*/
|
|
36
|
-
private removeImmediate;
|
|
37
|
-
/**
|
|
38
|
-
* 移除所有实体
|
|
39
|
-
*/
|
|
40
|
-
removeAllEntities(): void;
|
|
41
|
-
/**
|
|
42
|
-
* 更新实体列表,处理延迟操作
|
|
43
|
-
*/
|
|
44
|
-
updateLists(): void;
|
|
45
|
-
/**
|
|
46
|
-
* 更新所有实体
|
|
47
|
-
*/
|
|
48
|
-
update(): void;
|
|
49
|
-
/**
|
|
50
|
-
* 根据名称查找实体(使用索引,O(1)复杂度)
|
|
51
|
-
* @param name 实体名称
|
|
52
|
-
* @returns 找到的第一个实体或null
|
|
53
|
-
*/
|
|
54
|
-
findEntity(name: string): Entity | null;
|
|
55
|
-
/**
|
|
56
|
-
* 根据名称查找所有实体
|
|
57
|
-
* @param name 实体名称
|
|
58
|
-
* @returns 找到的所有实体数组
|
|
59
|
-
*/
|
|
60
|
-
findEntitiesByName(name: string): Entity[];
|
|
61
|
-
/**
|
|
62
|
-
* 根据ID查找实体(使用索引,O(1)复杂度)
|
|
63
|
-
* @param id 实体ID
|
|
64
|
-
* @returns 找到的实体或null
|
|
65
|
-
*/
|
|
66
|
-
findEntityById(id: number): Entity | null;
|
|
67
|
-
/**
|
|
68
|
-
* 根据标签查找实体
|
|
69
|
-
* @param tag 标签
|
|
70
|
-
* @returns 找到的所有实体数组
|
|
71
|
-
*/
|
|
72
|
-
findEntitiesByTag(tag: number): Entity[];
|
|
73
|
-
/**
|
|
74
|
-
* 根据组件类型查找实体
|
|
75
|
-
* @param componentType 组件类型
|
|
76
|
-
* @returns 找到的所有实体数组
|
|
77
|
-
*/
|
|
78
|
-
findEntitiesWithComponent<T extends Component>(componentType: new (...args: any[]) => T): Entity[];
|
|
79
|
-
/**
|
|
80
|
-
* 批量操作:对所有实体执行指定操作
|
|
81
|
-
* @param action 要执行的操作
|
|
82
|
-
*/
|
|
83
|
-
forEach(action: (entity: Entity) => void): void;
|
|
84
|
-
/**
|
|
85
|
-
* 批量操作:对符合条件的实体执行指定操作
|
|
86
|
-
* @param predicate 筛选条件
|
|
87
|
-
* @param action 要执行的操作
|
|
88
|
-
*/
|
|
89
|
-
forEachWhere(predicate: (entity: Entity) => boolean, action: (entity: Entity) => void): void;
|
|
90
|
-
/**
|
|
91
|
-
* 更新名称索引
|
|
92
|
-
* @param entity 实体
|
|
93
|
-
* @param isAdd 是否为添加操作
|
|
94
|
-
*/
|
|
95
|
-
private updateNameIndex;
|
|
96
|
-
/**
|
|
97
|
-
* 获取实体列表的统计信息
|
|
98
|
-
* @returns 统计信息
|
|
99
|
-
*/
|
|
100
|
-
getStats(): {
|
|
101
|
-
totalEntities: number;
|
|
102
|
-
activeEntities: number;
|
|
103
|
-
pendingAdd: number;
|
|
104
|
-
pendingRemove: number;
|
|
105
|
-
nameIndexSize: number;
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=EntityList.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntityList.d.ts","sourceRoot":"","sources":["../../../src/ECS/Utils/EntityList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;GAGG;AACH,qBAAa,UAAU;IACZ,MAAM,EAAE,MAAM,EAAE,CAAM;IAC7B,OAAO,CAAC,MAAM,CAAM;IAGpB,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,eAAe,CAA+B;IAGtD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,WAAW,CAAS;IAE5B,IAAW,KAAK,IAAI,MAAM,CAEzB;gBAEW,KAAK,EAAE,GAAG;IAItB;;;OAGG;IACI,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAShC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAapB;;;OAGG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASnC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAYhC;;OAEG;IACI,WAAW,IAAI,IAAI;IAkB1B;;OAEG;IACI,MAAM,IAAI,IAAI;IAkBrB;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK9C;;;;OAIG;IACI,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAIjD;;;;OAIG;IACI,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhD;;;;OAIG;IACI,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAY/C;;;;OAIG;IACI,yBAAyB,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE;IAYzG;;;OAGG;IACI,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAMtD;;;;OAIG;IACI,YAAY,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAQnG;;;;OAIG;IACH,OAAO,CAAC,eAAe;IA4BvB;;;OAGG;IACI,QAAQ,IAAI;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACzB;CAgBJ"}
|