@esengine/ecs-framework 2.1.28 → 2.1.30
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/bin/Core.d.ts +279 -0
- package/bin/Core.d.ts.map +1 -0
- package/bin/Core.js +400 -0
- package/bin/Core.js.map +1 -0
- package/bin/ECS/Component.d.ts +120 -0
- package/bin/ECS/Component.d.ts.map +1 -0
- package/bin/ECS/Component.js +129 -0
- package/bin/ECS/Component.js.map +1 -0
- package/bin/ECS/Components/IUpdatable.d.ts +22 -0
- package/bin/ECS/Components/IUpdatable.d.ts.map +1 -0
- package/bin/ECS/Components/IUpdatable.js +17 -0
- package/bin/ECS/Components/IUpdatable.js.map +1 -0
- package/bin/ECS/Components/SceneComponent.d.ts +40 -0
- package/bin/ECS/Components/SceneComponent.d.ts.map +1 -0
- package/bin/ECS/Components/SceneComponent.js +57 -0
- package/bin/ECS/Components/SceneComponent.js.map +1 -0
- package/bin/ECS/Core/ArchetypeSystem.d.ts +100 -0
- package/bin/ECS/Core/ArchetypeSystem.d.ts.map +1 -0
- package/bin/ECS/Core/ArchetypeSystem.js +193 -0
- package/bin/ECS/Core/ArchetypeSystem.js.map +1 -0
- package/bin/ECS/Core/ComponentIndex.d.ts +151 -0
- package/bin/ECS/Core/ComponentIndex.d.ts.map +1 -0
- package/bin/ECS/Core/ComponentIndex.js +405 -0
- package/bin/ECS/Core/ComponentIndex.js.map +1 -0
- package/bin/ECS/Core/ComponentPool.d.ts +88 -0
- package/bin/ECS/Core/ComponentPool.d.ts.map +1 -0
- package/bin/ECS/Core/ComponentPool.js +159 -0
- package/bin/ECS/Core/ComponentPool.js.map +1 -0
- package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +92 -0
- package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +1 -0
- package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +167 -0
- package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +1 -0
- package/bin/ECS/Core/ComponentStorage.d.ts +233 -0
- package/bin/ECS/Core/ComponentStorage.d.ts.map +1 -0
- package/bin/ECS/Core/ComponentStorage.js +463 -0
- package/bin/ECS/Core/ComponentStorage.js.map +1 -0
- package/bin/ECS/Core/DirtyTrackingSystem.d.ts +197 -0
- package/bin/ECS/Core/DirtyTrackingSystem.d.ts.map +1 -0
- package/bin/ECS/Core/DirtyTrackingSystem.js +297 -0
- package/bin/ECS/Core/DirtyTrackingSystem.js.map +1 -0
- package/bin/ECS/Core/EntityManager.d.ts +379 -0
- package/bin/ECS/Core/EntityManager.d.ts.map +1 -0
- package/bin/ECS/Core/EntityManager.js +686 -0
- package/bin/ECS/Core/EntityManager.js.map +1 -0
- package/bin/ECS/Core/EventBus.d.ts +218 -0
- package/bin/ECS/Core/EventBus.d.ts.map +1 -0
- package/bin/ECS/Core/EventBus.js +402 -0
- package/bin/ECS/Core/EventBus.js.map +1 -0
- package/bin/ECS/Core/EventSystem.d.ts +237 -0
- package/bin/ECS/Core/EventSystem.d.ts.map +1 -0
- package/bin/ECS/Core/EventSystem.js +478 -0
- package/bin/ECS/Core/EventSystem.js.map +1 -0
- package/bin/ECS/Core/Events/index.d.ts +3 -0
- package/bin/ECS/Core/Events/index.d.ts.map +1 -0
- package/bin/ECS/Core/Events/index.js +3 -0
- package/bin/ECS/Core/Events/index.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +35 -0
- package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +48 -0
- package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +135 -0
- package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +166 -0
- package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +58 -0
- package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +85 -0
- package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +110 -0
- package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/EntityBuilder.js +174 -0
- package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +53 -0
- package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/SceneBuilder.js +79 -0
- package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/index.d.ts +6 -0
- package/bin/ECS/Core/FluentAPI/index.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/index.js +6 -0
- package/bin/ECS/Core/FluentAPI/index.js.map +1 -0
- package/bin/ECS/Core/FluentAPI.d.ts +2 -0
- package/bin/ECS/Core/FluentAPI.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI.js +3 -0
- package/bin/ECS/Core/FluentAPI.js.map +1 -0
- package/bin/ECS/Core/Performance/index.d.ts +4 -0
- package/bin/ECS/Core/Performance/index.d.ts.map +1 -0
- package/bin/ECS/Core/Performance/index.js +4 -0
- package/bin/ECS/Core/Performance/index.js.map +1 -0
- package/bin/ECS/Core/Query/index.d.ts +4 -0
- package/bin/ECS/Core/Query/index.d.ts.map +1 -0
- package/bin/ECS/Core/Query/index.js +4 -0
- package/bin/ECS/Core/Query/index.js.map +1 -0
- package/bin/ECS/Core/QuerySystem.d.ts +438 -0
- package/bin/ECS/Core/QuerySystem.d.ts.map +1 -0
- package/bin/ECS/Core/QuerySystem.js +974 -0
- package/bin/ECS/Core/QuerySystem.js.map +1 -0
- package/bin/ECS/Core/SoAStorage.d.ts +97 -0
- package/bin/ECS/Core/SoAStorage.d.ts.map +1 -0
- package/bin/ECS/Core/SoAStorage.js +548 -0
- package/bin/ECS/Core/SoAStorage.js.map +1 -0
- package/bin/ECS/Core/Storage/index.d.ts +4 -0
- package/bin/ECS/Core/Storage/index.d.ts.map +1 -0
- package/bin/ECS/Core/Storage/index.js +4 -0
- package/bin/ECS/Core/Storage/index.js.map +1 -0
- package/bin/ECS/CoreEvents.d.ts +131 -0
- package/bin/ECS/CoreEvents.d.ts.map +1 -0
- package/bin/ECS/CoreEvents.js +163 -0
- package/bin/ECS/CoreEvents.js.map +1 -0
- package/bin/ECS/Entity.d.ts +455 -0
- package/bin/ECS/Entity.d.ts.map +1 -0
- package/bin/ECS/Entity.js +837 -0
- package/bin/ECS/Entity.js.map +1 -0
- package/bin/ECS/Scene.d.ts +225 -0
- package/bin/ECS/Scene.d.ts.map +1 -0
- package/bin/ECS/Scene.js +325 -0
- package/bin/ECS/Scene.js.map +1 -0
- package/bin/ECS/Systems/EntitySystem.d.ts +200 -0
- package/bin/ECS/Systems/EntitySystem.d.ts.map +1 -0
- package/bin/ECS/Systems/EntitySystem.js +431 -0
- package/bin/ECS/Systems/EntitySystem.js.map +1 -0
- package/bin/ECS/Systems/IntervalSystem.d.ts +33 -0
- package/bin/ECS/Systems/IntervalSystem.d.ts.map +1 -0
- package/bin/ECS/Systems/IntervalSystem.js +50 -0
- package/bin/ECS/Systems/IntervalSystem.js.map +1 -0
- package/bin/ECS/Systems/PassiveSystem.d.ts +17 -0
- package/bin/ECS/Systems/PassiveSystem.d.ts.map +1 -0
- package/bin/ECS/Systems/PassiveSystem.js +19 -0
- package/bin/ECS/Systems/PassiveSystem.js.map +1 -0
- package/bin/ECS/Systems/ProcessingSystem.d.ts +21 -0
- package/bin/ECS/Systems/ProcessingSystem.d.ts.map +1 -0
- package/bin/ECS/Systems/ProcessingSystem.js +20 -0
- package/bin/ECS/Systems/ProcessingSystem.js.map +1 -0
- package/bin/ECS/Systems/index.d.ts +5 -0
- package/bin/ECS/Systems/index.d.ts.map +1 -0
- package/bin/ECS/Systems/index.js +6 -0
- package/bin/ECS/Systems/index.js.map +1 -0
- package/bin/ECS/Utils/BigIntCompatibility.d.ts +164 -0
- package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +1 -0
- package/bin/ECS/Utils/BigIntCompatibility.js +578 -0
- package/bin/ECS/Utils/BigIntCompatibility.js.map +1 -0
- package/bin/ECS/Utils/Bits.d.ts +163 -0
- package/bin/ECS/Utils/Bits.d.ts.map +1 -0
- package/bin/ECS/Utils/Bits.js +286 -0
- package/bin/ECS/Utils/Bits.js.map +1 -0
- package/bin/ECS/Utils/ComponentTypeManager.d.ts +50 -0
- package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +1 -0
- package/bin/ECS/Utils/ComponentTypeManager.js +84 -0
- package/bin/ECS/Utils/ComponentTypeManager.js.map +1 -0
- package/bin/ECS/Utils/EntityList.d.ts +108 -0
- package/bin/ECS/Utils/EntityList.d.ts.map +1 -0
- package/bin/ECS/Utils/EntityList.js +262 -0
- package/bin/ECS/Utils/EntityList.js.map +1 -0
- package/bin/ECS/Utils/EntityProcessorList.d.ts +56 -0
- package/bin/ECS/Utils/EntityProcessorList.d.ts.map +1 -0
- package/bin/ECS/Utils/EntityProcessorList.js +102 -0
- package/bin/ECS/Utils/EntityProcessorList.js.map +1 -0
- package/bin/ECS/Utils/IdentifierPool.d.ts +203 -0
- package/bin/ECS/Utils/IdentifierPool.d.ts.map +1 -0
- package/bin/ECS/Utils/IdentifierPool.js +325 -0
- package/bin/ECS/Utils/IdentifierPool.js.map +1 -0
- package/bin/ECS/Utils/Matcher.d.ts +143 -0
- package/bin/ECS/Utils/Matcher.d.ts.map +1 -0
- package/bin/ECS/Utils/Matcher.js +249 -0
- package/bin/ECS/Utils/Matcher.js.map +1 -0
- package/bin/ECS/Utils/index.d.ts +8 -0
- package/bin/ECS/Utils/index.d.ts.map +1 -0
- package/bin/ECS/Utils/index.js +9 -0
- package/bin/ECS/Utils/index.js.map +1 -0
- package/bin/ECS/index.d.ts +12 -0
- package/bin/ECS/index.d.ts.map +1 -0
- package/bin/ECS/index.js +12 -0
- package/bin/ECS/index.js.map +1 -0
- package/bin/Types/index.d.ts +471 -0
- package/bin/Types/index.d.ts.map +1 -0
- package/bin/Types/index.js +5 -0
- package/bin/Types/index.js.map +1 -0
- package/bin/Utils/Debug/ComponentDataCollector.d.ts +28 -0
- package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +1 -0
- package/bin/Utils/Debug/ComponentDataCollector.js +248 -0
- package/bin/Utils/Debug/ComponentDataCollector.js.map +1 -0
- package/bin/Utils/Debug/DebugDataFormatter.d.ts +22 -0
- package/bin/Utils/Debug/DebugDataFormatter.d.ts.map +1 -0
- package/bin/Utils/Debug/DebugDataFormatter.js +117 -0
- package/bin/Utils/Debug/DebugDataFormatter.js.map +1 -0
- package/bin/Utils/Debug/DebugManager.d.ts +104 -0
- package/bin/Utils/Debug/DebugManager.d.ts.map +1 -0
- package/bin/Utils/Debug/DebugManager.js +647 -0
- package/bin/Utils/Debug/DebugManager.js.map +1 -0
- package/bin/Utils/Debug/EntityDataCollector.d.ts +92 -0
- package/bin/Utils/Debug/EntityDataCollector.d.ts.map +1 -0
- package/bin/Utils/Debug/EntityDataCollector.js +864 -0
- package/bin/Utils/Debug/EntityDataCollector.js.map +1 -0
- package/bin/Utils/Debug/PerformanceDataCollector.d.ts +32 -0
- package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +1 -0
- package/bin/Utils/Debug/PerformanceDataCollector.js +217 -0
- package/bin/Utils/Debug/PerformanceDataCollector.js.map +1 -0
- package/bin/Utils/Debug/SceneDataCollector.d.ts +16 -0
- package/bin/Utils/Debug/SceneDataCollector.d.ts.map +1 -0
- package/bin/Utils/Debug/SceneDataCollector.js +46 -0
- package/bin/Utils/Debug/SceneDataCollector.js.map +1 -0
- package/bin/Utils/Debug/SystemDataCollector.d.ts +11 -0
- package/bin/Utils/Debug/SystemDataCollector.d.ts.map +1 -0
- package/bin/Utils/Debug/SystemDataCollector.js +59 -0
- package/bin/Utils/Debug/SystemDataCollector.js.map +1 -0
- package/bin/Utils/Debug/WebSocketManager.d.ts +59 -0
- package/bin/Utils/Debug/WebSocketManager.d.ts.map +1 -0
- package/bin/Utils/Debug/WebSocketManager.js +148 -0
- package/bin/Utils/Debug/WebSocketManager.js.map +1 -0
- package/bin/Utils/Debug/index.d.ts +8 -0
- package/bin/Utils/Debug/index.d.ts.map +1 -0
- package/bin/Utils/Debug/index.js +8 -0
- package/bin/Utils/Debug/index.js.map +1 -0
- package/bin/Utils/Emitter.d.ts +43 -0
- package/bin/Utils/Emitter.d.ts.map +1 -0
- package/bin/Utils/Emitter.js +69 -0
- package/bin/Utils/Emitter.js.map +1 -0
- package/bin/Utils/Extensions/NumberExtension.d.ts +13 -0
- package/bin/Utils/Extensions/NumberExtension.d.ts.map +1 -0
- package/bin/Utils/Extensions/NumberExtension.js +17 -0
- package/bin/Utils/Extensions/NumberExtension.js.map +1 -0
- package/bin/Utils/Extensions/TypeUtils.d.ts +13 -0
- package/bin/Utils/Extensions/TypeUtils.d.ts.map +1 -0
- package/bin/Utils/Extensions/TypeUtils.js +15 -0
- package/bin/Utils/Extensions/TypeUtils.js.map +1 -0
- package/bin/Utils/Extensions/index.d.ts +3 -0
- package/bin/Utils/Extensions/index.d.ts.map +1 -0
- package/bin/Utils/Extensions/index.js +4 -0
- package/bin/Utils/Extensions/index.js.map +1 -0
- package/bin/Utils/GlobalManager.d.ts +32 -0
- package/bin/Utils/GlobalManager.d.ts.map +1 -0
- package/bin/Utils/GlobalManager.js +53 -0
- package/bin/Utils/GlobalManager.js.map +1 -0
- package/bin/Utils/Logger.d.ts +156 -0
- package/bin/Utils/Logger.d.ts.map +1 -0
- package/bin/Utils/Logger.js +256 -0
- package/bin/Utils/Logger.js.map +1 -0
- package/bin/Utils/PerformanceMonitor.d.ts +211 -0
- package/bin/Utils/PerformanceMonitor.d.ts.map +1 -0
- package/bin/Utils/PerformanceMonitor.js +270 -0
- package/bin/Utils/PerformanceMonitor.js.map +1 -0
- package/bin/Utils/Pool/IPoolable.d.ts +29 -0
- package/bin/Utils/Pool/IPoolable.d.ts.map +1 -0
- package/bin/Utils/Pool/IPoolable.js +2 -0
- package/bin/Utils/Pool/IPoolable.js.map +1 -0
- package/bin/Utils/Pool/Pool.d.ts +109 -0
- package/bin/Utils/Pool/Pool.d.ts.map +1 -0
- package/bin/Utils/Pool/Pool.js +238 -0
- package/bin/Utils/Pool/Pool.js.map +1 -0
- package/bin/Utils/Pool/PoolManager.d.ts +91 -0
- package/bin/Utils/Pool/PoolManager.d.ts.map +1 -0
- package/bin/Utils/Pool/PoolManager.js +197 -0
- package/bin/Utils/Pool/PoolManager.js.map +1 -0
- package/bin/Utils/Pool/index.d.ts +4 -0
- package/bin/Utils/Pool/index.d.ts.map +1 -0
- package/bin/Utils/Pool/index.js +4 -0
- package/bin/Utils/Pool/index.js.map +1 -0
- package/bin/Utils/Time.d.ts +47 -0
- package/bin/Utils/Time.d.ts.map +1 -0
- package/bin/Utils/Time.js +64 -0
- package/bin/Utils/Time.js.map +1 -0
- package/bin/Utils/Timers/ITimer.d.ts +16 -0
- package/bin/Utils/Timers/ITimer.d.ts.map +1 -0
- package/bin/Utils/Timers/ITimer.js +2 -0
- package/bin/Utils/Timers/ITimer.js.map +1 -0
- package/bin/Utils/Timers/Timer.d.ts +30 -0
- package/bin/Utils/Timers/Timer.d.ts.map +1 -0
- package/bin/Utils/Timers/Timer.js +58 -0
- package/bin/Utils/Timers/Timer.js.map +1 -0
- package/bin/Utils/Timers/TimerManager.d.ts +19 -0
- package/bin/Utils/Timers/TimerManager.d.ts.map +1 -0
- package/bin/Utils/Timers/TimerManager.js +33 -0
- package/bin/Utils/Timers/TimerManager.js.map +1 -0
- package/bin/Utils/index.d.ts +9 -0
- package/bin/Utils/index.d.ts.map +1 -0
- package/bin/Utils/index.js +9 -0
- package/bin/Utils/index.js.map +1 -0
- package/bin/index.d.ts +16 -0
- package/bin/index.d.ts.map +1 -0
- package/bin/index.js +19 -0
- package/bin/index.js.map +1 -0
- package/package.json +52 -25
- package/.npmignore +0 -40
- package/LICENSE +0 -201
- package/README.md +0 -438
- package/SECURITY.md +0 -53
- package/index.cjs +0 -2
- package/index.cjs.map +0 -1
- package/index.d.ts +0 -6383
- package/index.mjs +0 -2
- package/index.mjs.map +0 -1
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
import { Entity } from '../Entity';
|
|
2
|
+
import { Component } from '../Component';
|
|
3
|
+
import { ComponentType } from './ComponentStorage';
|
|
4
|
+
import { IBigIntLike } from '../Utils/BigIntCompatibility';
|
|
5
|
+
import { IndexType } from './ComponentIndex';
|
|
6
|
+
import { Archetype } from './ArchetypeSystem';
|
|
7
|
+
/**
|
|
8
|
+
* 查询条件类型
|
|
9
|
+
*/
|
|
10
|
+
export declare enum QueryConditionType {
|
|
11
|
+
/** 必须包含所有指定组件 */
|
|
12
|
+
ALL = "all",
|
|
13
|
+
/** 必须包含任意一个指定组件 */
|
|
14
|
+
ANY = "any",
|
|
15
|
+
/** 不能包含任何指定组件 */
|
|
16
|
+
NONE = "none"
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 查询条件接口
|
|
20
|
+
*/
|
|
21
|
+
export interface QueryCondition {
|
|
22
|
+
type: QueryConditionType;
|
|
23
|
+
componentTypes: ComponentType[];
|
|
24
|
+
mask: IBigIntLike;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 实体查询结果接口
|
|
28
|
+
*/
|
|
29
|
+
export interface QueryResult {
|
|
30
|
+
entities: Entity[];
|
|
31
|
+
count: number;
|
|
32
|
+
/** 查询执行时间(毫秒) */
|
|
33
|
+
executionTime: number;
|
|
34
|
+
/** 是否来自缓存 */
|
|
35
|
+
fromCache: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 高性能实体查询系统
|
|
39
|
+
*
|
|
40
|
+
* 提供快速的实体查询功能,支持按组件类型、标签、名称等多种方式查询实体。
|
|
41
|
+
* 系统采用多级索引和智能缓存机制,确保在大量实体场景下的查询性能。
|
|
42
|
+
*
|
|
43
|
+
* 主要特性:
|
|
44
|
+
* - 支持单组件和多组件查询
|
|
45
|
+
* - 自动索引管理和缓存优化
|
|
46
|
+
* - WebAssembly计算加速(如果可用)
|
|
47
|
+
* - 详细的性能统计信息
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* // 查询所有包含Position和Velocity组件的实体
|
|
52
|
+
* const movingEntities = querySystem.queryAll(PositionComponent, VelocityComponent);
|
|
53
|
+
*
|
|
54
|
+
* // 查询特定标签的实体
|
|
55
|
+
* const playerEntities = querySystem.queryByTag(PLAYER_TAG);
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare class QuerySystem {
|
|
59
|
+
private _logger;
|
|
60
|
+
private entities;
|
|
61
|
+
private entityIndex;
|
|
62
|
+
private indexDirty;
|
|
63
|
+
private _version;
|
|
64
|
+
private queryCache;
|
|
65
|
+
private cacheMaxSize;
|
|
66
|
+
private cacheTimeout;
|
|
67
|
+
private componentPoolManager;
|
|
68
|
+
private componentIndexManager;
|
|
69
|
+
private archetypeSystem;
|
|
70
|
+
private dirtyTrackingSystem;
|
|
71
|
+
private queryStats;
|
|
72
|
+
constructor();
|
|
73
|
+
/**
|
|
74
|
+
* 设置实体列表并重建索引
|
|
75
|
+
*
|
|
76
|
+
* 当实体集合发生大规模变化时调用此方法。
|
|
77
|
+
* 系统将重新构建所有索引以确保查询性能。
|
|
78
|
+
*
|
|
79
|
+
* @param entities 新的实体列表
|
|
80
|
+
*/
|
|
81
|
+
setEntities(entities: Entity[]): void;
|
|
82
|
+
/**
|
|
83
|
+
* 添加单个实体到查询系统
|
|
84
|
+
*
|
|
85
|
+
* 将新实体添加到查询系统中,并自动更新相关索引。
|
|
86
|
+
* 为了提高批量添加性能,可以延迟缓存清理。
|
|
87
|
+
*
|
|
88
|
+
* @param entity 要添加的实体
|
|
89
|
+
* @param deferCacheClear 是否延迟缓存清理(用于批量操作)
|
|
90
|
+
*/
|
|
91
|
+
addEntity(entity: Entity, deferCacheClear?: boolean): void;
|
|
92
|
+
/**
|
|
93
|
+
* 批量添加实体
|
|
94
|
+
*
|
|
95
|
+
* 高效地批量添加多个实体,减少缓存清理次数。
|
|
96
|
+
* 使用Set来避免O(n)的重复检查。
|
|
97
|
+
*
|
|
98
|
+
* @param entities 要添加的实体列表
|
|
99
|
+
*/
|
|
100
|
+
addEntities(entities: Entity[]): void;
|
|
101
|
+
/**
|
|
102
|
+
* 批量添加实体(无重复检查版本)
|
|
103
|
+
*
|
|
104
|
+
* 假设所有实体都是新的,跳过重复检查以获得最大性能。
|
|
105
|
+
* 仅在确保没有重复实体时使用。
|
|
106
|
+
*
|
|
107
|
+
* @param entities 要添加的实体列表
|
|
108
|
+
*/
|
|
109
|
+
addEntitiesUnchecked(entities: Entity[]): void;
|
|
110
|
+
/**
|
|
111
|
+
* 从查询系统移除实体
|
|
112
|
+
*
|
|
113
|
+
* 从查询系统中移除指定实体,并清理相关索引。
|
|
114
|
+
*
|
|
115
|
+
* @param entity 要移除的实体
|
|
116
|
+
*/
|
|
117
|
+
removeEntity(entity: Entity): void;
|
|
118
|
+
/**
|
|
119
|
+
* 将实体添加到各种索引中(优化版本)
|
|
120
|
+
*/
|
|
121
|
+
private addEntityToIndexes;
|
|
122
|
+
/**
|
|
123
|
+
* 从各种索引中移除实体
|
|
124
|
+
*/
|
|
125
|
+
private removeEntityFromIndexes;
|
|
126
|
+
/**
|
|
127
|
+
* 重建所有索引
|
|
128
|
+
*
|
|
129
|
+
* 清空并重新构建所有查询索引。
|
|
130
|
+
* 通常在大量实体变更后调用以确保索引一致性。
|
|
131
|
+
*/
|
|
132
|
+
private rebuildIndexes;
|
|
133
|
+
/**
|
|
134
|
+
* 查询包含所有指定组件的实体
|
|
135
|
+
*
|
|
136
|
+
* 返回同时包含所有指定组件类型的实体列表。
|
|
137
|
+
* 系统会自动选择最高效的查询策略,包括索引查找和缓存机制。
|
|
138
|
+
*
|
|
139
|
+
* @param componentTypes 要查询的组件类型列表
|
|
140
|
+
* @returns 查询结果,包含匹配的实体和性能信息
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```typescript
|
|
144
|
+
* // 查询同时具有位置和速度组件的实体
|
|
145
|
+
* const result = querySystem.queryAll(PositionComponent, VelocityComponent);
|
|
146
|
+
* logger.info(`找到 ${result.count} 个移动实体`);
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
queryAll(...componentTypes: ComponentType[]): QueryResult;
|
|
150
|
+
/**
|
|
151
|
+
* 多组件查询算法
|
|
152
|
+
*
|
|
153
|
+
* 针对多组件查询场景的高效算法实现。
|
|
154
|
+
* 通过选择最小的组件集合作为起点,减少需要检查的实体数量。
|
|
155
|
+
*
|
|
156
|
+
* @param componentTypes 组件类型列表
|
|
157
|
+
* @returns 匹配的实体列表
|
|
158
|
+
*/
|
|
159
|
+
private queryMultipleComponents;
|
|
160
|
+
/**
|
|
161
|
+
* 查询包含任意指定组件的实体
|
|
162
|
+
*
|
|
163
|
+
* 返回包含任意一个指定组件类型的实体列表。
|
|
164
|
+
* 使用集合合并算法确保高效的查询性能。
|
|
165
|
+
*
|
|
166
|
+
* @param componentTypes 要查询的组件类型列表
|
|
167
|
+
* @returns 查询结果,包含匹配的实体和性能信息
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* // 查询具有武器或护甲组件的实体
|
|
172
|
+
* const result = querySystem.queryAny(WeaponComponent, ArmorComponent);
|
|
173
|
+
* logger.info(`找到 ${result.count} 个装备实体`);
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
queryAny(...componentTypes: ComponentType[]): QueryResult;
|
|
177
|
+
/**
|
|
178
|
+
* 查询不包含任何指定组件的实体
|
|
179
|
+
*
|
|
180
|
+
* 返回不包含任何指定组件类型的实体列表。
|
|
181
|
+
* 适用于排除特定类型实体的查询场景。
|
|
182
|
+
*
|
|
183
|
+
* @param componentTypes 要排除的组件类型列表
|
|
184
|
+
* @returns 查询结果,包含匹配的实体和性能信息
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```typescript
|
|
188
|
+
* // 查询不具有AI和玩家控制组件的实体(如静态物体)
|
|
189
|
+
* const result = querySystem.queryNone(AIComponent, PlayerControlComponent);
|
|
190
|
+
* logger.info(`找到 ${result.count} 个静态实体`);
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
queryNone(...componentTypes: ComponentType[]): QueryResult;
|
|
194
|
+
/**
|
|
195
|
+
* 按标签查询实体
|
|
196
|
+
*
|
|
197
|
+
* 返回具有指定标签的所有实体。
|
|
198
|
+
* 标签查询使用专用索引,具有很高的查询性能。
|
|
199
|
+
*
|
|
200
|
+
* @param tag 要查询的标签值
|
|
201
|
+
* @returns 查询结果,包含匹配的实体和性能信息
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* // 查询所有玩家实体
|
|
206
|
+
* const players = querySystem.queryByTag(PLAYER_TAG);
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
queryByTag(tag: number): QueryResult;
|
|
210
|
+
/**
|
|
211
|
+
* 按名称查询实体
|
|
212
|
+
*
|
|
213
|
+
* 返回具有指定名称的所有实体。
|
|
214
|
+
* 名称查询使用专用索引,适用于查找特定的命名实体。
|
|
215
|
+
*
|
|
216
|
+
* @param name 要查询的实体名称
|
|
217
|
+
* @returns 查询结果,包含匹配的实体和性能信息
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```typescript
|
|
221
|
+
* // 查找名为"Player"的实体
|
|
222
|
+
* const player = querySystem.queryByName("Player");
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
queryByName(name: string): QueryResult;
|
|
226
|
+
/**
|
|
227
|
+
* 按单个组件类型查询实体
|
|
228
|
+
*
|
|
229
|
+
* 返回包含指定组件类型的所有实体。
|
|
230
|
+
* 这是最基础的查询方法,具有最高的查询性能。
|
|
231
|
+
*
|
|
232
|
+
* @param componentType 要查询的组件类型
|
|
233
|
+
* @returns 查询结果,包含匹配的实体和性能信息
|
|
234
|
+
*
|
|
235
|
+
* @example
|
|
236
|
+
* ```typescript
|
|
237
|
+
* // 查询所有具有位置组件的实体
|
|
238
|
+
* const entitiesWithPosition = querySystem.queryByComponent(PositionComponent);
|
|
239
|
+
* ```
|
|
240
|
+
*/
|
|
241
|
+
queryByComponent<T extends Component>(componentType: ComponentType<T>): QueryResult;
|
|
242
|
+
/**
|
|
243
|
+
* 从缓存获取查询结果
|
|
244
|
+
*/
|
|
245
|
+
private getFromCache;
|
|
246
|
+
/**
|
|
247
|
+
* 添加查询结果到缓存
|
|
248
|
+
*/
|
|
249
|
+
private addToCache;
|
|
250
|
+
/**
|
|
251
|
+
* 清理缓存
|
|
252
|
+
*/
|
|
253
|
+
private cleanupCache;
|
|
254
|
+
/**
|
|
255
|
+
* 清除所有查询缓存
|
|
256
|
+
*/
|
|
257
|
+
private clearQueryCache;
|
|
258
|
+
/**
|
|
259
|
+
* 公共方法:清理查询缓存
|
|
260
|
+
*
|
|
261
|
+
* 用于外部调用清理缓存,通常在批量操作后使用。
|
|
262
|
+
*/
|
|
263
|
+
clearCache(): void;
|
|
264
|
+
/**
|
|
265
|
+
* 批量更新实体组件
|
|
266
|
+
*
|
|
267
|
+
* 对大量实体进行批量组件更新操作。
|
|
268
|
+
*
|
|
269
|
+
* @param updates 更新操作列表,包含实体ID和新的组件掩码
|
|
270
|
+
*
|
|
271
|
+
* @example
|
|
272
|
+
* ```typescript
|
|
273
|
+
* // 批量更新实体的组件配置
|
|
274
|
+
* const updates = [
|
|
275
|
+
* { entityId: 1, componentMask: BigInt(0b1011) },
|
|
276
|
+
* { entityId: 2, componentMask: BigInt(0b1101) }
|
|
277
|
+
* ];
|
|
278
|
+
* querySystem.batchUpdateComponents(updates);
|
|
279
|
+
* ```
|
|
280
|
+
*/
|
|
281
|
+
batchUpdateComponents(updates: Array<{
|
|
282
|
+
entityId: number;
|
|
283
|
+
componentMask: bigint;
|
|
284
|
+
}>): void;
|
|
285
|
+
/**
|
|
286
|
+
* 创建组件掩码
|
|
287
|
+
*
|
|
288
|
+
* 根据组件类型列表生成对应的位掩码。
|
|
289
|
+
* 使用位掩码优化器进行缓存和预计算。
|
|
290
|
+
*
|
|
291
|
+
* @param componentTypes 组件类型列表
|
|
292
|
+
* @returns 生成的位掩码
|
|
293
|
+
*/
|
|
294
|
+
private createComponentMask;
|
|
295
|
+
/**
|
|
296
|
+
* 获取当前版本号(用于缓存失效)
|
|
297
|
+
*/
|
|
298
|
+
get version(): number;
|
|
299
|
+
/**
|
|
300
|
+
* 获取所有实体
|
|
301
|
+
*/
|
|
302
|
+
getAllEntities(): Entity[];
|
|
303
|
+
/**
|
|
304
|
+
* 获取系统统计信息
|
|
305
|
+
*
|
|
306
|
+
* 返回查询系统的详细统计信息,包括实体数量、索引状态、
|
|
307
|
+
* 查询性能统计等,用于性能监控和调试。
|
|
308
|
+
*
|
|
309
|
+
* @returns 系统统计信息对象
|
|
310
|
+
*/
|
|
311
|
+
getStats(): {
|
|
312
|
+
entityCount: number;
|
|
313
|
+
indexStats: {
|
|
314
|
+
maskIndexSize: number;
|
|
315
|
+
componentIndexSize: number;
|
|
316
|
+
tagIndexSize: number;
|
|
317
|
+
nameIndexSize: number;
|
|
318
|
+
};
|
|
319
|
+
queryStats: {
|
|
320
|
+
totalQueries: number;
|
|
321
|
+
cacheHits: number;
|
|
322
|
+
indexHits: number;
|
|
323
|
+
linearScans: number;
|
|
324
|
+
archetypeHits: number;
|
|
325
|
+
dirtyChecks: number;
|
|
326
|
+
cacheHitRate: string;
|
|
327
|
+
};
|
|
328
|
+
optimizationStats: {
|
|
329
|
+
componentIndex: any;
|
|
330
|
+
archetypeSystem: any;
|
|
331
|
+
dirtyTracking: any;
|
|
332
|
+
};
|
|
333
|
+
cacheStats: {
|
|
334
|
+
size: number;
|
|
335
|
+
hitRate: string;
|
|
336
|
+
};
|
|
337
|
+
};
|
|
338
|
+
/**
|
|
339
|
+
* 切换组件索引类型
|
|
340
|
+
*
|
|
341
|
+
* @param indexType 新的索引类型
|
|
342
|
+
*/
|
|
343
|
+
switchComponentIndexType(indexType: IndexType): void;
|
|
344
|
+
/**
|
|
345
|
+
* 配置脏标记系统
|
|
346
|
+
*
|
|
347
|
+
* @param batchSize 批处理大小
|
|
348
|
+
* @param maxProcessingTime 最大处理时间
|
|
349
|
+
*/
|
|
350
|
+
configureDirtyTracking(batchSize: number, maxProcessingTime: number): void;
|
|
351
|
+
/**
|
|
352
|
+
* 手动触发性能优化
|
|
353
|
+
*/
|
|
354
|
+
optimizePerformance(): void;
|
|
355
|
+
/**
|
|
356
|
+
* 开始新的帧
|
|
357
|
+
*/
|
|
358
|
+
beginFrame(): void;
|
|
359
|
+
/**
|
|
360
|
+
* 结束当前帧
|
|
361
|
+
*/
|
|
362
|
+
endFrame(): void;
|
|
363
|
+
/**
|
|
364
|
+
* 标记实体组件已修改(用于脏标记追踪)
|
|
365
|
+
*
|
|
366
|
+
* @param entity 修改的实体
|
|
367
|
+
* @param componentTypes 修改的组件类型
|
|
368
|
+
*/
|
|
369
|
+
markEntityDirty(entity: Entity, componentTypes: ComponentType[]): void;
|
|
370
|
+
/**
|
|
371
|
+
* 获取实体所属的原型信息
|
|
372
|
+
*
|
|
373
|
+
* @param entity 要查询的实体
|
|
374
|
+
*/
|
|
375
|
+
getEntityArchetype(entity: Entity): Archetype | undefined;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* 查询构建器
|
|
379
|
+
*
|
|
380
|
+
* 提供链式API来构建复杂的实体查询条件。
|
|
381
|
+
* 支持组合多种查询条件,创建灵活的查询表达式。
|
|
382
|
+
*
|
|
383
|
+
* @example
|
|
384
|
+
* ```typescript
|
|
385
|
+
* const result = new QueryBuilder(querySystem)
|
|
386
|
+
* .withAll(PositionComponent, VelocityComponent)
|
|
387
|
+
* .without(DeadComponent)
|
|
388
|
+
* .execute();
|
|
389
|
+
* ```
|
|
390
|
+
*/
|
|
391
|
+
export declare class QueryBuilder {
|
|
392
|
+
private _logger;
|
|
393
|
+
private conditions;
|
|
394
|
+
private querySystem;
|
|
395
|
+
constructor(querySystem: QuerySystem);
|
|
396
|
+
/**
|
|
397
|
+
* 添加"必须包含所有组件"条件
|
|
398
|
+
*
|
|
399
|
+
* @param componentTypes 必须包含的组件类型
|
|
400
|
+
* @returns 查询构建器实例,支持链式调用
|
|
401
|
+
*/
|
|
402
|
+
withAll(...componentTypes: ComponentType[]): QueryBuilder;
|
|
403
|
+
/**
|
|
404
|
+
* 添加"必须包含任意组件"条件
|
|
405
|
+
*
|
|
406
|
+
* @param componentTypes 必须包含其中任意一个的组件类型
|
|
407
|
+
* @returns 查询构建器实例,支持链式调用
|
|
408
|
+
*/
|
|
409
|
+
withAny(...componentTypes: ComponentType[]): QueryBuilder;
|
|
410
|
+
/**
|
|
411
|
+
* 添加"不能包含任何组件"条件
|
|
412
|
+
*
|
|
413
|
+
* @param componentTypes 不能包含的组件类型
|
|
414
|
+
* @returns 查询构建器实例,支持链式调用
|
|
415
|
+
*/
|
|
416
|
+
without(...componentTypes: ComponentType[]): QueryBuilder;
|
|
417
|
+
/**
|
|
418
|
+
* 执行查询并返回结果
|
|
419
|
+
*
|
|
420
|
+
* 根据已添加的查询条件执行实体查询。
|
|
421
|
+
*
|
|
422
|
+
* @returns 查询结果,包含匹配的实体和性能信息
|
|
423
|
+
*/
|
|
424
|
+
execute(): QueryResult;
|
|
425
|
+
/**
|
|
426
|
+
* 创建组件掩码
|
|
427
|
+
*/
|
|
428
|
+
private createComponentMask;
|
|
429
|
+
/**
|
|
430
|
+
* 重置查询构建器
|
|
431
|
+
*
|
|
432
|
+
* 清除所有已添加的查询条件,重新开始构建查询。
|
|
433
|
+
*
|
|
434
|
+
* @returns 查询构建器实例,支持链式调用
|
|
435
|
+
*/
|
|
436
|
+
reset(): QueryBuilder;
|
|
437
|
+
}
|
|
438
|
+
//# sourceMappingURL=QuerySystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuerySystem.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/QuerySystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAqB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAiB,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EAAyB,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAmB,SAAS,EAAwB,MAAM,mBAAmB,CAAC;AAGrF;;GAEG;AACH,oBAAY,kBAAkB;IAC1B,iBAAiB;IACjB,GAAG,QAAQ;IACX,mBAAmB;IACnB,GAAG,QAAQ;IACX,iBAAiB;IACjB,IAAI,SAAS;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,kBAAkB,CAAC;IACzB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,IAAI,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,SAAS,EAAE,OAAO,CAAC;CACtB;AAqBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAQ;IAG1B,OAAO,CAAC,QAAQ,CAAK;IAGrB,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,YAAY,CAAQ;IAG5B,OAAO,CAAC,oBAAoB,CAAuB;IAGnD,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,mBAAmB,CAAsB;IAGjD,OAAO,CAAC,UAAU,CAOhB;;IAoBF;;;;;;;OAOG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAM5C;;;;;;;;OAQG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,IAAI;IAmBxE;;;;;;;OAOG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAsB5C;;;;;;;OAOG;IACI,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAiBrD;;;;;;OAMG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAiBzC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+C1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgD/B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAmBtB;;;;;;;;;;;;;;;OAeG;IACI,QAAQ,CAAC,GAAG,cAAc,EAAE,aAAa,EAAE,GAAG,WAAW;IAoDhE;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;;;;;;;;;;;;;;OAeG;IACI,QAAQ,CAAC,GAAG,cAAc,EAAE,aAAa,EAAE,GAAG,WAAW;IA0ChE;;;;;;;;;;;;;;;OAeG;IACI,SAAS,CAAC,GAAG,cAAc,EAAE,aAAa,EAAE,GAAG,WAAW;IAiCjE;;;;;;;;;;;;;;OAcG;IACI,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAiC3C;;;;;;;;;;;;;;OAcG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAiC7C;;;;;;;;;;;;;;OAcG;IACI,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW;IAiC1F;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;OAIG;IACI,UAAU,IAAI,IAAI;IAIzB;;;;;;;;;;;;;;;;OAgBG;IACI,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IA6B/F;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;OAEG;IACH,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED;;OAEG;IACI,cAAc,IAAI,MAAM,EAAE;IAIjC;;;;;;;OAOG;IACI,QAAQ,IAAI;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE;YACR,aAAa,EAAE,MAAM,CAAC;YACtB,kBAAkB,EAAE,MAAM,CAAC;YAC3B,YAAY,EAAE,MAAM,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;SACzB,CAAC;QACF,UAAU,EAAE;YACR,YAAY,EAAE,MAAM,CAAC;YACrB,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,WAAW,EAAE,MAAM,CAAC;YACpB,aAAa,EAAE,MAAM,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC;SACxB,CAAC;QACF,iBAAiB,EAAE;YACf,cAAc,EAAE,GAAG,CAAC;YACpB,eAAe,EAAE,GAAG,CAAC;YACrB,aAAa,EAAE,GAAG,CAAC;SACtB,CAAC;QACF,UAAU,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACnB,CAAC;KACL;IA+BD;;;;OAIG;IACI,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAI3D;;;;;OAKG;IACI,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI;IAIjF;;OAEG;IACI,mBAAmB,IAAI,IAAI;IAYlC;;OAEG;IACI,UAAU,IAAI,IAAI;IAIzB;;OAEG;IACI,QAAQ,IAAI,IAAI;IAIvB;;;;;OAKG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI;IAM7E;;;;OAIG;IACI,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;CAGnE;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,WAAW,CAAc;gBAErB,WAAW,EAAE,WAAW;IAIpC;;;;;OAKG;IACI,OAAO,CAAC,GAAG,cAAc,EAAE,aAAa,EAAE,GAAG,YAAY;IAShE;;;;;OAKG;IACI,OAAO,CAAC,GAAG,cAAc,EAAE,aAAa,EAAE,GAAG,YAAY;IAShE;;;;;OAKG;IACI,OAAO,CAAC,GAAG,cAAc,EAAE,aAAa,EAAE,GAAG,YAAY;IAShE;;;;;;OAMG;IACI,OAAO,IAAI,WAAW;IAyB7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;;;;OAMG;IACI,KAAK,IAAI,YAAY;CAI/B"}
|