@nice2dev/game-engine 1.3.12 → 1.3.14

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 (253) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +2 -2
  3. package/dist/types/accessibility/index.d.ts +0 -1
  4. package/dist/types/ai/index.d.ts +0 -1
  5. package/dist/types/animation/index.d.ts +0 -1
  6. package/dist/types/audio/HRTFAudio.d.ts +0 -180
  7. package/dist/types/audio/index.d.ts +0 -2
  8. package/dist/types/community/Community.d.ts +0 -112
  9. package/dist/types/community/index.d.ts +0 -1
  10. package/dist/types/core/TypeSafety.d.ts +0 -190
  11. package/dist/types/core/index.d.ts +0 -7
  12. package/dist/types/devtools/AssetStore.d.ts +0 -133
  13. package/dist/types/devtools/index.d.ts +0 -3
  14. package/dist/types/dialogue/index.d.ts +0 -2
  15. package/dist/types/docs/APIPlayground.d.ts +0 -26
  16. package/dist/types/docs/Cookbook.d.ts +0 -18
  17. package/dist/types/docs/Guides.d.ts +0 -18
  18. package/dist/types/docs/index.d.ts +0 -4
  19. package/dist/types/ecs/ECSOptimized.d.ts +0 -131
  20. package/dist/types/ecs/index.d.ts +0 -2
  21. package/dist/types/editor/NiceAnimationTimeline.d.ts +0 -114
  22. package/dist/types/editor/NiceLevelEditor.d.ts +0 -232
  23. package/dist/types/editor/NiceMaterialEditor.d.ts +0 -105
  24. package/dist/types/editor/NiceNodeGraph.d.ts +0 -87
  25. package/dist/types/editor/NiceParticleEditor.d.ts +0 -127
  26. package/dist/types/editor/behavior-tree/BTDebugPanel.d.ts +0 -102
  27. package/dist/types/editor/behavior-tree/BTEditorCanvas.d.ts +0 -79
  28. package/dist/types/editor/behavior-tree/BTEditorNode.d.ts +0 -58
  29. package/dist/types/editor/behavior-tree/BTEditorToolbar.d.ts +0 -75
  30. package/dist/types/editor/behavior-tree/BTNodePalette.d.ts +0 -72
  31. package/dist/types/editor/behavior-tree/BTPropertyPanel.d.ts +0 -66
  32. package/dist/types/editor/behavior-tree/BehaviorTreeEditor.d.ts +0 -186
  33. package/dist/types/editor/behavior-tree/index.d.ts +0 -14
  34. package/dist/types/editor/behavior-tree/serialization.d.ts +0 -30
  35. package/dist/types/editor/behavior-tree/types.d.ts +0 -299
  36. package/dist/types/editor/index.d.ts +0 -20
  37. package/dist/types/editor/state-machine/SMEditorCanvas.d.ts +0 -61
  38. package/dist/types/editor/state-machine/StateMachineEditor.d.ts +0 -139
  39. package/dist/types/editor/state-machine/index.d.ts +0 -11
  40. package/dist/types/editor/state-machine/serialization.d.ts +0 -23
  41. package/dist/types/editor/state-machine/types.d.ts +0 -241
  42. package/dist/types/engine/index.d.ts +0 -2
  43. package/dist/types/enterprise/index.d.ts +0 -1
  44. package/dist/types/epic/index.d.ts +0 -10
  45. package/dist/types/i18n/index.d.ts +0 -2
  46. package/dist/types/input/index.d.ts +0 -3
  47. package/dist/types/kids/index.d.ts +0 -2
  48. package/dist/types/legendary/index.d.ts +0 -57
  49. package/dist/types/monetization/index.d.ts +0 -1
  50. package/dist/types/multiplayer/NiceNetcode.d.ts +0 -434
  51. package/dist/types/multiplayer/index.d.ts +0 -5
  52. package/dist/types/network/index.d.ts +0 -2
  53. package/dist/types/pathfinding/index.d.ts +0 -1
  54. package/dist/types/performance/AssetCompression.d.ts +0 -137
  55. package/dist/types/performance/WASMModules.d.ts +0 -65
  56. package/dist/types/performance/WebGPUCompute.d.ts +0 -71
  57. package/dist/types/performance/index.d.ts +0 -1
  58. package/dist/types/physics/RapierIntegration.d.ts +0 -404
  59. package/dist/types/physics/index.d.ts +0 -2
  60. package/dist/types/plugins/index.d.ts +0 -2
  61. package/dist/types/procedural/index.d.ts +0 -2
  62. package/dist/types/release/index.d.ts +0 -1
  63. package/dist/types/rendering/WebGPUv2.d.ts +0 -173
  64. package/dist/types/rendering/index.d.ts +0 -3
  65. package/dist/types/runtime3d/index.d.ts +0 -2
  66. package/dist/types/scene/index.d.ts +0 -2
  67. package/dist/types/scripting/WasmCompiler.d.ts +0 -182
  68. package/dist/types/scripting/index.d.ts +0 -19
  69. package/dist/types/social/index.d.ts +0 -1
  70. package/dist/types/systems/NiceAI.d.ts +0 -637
  71. package/dist/types/systems/NiceAbility.d.ts +0 -225
  72. package/dist/types/systems/NiceAccessibility.d.ts +0 -230
  73. package/dist/types/systems/NiceAchievement.d.ts +0 -153
  74. package/dist/types/systems/NiceAchievementUI.d.ts +0 -196
  75. package/dist/types/systems/NiceAchievements.d.ts +0 -230
  76. package/dist/types/systems/NiceAction.d.ts +0 -81
  77. package/dist/types/systems/NiceAlchemy.d.ts +0 -195
  78. package/dist/types/systems/NiceAnalytics.d.ts +0 -493
  79. package/dist/types/systems/NiceAnimation.d.ts +0 -350
  80. package/dist/types/systems/NiceArena.d.ts +0 -215
  81. package/dist/types/systems/NiceAssetLoader.d.ts +0 -136
  82. package/dist/types/systems/NiceAuction.d.ts +0 -157
  83. package/dist/types/systems/NiceAudio.d.ts +0 -224
  84. package/dist/types/systems/NiceAugment.d.ts +0 -187
  85. package/dist/types/systems/NiceAura.d.ts +0 -193
  86. package/dist/types/systems/NiceBank.d.ts +0 -158
  87. package/dist/types/systems/NiceBattlePass.d.ts +0 -150
  88. package/dist/types/systems/NiceBehavior.d.ts +0 -160
  89. package/dist/types/systems/NiceBinding.d.ts +0 -96
  90. package/dist/types/systems/NiceBlacksmith.d.ts +0 -221
  91. package/dist/types/systems/NiceBuff.d.ts +0 -177
  92. package/dist/types/systems/NiceBuilding.d.ts +0 -207
  93. package/dist/types/systems/NiceBullet.d.ts +0 -167
  94. package/dist/types/systems/NiceCamera.d.ts +0 -252
  95. package/dist/types/systems/NiceCard.d.ts +0 -171
  96. package/dist/types/systems/NiceChat.d.ts +0 -148
  97. package/dist/types/systems/NiceCheat.d.ts +0 -375
  98. package/dist/types/systems/NiceClimbing.d.ts +0 -186
  99. package/dist/types/systems/NiceCloud.d.ts +0 -422
  100. package/dist/types/systems/NiceCollision.d.ts +0 -238
  101. package/dist/types/systems/NiceCombo.d.ts +0 -131
  102. package/dist/types/systems/NiceCommand.d.ts +0 -112
  103. package/dist/types/systems/NiceCompanion.d.ts +0 -182
  104. package/dist/types/systems/NiceController.d.ts +0 -144
  105. package/dist/types/systems/NiceCooking.d.ts +0 -193
  106. package/dist/types/systems/NiceCoroutine.d.ts +0 -101
  107. package/dist/types/systems/NiceCrafting.d.ts +0 -228
  108. package/dist/types/systems/NiceCutscene.d.ts +0 -437
  109. package/dist/types/systems/NiceDaily.d.ts +0 -133
  110. package/dist/types/systems/NiceDamage.d.ts +0 -271
  111. package/dist/types/systems/NiceDayNight.d.ts +0 -126
  112. package/dist/types/systems/NiceDebug.d.ts +0 -255
  113. package/dist/types/systems/NiceDestructible.d.ts +0 -150
  114. package/dist/types/systems/NiceDialogue.d.ts +0 -629
  115. package/dist/types/systems/NiceDungeon.d.ts +0 -202
  116. package/dist/types/systems/NiceECS.d.ts +0 -151
  117. package/dist/types/systems/NiceEnchant.d.ts +0 -148
  118. package/dist/types/systems/NiceEntityPool.d.ts +0 -127
  119. package/dist/types/systems/NiceEquipment.d.ts +0 -137
  120. package/dist/types/systems/NiceEvent.d.ts +0 -202
  121. package/dist/types/systems/NiceEventBus.d.ts +0 -164
  122. package/dist/types/systems/NiceFaction.d.ts +0 -173
  123. package/dist/types/systems/NiceFarming.d.ts +0 -163
  124. package/dist/types/systems/NiceFishing.d.ts +0 -196
  125. package/dist/types/systems/NiceFlocking.d.ts +0 -156
  126. package/dist/types/systems/NiceFog.d.ts +0 -137
  127. package/dist/types/systems/NiceFormation.d.ts +0 -140
  128. package/dist/types/systems/NiceGacha.d.ts +0 -134
  129. package/dist/types/systems/NiceGambling.d.ts +0 -175
  130. package/dist/types/systems/NiceGem.d.ts +0 -165
  131. package/dist/types/systems/NiceGesture.d.ts +0 -502
  132. package/dist/types/systems/NiceGrappling.d.ts +0 -154
  133. package/dist/types/systems/NiceGrid.d.ts +0 -142
  134. package/dist/types/systems/NiceGuild.d.ts +0 -162
  135. package/dist/types/systems/NiceHaptics.d.ts +0 -112
  136. package/dist/types/systems/NiceHousing.d.ts +0 -197
  137. package/dist/types/systems/NiceInput.d.ts +0 -280
  138. package/dist/types/systems/NiceInventory.d.ts +0 -534
  139. package/dist/types/systems/NiceLOD.d.ts +0 -144
  140. package/dist/types/systems/NiceLeaderboard.d.ts +0 -191
  141. package/dist/types/systems/NiceLevel.d.ts +0 -304
  142. package/dist/types/systems/NiceLighting.d.ts +0 -214
  143. package/dist/types/systems/NiceLocalization.d.ts +0 -148
  144. package/dist/types/systems/NiceLocomotion.d.ts +0 -398
  145. package/dist/types/systems/NiceLogger.d.ts +0 -117
  146. package/dist/types/systems/NiceLoot.d.ts +0 -176
  147. package/dist/types/systems/NiceMail.d.ts +0 -164
  148. package/dist/types/systems/NiceMap.d.ts +0 -234
  149. package/dist/types/systems/NiceMarriage.d.ts +0 -150
  150. package/dist/types/systems/NiceMastery.d.ts +0 -171
  151. package/dist/types/systems/NiceMatch.d.ts +0 -196
  152. package/dist/types/systems/NiceMatch3.d.ts +0 -118
  153. package/dist/types/systems/NiceMessageBus.d.ts +0 -115
  154. package/dist/types/systems/NiceMinimap.d.ts +0 -258
  155. package/dist/types/systems/NiceMining.d.ts +0 -175
  156. package/dist/types/systems/NiceModding.d.ts +0 -452
  157. package/dist/types/systems/NiceMount.d.ts +0 -152
  158. package/dist/types/systems/NiceNavigation.d.ts +0 -307
  159. package/dist/types/systems/NiceNetwork.d.ts +0 -568
  160. package/dist/types/systems/NiceNotification.d.ts +0 -438
  161. package/dist/types/systems/NiceObjective.d.ts +0 -395
  162. package/dist/types/systems/NiceParticle.d.ts +0 -639
  163. package/dist/types/systems/NiceParty.d.ts +0 -168
  164. package/dist/types/systems/NicePerformance.d.ts +0 -144
  165. package/dist/types/systems/NicePet.d.ts +0 -167
  166. package/dist/types/systems/NicePhotoMode.d.ts +0 -270
  167. package/dist/types/systems/NicePhysics.d.ts +0 -326
  168. package/dist/types/systems/NicePlatformer.d.ts +0 -158
  169. package/dist/types/systems/NicePool.d.ts +0 -128
  170. package/dist/types/systems/NicePortal.d.ts +0 -178
  171. package/dist/types/systems/NicePostProcess.d.ts +0 -254
  172. package/dist/types/systems/NiceProcedural.d.ts +0 -202
  173. package/dist/types/systems/NiceProfile.d.ts +0 -223
  174. package/dist/types/systems/NiceProjectile.d.ts +0 -157
  175. package/dist/types/systems/NicePvP.d.ts +0 -199
  176. package/dist/types/systems/NiceQTE.d.ts +0 -160
  177. package/dist/types/systems/NiceQuest.d.ts +0 -620
  178. package/dist/types/systems/NiceRaid.d.ts +0 -215
  179. package/dist/types/systems/NiceRanking.d.ts +0 -399
  180. package/dist/types/systems/NiceReplay.d.ts +0 -180
  181. package/dist/types/systems/NiceReputation.d.ts +0 -151
  182. package/dist/types/systems/NiceResource.d.ts +0 -200
  183. package/dist/types/systems/NiceRhythm.d.ts +0 -148
  184. package/dist/types/systems/NiceRoguelike.d.ts +0 -276
  185. package/dist/types/systems/NiceRune.d.ts +0 -202
  186. package/dist/types/systems/NiceSaveSystem.d.ts +0 -194
  187. package/dist/types/systems/NiceSceneManager.d.ts +0 -112
  188. package/dist/types/systems/NiceScore.d.ts +0 -186
  189. package/dist/types/systems/NiceScreenFX.d.ts +0 -235
  190. package/dist/types/systems/NiceScreenshot.d.ts +0 -443
  191. package/dist/types/systems/NiceScribe.d.ts +0 -239
  192. package/dist/types/systems/NiceSeason.d.ts +0 -176
  193. package/dist/types/systems/NiceSerialization.d.ts +0 -89
  194. package/dist/types/systems/NiceServiceLocator.d.ts +0 -94
  195. package/dist/types/systems/NiceShop.d.ts +0 -528
  196. package/dist/types/systems/NiceSignal.d.ts +0 -112
  197. package/dist/types/systems/NiceSkillTree.d.ts +0 -237
  198. package/dist/types/systems/NiceSocial.d.ts +0 -580
  199. package/dist/types/systems/NiceSpawner.d.ts +0 -237
  200. package/dist/types/systems/NiceSpell.d.ts +0 -216
  201. package/dist/types/systems/NiceState.d.ts +0 -224
  202. package/dist/types/systems/NiceStateMachine.d.ts +0 -108
  203. package/dist/types/systems/NiceStatus.d.ts +0 -116
  204. package/dist/types/systems/NiceStealth.d.ts +0 -204
  205. package/dist/types/systems/NiceSteam.d.ts +0 -255
  206. package/dist/types/systems/NiceStreaming.d.ts +0 -173
  207. package/dist/types/systems/NiceSwimming.d.ts +0 -166
  208. package/dist/types/systems/NiceTalent.d.ts +0 -154
  209. package/dist/types/systems/NiceTarget.d.ts +0 -121
  210. package/dist/types/systems/NiceTerrain.d.ts +0 -143
  211. package/dist/types/systems/NiceTilemap.d.ts +0 -218
  212. package/dist/types/systems/NiceTimer.d.ts +0 -153
  213. package/dist/types/systems/NiceTournament.d.ts +0 -190
  214. package/dist/types/systems/NiceTrading.d.ts +0 -238
  215. package/dist/types/systems/NiceTransmog.d.ts +0 -142
  216. package/dist/types/systems/NiceTutorial.d.ts +0 -248
  217. package/dist/types/systems/NiceTween.d.ts +0 -164
  218. package/dist/types/systems/NiceUI.d.ts +0 -364
  219. package/dist/types/systems/NiceVFX.d.ts +0 -333
  220. package/dist/types/systems/NiceVehicle.d.ts +0 -176
  221. package/dist/types/systems/NiceVoice.d.ts +0 -502
  222. package/dist/types/systems/NiceWater.d.ts +0 -162
  223. package/dist/types/systems/NiceWave.d.ts +0 -174
  224. package/dist/types/systems/NiceWaypoint.d.ts +0 -165
  225. package/dist/types/systems/NiceWeather.d.ts +0 -225
  226. package/dist/types/systems/NiceXR.d.ts +0 -187
  227. package/dist/types/systems/index.d.ts +0 -182
  228. package/dist/types/templates/index.d.ts +0 -2
  229. package/dist/types/tilemap/index.d.ts +0 -1
  230. package/dist/types/tutorials/TutorialEditor.d.ts +0 -43
  231. package/dist/types/tutorials/VoiceNarration.d.ts +0 -75
  232. package/dist/types/tutorials/content/Tutorials_T04.d.ts +0 -3
  233. package/dist/types/tutorials/content/UITutorials.d.ts +0 -14
  234. package/dist/types/tutorials/content/index.d.ts +0 -5
  235. package/dist/types/tutorials/index.d.ts +0 -6
  236. package/dist/types/ui/index.d.ts +0 -2
  237. package/dist/types/visual-scripting/VisualScriptDebugger.d.ts +0 -145
  238. package/dist/types/visual-scripting/VisualScriptExecutor.d.ts +0 -100
  239. package/dist/types/visual-scripting/VisualScriptGraph.d.ts +0 -173
  240. package/dist/types/visual-scripting/VisualScriptNode.d.ts +0 -157
  241. package/dist/types/visual-scripting/index.d.ts +0 -6
  242. package/dist/types/visual-scripting/nodes/ActionNodes.d.ts +0 -152
  243. package/dist/types/visual-scripting/nodes/EventNodes.d.ts +0 -95
  244. package/dist/types/visual-scripting/nodes/FlowControlNodes.d.ts +0 -134
  245. package/dist/types/visual-scripting/nodes/LogicNodes.d.ts +0 -122
  246. package/dist/types/visual-scripting/nodes/MathNodes.d.ts +0 -170
  247. package/dist/types/visual-scripting/nodes/UtilityNodes.d.ts +0 -131
  248. package/dist/types/visual-scripting/nodes/VariableNodes.d.ts +0 -107
  249. package/dist/types/visual-scripting/nodes/index.d.ts +0 -21
  250. package/dist/types/visual-scripting/nodes/registerNodes.d.ts +0 -29
  251. package/dist/types/visual-scripting/types.d.ts +0 -402
  252. package/dist/types/xr/WebXRLayers.d.ts +0 -319
  253. package/dist/types/xr/index.d.ts +0 -2
@@ -1,637 +0,0 @@
1
- /**
2
- * NiceAI - Comprehensive AI Behavior System
3
- *
4
- * Professional AI system for NPCs, enemies, and game agents.
5
- * Supports behavior trees, utility AI, GOAP, blackboards, and steering.
6
- *
7
- * Features:
8
- * - Behavior Trees (BT) with all node types
9
- * - Utility AI with considerations
10
- * - Goal-Oriented Action Planning (GOAP)
11
- * - Hierarchical Task Networks (HTN)
12
- * - Blackboard knowledge sharing
13
- * - Perception systems (sight, hearing)
14
- * - Steering behaviors
15
- * - Group/squad coordination
16
- * - Memory and learning
17
- * - Debug visualization
18
- *
19
- * @packageDocumentation
20
- */
21
- import { EventEmitter } from 'eventemitter3';
22
- /** Unique identifier for AI agents */
23
- export type AgentId = string;
24
- /** Unique identifier for behaviors */
25
- export type BehaviorId = string;
26
- /** Unique identifier for actions */
27
- export type ActionId = string;
28
- /** Unique identifier for goals */
29
- export type GoalId = string;
30
- /** Unique identifier for squads */
31
- export type SquadId = string;
32
- /** Behavior node status */
33
- export type NodeStatus = 'running' | 'success' | 'failure';
34
- /** Node type in behavior tree */
35
- export type BehaviorNodeType = 'selector' | 'sequence' | 'parallel' | 'decorator' | 'condition' | 'action' | 'wait' | 'random' | 'loop' | 'inverter' | 'succeeder' | 'failer' | 'repeater' | 'limiter' | 'subtree';
36
- /** 2D Vector */
37
- export interface Vec2 {
38
- x: number;
39
- y: number;
40
- }
41
- /** 3D Vector */
42
- export interface Vec3 {
43
- x: number;
44
- y: number;
45
- z: number;
46
- }
47
- /** Blackboard entry */
48
- export interface BlackboardEntry<T = unknown> {
49
- key: string;
50
- value: T;
51
- timestamp: number;
52
- ttl?: number;
53
- source?: AgentId;
54
- }
55
- /** Blackboard for knowledge sharing */
56
- export interface Blackboard {
57
- entries: Map<string, BlackboardEntry>;
58
- parent?: Blackboard;
59
- }
60
- /** Perception target */
61
- export interface PerceptionTarget {
62
- id: string;
63
- type: string;
64
- position: Vec3;
65
- lastSeen: number;
66
- confidence: number;
67
- isVisible: boolean;
68
- isAudible: boolean;
69
- threat: number;
70
- metadata: Map<string, unknown>;
71
- }
72
- /** Perception config */
73
- export interface PerceptionConfig {
74
- sightRange: number;
75
- sightAngle: number;
76
- hearingRange: number;
77
- memoryDuration: number;
78
- updateInterval: number;
79
- }
80
- /** Steering behavior output */
81
- export interface SteeringOutput {
82
- linear: Vec3;
83
- angular: number;
84
- }
85
- /** Steering behavior type */
86
- export type SteeringType = 'seek' | 'flee' | 'arrive' | 'pursue' | 'evade' | 'wander' | 'avoid' | 'separate' | 'align' | 'cohere' | 'follow' | 'hide';
87
- /** Steering config */
88
- export interface SteeringConfig {
89
- maxSpeed: number;
90
- maxForce: number;
91
- maxRotation: number;
92
- arriveRadius: number;
93
- slowRadius: number;
94
- avoidanceRadius: number;
95
- separationRadius: number;
96
- cohesionRadius: number;
97
- alignmentRadius: number;
98
- }
99
- /** Base behavior node */
100
- export interface BehaviorNode {
101
- id: string;
102
- type: BehaviorNodeType;
103
- name?: string;
104
- children?: BehaviorNode[];
105
- decorator?: DecoratorConfig;
106
- condition?: ConditionConfig;
107
- action?: ActionConfig;
108
- metadata?: Record<string, unknown>;
109
- }
110
- /** Decorator configuration */
111
- export interface DecoratorConfig {
112
- type: 'inverter' | 'succeeder' | 'failer' | 'repeater' | 'limiter' | 'cooldown' | 'timeout' | 'guard';
113
- count?: number;
114
- cooldown?: number;
115
- timeout?: number;
116
- condition?: ConditionConfig;
117
- }
118
- /** Condition configuration */
119
- export interface ConditionConfig {
120
- type: 'blackboard' | 'function' | 'distance' | 'health' | 'time' | 'random' | 'custom';
121
- key?: string;
122
- operator?: '==' | '!=' | '>' | '<' | '>=' | '<=' | 'exists' | 'notExists';
123
- value?: unknown;
124
- functionName?: string;
125
- probability?: number;
126
- args?: unknown[];
127
- }
128
- /** Action configuration */
129
- export interface ActionConfig {
130
- name: string;
131
- duration?: number;
132
- interruptible?: boolean;
133
- parameters?: Record<string, unknown>;
134
- }
135
- /** Behavior tree definition */
136
- export interface BehaviorTree {
137
- id: BehaviorId;
138
- name: string;
139
- root: BehaviorNode;
140
- metadata?: Record<string, unknown>;
141
- }
142
- /** Node execution context */
143
- export interface NodeContext {
144
- agent: AIAgent;
145
- blackboard: Blackboard;
146
- deltaTime: number;
147
- nodeStates: Map<string, NodeState>;
148
- }
149
- /** Node state tracking */
150
- export interface NodeState {
151
- status: NodeStatus;
152
- startTime?: number;
153
- lastRunTime?: number;
154
- runCount: number;
155
- data: Map<string, unknown>;
156
- }
157
- /** Consideration for utility AI */
158
- export interface Consideration {
159
- id: string;
160
- name: string;
161
- inputType: 'blackboard' | 'function' | 'distance' | 'health' | 'time' | 'custom';
162
- inputKey?: string;
163
- functionName?: string;
164
- curve: ResponseCurve;
165
- weight: number;
166
- parameters?: Record<string, unknown>;
167
- }
168
- /** Response curve for utility scoring */
169
- export interface ResponseCurve {
170
- type: 'linear' | 'quadratic' | 'exponential' | 'logistic' | 'sine' | 'step' | 'custom';
171
- slope?: number;
172
- exponent?: number;
173
- xShift?: number;
174
- yShift?: number;
175
- invert?: boolean;
176
- customFn?: (x: number) => number;
177
- }
178
- /** Utility action */
179
- export interface UtilityAction {
180
- id: ActionId;
181
- name: string;
182
- considerations: Consideration[];
183
- weight: number;
184
- cooldown?: number;
185
- lastExecuted?: number;
186
- execute: (agent: AIAgent, context: AIContext) => void | Promise<void>;
187
- metadata?: Record<string, unknown>;
188
- }
189
- /** Utility AI system */
190
- export interface UtilityBrain {
191
- actions: UtilityAction[];
192
- defaultAction?: ActionId;
193
- momentumFactor: number;
194
- randomFactor: number;
195
- currentAction?: ActionId;
196
- }
197
- /** World state for GOAP */
198
- export interface WorldState {
199
- [key: string]: boolean | number | string;
200
- }
201
- /** GOAP action */
202
- export interface GOAPAction {
203
- id: ActionId;
204
- name: string;
205
- cost: number;
206
- preconditions: WorldState;
207
- effects: WorldState;
208
- execute: (agent: AIAgent, context: AIContext) => Promise<boolean>;
209
- isValid?: (agent: AIAgent, worldState: WorldState) => boolean;
210
- getDynamicCost?: (agent: AIAgent, worldState: WorldState) => number;
211
- metadata?: Record<string, unknown>;
212
- }
213
- /** GOAP goal */
214
- export interface GOAPGoal {
215
- id: GoalId;
216
- name: string;
217
- priority: number;
218
- targetState: WorldState;
219
- isValid?: (agent: AIAgent, worldState: WorldState) => boolean;
220
- onActivate?: (agent: AIAgent) => void;
221
- onDeactivate?: (agent: AIAgent) => void;
222
- metadata?: Record<string, unknown>;
223
- }
224
- /** GOAP plan */
225
- export interface GOAPPlan {
226
- goalId: GoalId;
227
- actions: GOAPAction[];
228
- totalCost: number;
229
- currentIndex: number;
230
- isValid: boolean;
231
- }
232
- /** GOAP planner */
233
- export interface GOAPPlanner {
234
- actions: Map<ActionId, GOAPAction>;
235
- goals: Map<GoalId, GOAPGoal>;
236
- maxPlanLength: number;
237
- maxIterations: number;
238
- }
239
- /** AI agent state */
240
- export type AgentState = 'idle' | 'active' | 'paused' | 'disabled';
241
- /** AI agent definition */
242
- export interface AIAgentConfig {
243
- id: AgentId;
244
- type: 'bt' | 'utility' | 'goap' | 'hybrid';
245
- behaviorTree?: BehaviorTree;
246
- utilityBrain?: UtilityBrain;
247
- goapPlanner?: GOAPPlanner;
248
- perception?: PerceptionConfig;
249
- steering?: SteeringConfig;
250
- updateInterval: number;
251
- position: Vec3;
252
- rotation: number;
253
- metadata?: Record<string, unknown>;
254
- }
255
- /** AI agent instance */
256
- export interface AIAgent {
257
- config: AIAgentConfig;
258
- state: AgentState;
259
- blackboard: Blackboard;
260
- perception: {
261
- targets: Map<string, PerceptionTarget>;
262
- lastUpdate: number;
263
- };
264
- steering: {
265
- velocity: Vec3;
266
- acceleration: Vec3;
267
- currentBehaviors: SteeringType[];
268
- };
269
- bt: {
270
- currentTree?: BehaviorId;
271
- nodeStates: Map<string, NodeState>;
272
- lastTick: number;
273
- };
274
- utility: {
275
- currentAction?: ActionId;
276
- actionScores: Map<ActionId, number>;
277
- lastEvaluation: number;
278
- };
279
- goap: {
280
- currentPlan?: GOAPPlan;
281
- worldState: WorldState;
282
- lastPlan: number;
283
- };
284
- squadId?: SquadId;
285
- createdAt: number;
286
- lastUpdate: number;
287
- }
288
- /** AI execution context */
289
- export interface AIContext {
290
- deltaTime: number;
291
- time: number;
292
- agents: Map<AgentId, AIAgent>;
293
- squads: Map<SquadId, Squad>;
294
- globalBlackboard: Blackboard;
295
- }
296
- /** Squad/group */
297
- export interface Squad {
298
- id: SquadId;
299
- name: string;
300
- leader?: AgentId;
301
- members: AgentId[];
302
- formation: FormationType;
303
- blackboard: Blackboard;
304
- tactics: SquadTactics;
305
- }
306
- /** Formation type */
307
- export type FormationType = 'none' | 'line' | 'column' | 'wedge' | 'circle' | 'scattered';
308
- /** Squad tactics */
309
- export interface SquadTactics {
310
- aggression: number;
311
- spacing: number;
312
- coordination: number;
313
- retreatThreshold: number;
314
- }
315
- /** AI event types */
316
- export type AIEventType = 'agent:created' | 'agent:destroyed' | 'agent:stateChanged' | 'behavior:started' | 'behavior:completed' | 'behavior:failed' | 'action:started' | 'action:completed' | 'action:failed' | 'goal:activated' | 'goal:achieved' | 'goal:failed' | 'plan:created' | 'plan:failed' | 'perception:targetAcquired' | 'perception:targetLost' | 'squad:formed' | 'squad:disbanded' | 'squad:memberJoined' | 'squad:memberLeft' | 'blackboard:changed' | 'error';
317
- /** AI event */
318
- export interface AIEvent {
319
- type: AIEventType;
320
- agentId?: AgentId;
321
- squadId?: SquadId;
322
- behaviorId?: BehaviorId;
323
- actionId?: ActionId;
324
- goalId?: GoalId;
325
- targetId?: string;
326
- key?: string;
327
- value?: unknown;
328
- oldState?: AgentState;
329
- newState?: AgentState;
330
- error?: Error;
331
- timestamp: number;
332
- }
333
- /** Event callback */
334
- export type AIEventCallback = (event: AIEvent) => void;
335
- /** AI system configuration */
336
- export interface AIConfig {
337
- /** Default update interval (ms) */
338
- defaultUpdateInterval: number;
339
- /** Maximum agents per frame */
340
- maxAgentsPerFrame: number;
341
- /** Enable debug logging */
342
- debug: boolean;
343
- /** Default perception config */
344
- defaultPerception: PerceptionConfig;
345
- /** Default steering config */
346
- defaultSteering: SteeringConfig;
347
- }
348
- export declare const DEFAULT_AI_CONFIG: AIConfig;
349
- export declare class NiceAI extends EventEmitter<Record<AIEventType, [AIEvent]>> {
350
- private config;
351
- private agents;
352
- private behaviorTrees;
353
- private squads;
354
- private globalBlackboard;
355
- private conditionFunctions;
356
- private actionHandlers;
357
- private inputFunctions;
358
- private updateTimer?;
359
- private lastUpdateTime;
360
- private agentCounter;
361
- private squadCounter;
362
- constructor(config?: Partial<AIConfig>);
363
- /**
364
- * Create a new blackboard
365
- */
366
- createBlackboard(parent?: Blackboard): Blackboard;
367
- /**
368
- * Set blackboard value
369
- */
370
- setBlackboardValue<T>(blackboard: Blackboard, key: string, value: T, ttl?: number, source?: AgentId): void;
371
- /**
372
- * Get blackboard value
373
- */
374
- getBlackboardValue<T>(blackboard: Blackboard, key: string): T | undefined;
375
- /**
376
- * Check if blackboard has key
377
- */
378
- hasBlackboardKey(blackboard: Blackboard, key: string): boolean;
379
- /**
380
- * Delete blackboard key
381
- */
382
- deleteBlackboardKey(blackboard: Blackboard, key: string): boolean;
383
- /**
384
- * Clear blackboard
385
- */
386
- clearBlackboard(blackboard: Blackboard): void;
387
- /**
388
- * Get global blackboard
389
- */
390
- getGlobalBlackboard(): Blackboard;
391
- /**
392
- * Create an AI agent
393
- */
394
- createAgent(config: Partial<AIAgentConfig> & {
395
- id?: AgentId;
396
- }): AIAgent;
397
- /**
398
- * Get agent
399
- */
400
- getAgent(id: AgentId): AIAgent | undefined;
401
- /**
402
- * Remove agent
403
- */
404
- removeAgent(id: AgentId): boolean;
405
- /**
406
- * Set agent state
407
- */
408
- setAgentState(id: AgentId, state: AgentState): boolean;
409
- /**
410
- * Get all agents
411
- */
412
- getAllAgents(): AIAgent[];
413
- /**
414
- * Get active agents
415
- */
416
- getActiveAgents(): AIAgent[];
417
- /**
418
- * Register behavior tree
419
- */
420
- registerBehaviorTree(tree: BehaviorTree): void;
421
- /**
422
- * Get behavior tree
423
- */
424
- getBehaviorTree(id: BehaviorId): BehaviorTree | undefined;
425
- /**
426
- * Set agent behavior tree
427
- */
428
- setAgentBehaviorTree(agentId: AgentId, treeId: BehaviorId): boolean;
429
- /**
430
- * Tick behavior tree
431
- */
432
- tickBehaviorTree(agent: AIAgent, deltaTime: number): NodeStatus;
433
- /**
434
- * Execute behavior node
435
- */
436
- private executeNode;
437
- private executeSelector;
438
- private executeSequence;
439
- private executeParallel;
440
- private executeCondition;
441
- private executeAction;
442
- private executeWait;
443
- private executeRandom;
444
- private executeInverter;
445
- private executeDecorator;
446
- private executeSubtree;
447
- /**
448
- * Evaluate condition
449
- */
450
- private evaluateCondition;
451
- private compareValues;
452
- /**
453
- * Evaluate utility actions
454
- */
455
- evaluateUtilityActions(agent: AIAgent): ActionId | undefined;
456
- /**
457
- * Calculate utility score for action
458
- */
459
- private calculateUtilityScore;
460
- /**
461
- * Get consideration input value
462
- */
463
- private getConsiderationInput;
464
- /**
465
- * Evaluate response curve
466
- */
467
- private evaluateResponseCurve;
468
- /**
469
- * Plan with GOAP
470
- */
471
- planGOAP(agent: AIAgent, goal: GOAPGoal): GOAPPlan | null;
472
- private goapHeuristic;
473
- private goapStateMatches;
474
- /**
475
- * Execute GOAP plan step
476
- */
477
- executeGOAPStep(agent: AIAgent): Promise<boolean>;
478
- /**
479
- * Calculate steering
480
- */
481
- calculateSteering(agent: AIAgent, behaviors: SteeringType[], targets: Map<SteeringType, Vec3>): SteeringOutput;
482
- private calculateSteeringBehavior;
483
- private steerSeek;
484
- private steerFlee;
485
- private steerArrive;
486
- private steerWander;
487
- /**
488
- * Apply steering to agent
489
- */
490
- applySteering(agent: AIAgent, steering: SteeringOutput, deltaTime: number): void;
491
- /**
492
- * Create squad
493
- */
494
- createSquad(name: string, leaderId?: AgentId): Squad;
495
- /**
496
- * Join squad
497
- */
498
- joinSquad(agentId: AgentId, squadId: SquadId): boolean;
499
- /**
500
- * Leave squad
501
- */
502
- leaveSquad(agentId: AgentId): boolean;
503
- /**
504
- * Get squad
505
- */
506
- getSquad(id: SquadId): Squad | undefined;
507
- /**
508
- * Register condition function
509
- */
510
- registerCondition(name: string, fn: (agent: AIAgent, ...args: unknown[]) => boolean): void;
511
- /**
512
- * Register action handler
513
- */
514
- registerAction(name: string, handler: (agent: AIAgent, context: AIContext, params: Record<string, unknown>) => NodeStatus | Promise<NodeStatus>): void;
515
- /**
516
- * Register input function for utility AI
517
- */
518
- registerInput(name: string, fn: (agent: AIAgent) => number): void;
519
- /**
520
- * Register built-in conditions
521
- */
522
- private registerBuiltInConditions;
523
- /**
524
- * Register built-in input functions
525
- */
526
- private registerBuiltInInputs;
527
- /**
528
- * Start update loop
529
- */
530
- start(intervalMs?: number): void;
531
- /**
532
- * Stop update loop
533
- */
534
- stop(): void;
535
- /**
536
- * Manual update
537
- */
538
- update(deltaTime: number): void;
539
- /**
540
- * Update single agent
541
- */
542
- private updateAgent;
543
- /**
544
- * Update perception
545
- */
546
- private updatePerception;
547
- /**
548
- * Update GOAP agent
549
- */
550
- private updateGOAP;
551
- private distance3D;
552
- /**
553
- * Get statistics
554
- */
555
- getStats(): {
556
- agentCount: number;
557
- activeAgents: number;
558
- squadCount: number;
559
- behaviorTreeCount: number;
560
- };
561
- /**
562
- * Destroy the AI system
563
- */
564
- destroy(): void;
565
- }
566
- /**
567
- * Create an AI system
568
- */
569
- export declare function createAISystem(config?: Partial<AIConfig>): NiceAI;
570
- /**
571
- * Create a selector node
572
- */
573
- export declare function selector(id: string, ...children: BehaviorNode[]): BehaviorNode;
574
- /**
575
- * Create a sequence node
576
- */
577
- export declare function sequence(id: string, ...children: BehaviorNode[]): BehaviorNode;
578
- /**
579
- * Create a parallel node
580
- */
581
- export declare function parallel(id: string, ...children: BehaviorNode[]): BehaviorNode;
582
- /**
583
- * Create a condition node
584
- */
585
- export declare function condition(id: string, config: ConditionConfig): BehaviorNode;
586
- /**
587
- * Create an action node
588
- */
589
- export declare function action(id: string, name: string, params?: Record<string, unknown>): BehaviorNode;
590
- /**
591
- * Create a wait node
592
- */
593
- export declare function wait(id: string, duration: number): BehaviorNode;
594
- /**
595
- * Create a decorator node
596
- */
597
- export declare function decorator(id: string, config: DecoratorConfig, child: BehaviorNode): BehaviorNode;
598
- /**
599
- * Create an inverter decorator
600
- */
601
- export declare function inverter(id: string, child: BehaviorNode): BehaviorNode;
602
- /**
603
- * Create a repeater decorator
604
- */
605
- export declare function repeater(id: string, count: number, child: BehaviorNode): BehaviorNode;
606
- /**
607
- * Create a cooldown decorator
608
- */
609
- export declare function cooldown(id: string, ms: number, child: BehaviorNode): BehaviorNode;
610
- /**
611
- * Create a behavior tree
612
- */
613
- export declare function behaviorTree(id: BehaviorId, name: string, root: BehaviorNode): BehaviorTree;
614
- /**
615
- * Create a utility action
616
- */
617
- export declare function utilityAction(id: ActionId, name: string, considerations: Consideration[], execute: (agent: AIAgent, context: AIContext) => void | Promise<void>, weight?: number): UtilityAction;
618
- /**
619
- * Create a consideration
620
- */
621
- export declare function consideration(id: string, name: string, inputType: Consideration['inputType'], curve: ResponseCurve, options?: {
622
- inputKey?: string;
623
- functionName?: string;
624
- weight?: number;
625
- }): Consideration;
626
- /**
627
- * Create a response curve
628
- */
629
- export declare function curve(type: ResponseCurve['type'], options?: Partial<ResponseCurve>): ResponseCurve;
630
- /**
631
- * Create a GOAP action
632
- */
633
- export declare function goapAction(id: ActionId, name: string, cost: number, preconditions: WorldState, effects: WorldState, execute: (agent: AIAgent, context: AIContext) => Promise<boolean>): GOAPAction;
634
- /**
635
- * Create a GOAP goal
636
- */
637
- export declare function goapGoal(id: GoalId, name: string, priority: number, targetState: WorldState): GOAPGoal;