@nice2dev/game-engine 1.3.13 → 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.
- package/CHANGELOG.md +4 -0
- package/package.json +2 -2
- package/dist/types/accessibility/index.d.ts +0 -1
- package/dist/types/ai/index.d.ts +0 -1
- package/dist/types/animation/index.d.ts +0 -1
- package/dist/types/audio/HRTFAudio.d.ts +0 -180
- package/dist/types/audio/index.d.ts +0 -2
- package/dist/types/community/Community.d.ts +0 -112
- package/dist/types/community/index.d.ts +0 -1
- package/dist/types/core/TypeSafety.d.ts +0 -190
- package/dist/types/core/index.d.ts +0 -7
- package/dist/types/devtools/AssetStore.d.ts +0 -133
- package/dist/types/devtools/index.d.ts +0 -3
- package/dist/types/dialogue/index.d.ts +0 -2
- package/dist/types/docs/APIPlayground.d.ts +0 -26
- package/dist/types/docs/Cookbook.d.ts +0 -18
- package/dist/types/docs/Guides.d.ts +0 -18
- package/dist/types/docs/index.d.ts +0 -4
- package/dist/types/ecs/ECSOptimized.d.ts +0 -131
- package/dist/types/ecs/index.d.ts +0 -2
- package/dist/types/editor/NiceAnimationTimeline.d.ts +0 -114
- package/dist/types/editor/NiceLevelEditor.d.ts +0 -232
- package/dist/types/editor/NiceMaterialEditor.d.ts +0 -105
- package/dist/types/editor/NiceNodeGraph.d.ts +0 -87
- package/dist/types/editor/NiceParticleEditor.d.ts +0 -127
- package/dist/types/editor/behavior-tree/BTDebugPanel.d.ts +0 -102
- package/dist/types/editor/behavior-tree/BTEditorCanvas.d.ts +0 -79
- package/dist/types/editor/behavior-tree/BTEditorNode.d.ts +0 -58
- package/dist/types/editor/behavior-tree/BTEditorToolbar.d.ts +0 -75
- package/dist/types/editor/behavior-tree/BTNodePalette.d.ts +0 -72
- package/dist/types/editor/behavior-tree/BTPropertyPanel.d.ts +0 -66
- package/dist/types/editor/behavior-tree/BehaviorTreeEditor.d.ts +0 -186
- package/dist/types/editor/behavior-tree/index.d.ts +0 -14
- package/dist/types/editor/behavior-tree/serialization.d.ts +0 -30
- package/dist/types/editor/behavior-tree/types.d.ts +0 -299
- package/dist/types/editor/index.d.ts +0 -20
- package/dist/types/editor/state-machine/SMEditorCanvas.d.ts +0 -61
- package/dist/types/editor/state-machine/StateMachineEditor.d.ts +0 -139
- package/dist/types/editor/state-machine/index.d.ts +0 -11
- package/dist/types/editor/state-machine/serialization.d.ts +0 -23
- package/dist/types/editor/state-machine/types.d.ts +0 -241
- package/dist/types/engine/index.d.ts +0 -2
- package/dist/types/enterprise/index.d.ts +0 -1
- package/dist/types/epic/index.d.ts +0 -10
- package/dist/types/i18n/index.d.ts +0 -2
- package/dist/types/input/index.d.ts +0 -3
- package/dist/types/kids/index.d.ts +0 -2
- package/dist/types/legendary/index.d.ts +0 -57
- package/dist/types/monetization/index.d.ts +0 -1
- package/dist/types/multiplayer/NiceNetcode.d.ts +0 -434
- package/dist/types/multiplayer/index.d.ts +0 -5
- package/dist/types/network/index.d.ts +0 -2
- package/dist/types/pathfinding/index.d.ts +0 -1
- package/dist/types/performance/AssetCompression.d.ts +0 -137
- package/dist/types/performance/WASMModules.d.ts +0 -65
- package/dist/types/performance/WebGPUCompute.d.ts +0 -71
- package/dist/types/performance/index.d.ts +0 -1
- package/dist/types/physics/RapierIntegration.d.ts +0 -404
- package/dist/types/physics/index.d.ts +0 -2
- package/dist/types/plugins/index.d.ts +0 -2
- package/dist/types/procedural/index.d.ts +0 -2
- package/dist/types/release/index.d.ts +0 -1
- package/dist/types/rendering/WebGPUv2.d.ts +0 -173
- package/dist/types/rendering/index.d.ts +0 -3
- package/dist/types/runtime3d/index.d.ts +0 -2
- package/dist/types/scene/index.d.ts +0 -2
- package/dist/types/scripting/WasmCompiler.d.ts +0 -182
- package/dist/types/scripting/index.d.ts +0 -19
- package/dist/types/social/index.d.ts +0 -1
- package/dist/types/systems/NiceAI.d.ts +0 -637
- package/dist/types/systems/NiceAbility.d.ts +0 -225
- package/dist/types/systems/NiceAccessibility.d.ts +0 -230
- package/dist/types/systems/NiceAchievement.d.ts +0 -153
- package/dist/types/systems/NiceAchievementUI.d.ts +0 -196
- package/dist/types/systems/NiceAchievements.d.ts +0 -230
- package/dist/types/systems/NiceAction.d.ts +0 -81
- package/dist/types/systems/NiceAlchemy.d.ts +0 -195
- package/dist/types/systems/NiceAnalytics.d.ts +0 -493
- package/dist/types/systems/NiceAnimation.d.ts +0 -350
- package/dist/types/systems/NiceArena.d.ts +0 -215
- package/dist/types/systems/NiceAssetLoader.d.ts +0 -136
- package/dist/types/systems/NiceAuction.d.ts +0 -157
- package/dist/types/systems/NiceAudio.d.ts +0 -224
- package/dist/types/systems/NiceAugment.d.ts +0 -187
- package/dist/types/systems/NiceAura.d.ts +0 -193
- package/dist/types/systems/NiceBank.d.ts +0 -158
- package/dist/types/systems/NiceBattlePass.d.ts +0 -150
- package/dist/types/systems/NiceBehavior.d.ts +0 -160
- package/dist/types/systems/NiceBinding.d.ts +0 -96
- package/dist/types/systems/NiceBlacksmith.d.ts +0 -221
- package/dist/types/systems/NiceBuff.d.ts +0 -177
- package/dist/types/systems/NiceBuilding.d.ts +0 -207
- package/dist/types/systems/NiceBullet.d.ts +0 -167
- package/dist/types/systems/NiceCamera.d.ts +0 -252
- package/dist/types/systems/NiceCard.d.ts +0 -171
- package/dist/types/systems/NiceChat.d.ts +0 -148
- package/dist/types/systems/NiceCheat.d.ts +0 -375
- package/dist/types/systems/NiceClimbing.d.ts +0 -186
- package/dist/types/systems/NiceCloud.d.ts +0 -422
- package/dist/types/systems/NiceCollision.d.ts +0 -238
- package/dist/types/systems/NiceCombo.d.ts +0 -131
- package/dist/types/systems/NiceCommand.d.ts +0 -112
- package/dist/types/systems/NiceCompanion.d.ts +0 -182
- package/dist/types/systems/NiceController.d.ts +0 -144
- package/dist/types/systems/NiceCooking.d.ts +0 -193
- package/dist/types/systems/NiceCoroutine.d.ts +0 -101
- package/dist/types/systems/NiceCrafting.d.ts +0 -228
- package/dist/types/systems/NiceCutscene.d.ts +0 -437
- package/dist/types/systems/NiceDaily.d.ts +0 -133
- package/dist/types/systems/NiceDamage.d.ts +0 -271
- package/dist/types/systems/NiceDayNight.d.ts +0 -126
- package/dist/types/systems/NiceDebug.d.ts +0 -255
- package/dist/types/systems/NiceDestructible.d.ts +0 -150
- package/dist/types/systems/NiceDialogue.d.ts +0 -629
- package/dist/types/systems/NiceDungeon.d.ts +0 -202
- package/dist/types/systems/NiceECS.d.ts +0 -151
- package/dist/types/systems/NiceEnchant.d.ts +0 -148
- package/dist/types/systems/NiceEntityPool.d.ts +0 -127
- package/dist/types/systems/NiceEquipment.d.ts +0 -137
- package/dist/types/systems/NiceEvent.d.ts +0 -202
- package/dist/types/systems/NiceEventBus.d.ts +0 -164
- package/dist/types/systems/NiceFaction.d.ts +0 -173
- package/dist/types/systems/NiceFarming.d.ts +0 -163
- package/dist/types/systems/NiceFishing.d.ts +0 -196
- package/dist/types/systems/NiceFlocking.d.ts +0 -156
- package/dist/types/systems/NiceFog.d.ts +0 -137
- package/dist/types/systems/NiceFormation.d.ts +0 -140
- package/dist/types/systems/NiceGacha.d.ts +0 -134
- package/dist/types/systems/NiceGambling.d.ts +0 -175
- package/dist/types/systems/NiceGem.d.ts +0 -165
- package/dist/types/systems/NiceGesture.d.ts +0 -502
- package/dist/types/systems/NiceGrappling.d.ts +0 -154
- package/dist/types/systems/NiceGrid.d.ts +0 -142
- package/dist/types/systems/NiceGuild.d.ts +0 -162
- package/dist/types/systems/NiceHaptics.d.ts +0 -112
- package/dist/types/systems/NiceHousing.d.ts +0 -197
- package/dist/types/systems/NiceInput.d.ts +0 -280
- package/dist/types/systems/NiceInventory.d.ts +0 -534
- package/dist/types/systems/NiceLOD.d.ts +0 -144
- package/dist/types/systems/NiceLeaderboard.d.ts +0 -191
- package/dist/types/systems/NiceLevel.d.ts +0 -304
- package/dist/types/systems/NiceLighting.d.ts +0 -214
- package/dist/types/systems/NiceLocalization.d.ts +0 -148
- package/dist/types/systems/NiceLocomotion.d.ts +0 -398
- package/dist/types/systems/NiceLogger.d.ts +0 -117
- package/dist/types/systems/NiceLoot.d.ts +0 -176
- package/dist/types/systems/NiceMail.d.ts +0 -164
- package/dist/types/systems/NiceMap.d.ts +0 -234
- package/dist/types/systems/NiceMarriage.d.ts +0 -150
- package/dist/types/systems/NiceMastery.d.ts +0 -171
- package/dist/types/systems/NiceMatch.d.ts +0 -196
- package/dist/types/systems/NiceMatch3.d.ts +0 -118
- package/dist/types/systems/NiceMessageBus.d.ts +0 -115
- package/dist/types/systems/NiceMinimap.d.ts +0 -258
- package/dist/types/systems/NiceMining.d.ts +0 -175
- package/dist/types/systems/NiceModding.d.ts +0 -452
- package/dist/types/systems/NiceMount.d.ts +0 -152
- package/dist/types/systems/NiceNavigation.d.ts +0 -307
- package/dist/types/systems/NiceNetwork.d.ts +0 -568
- package/dist/types/systems/NiceNotification.d.ts +0 -438
- package/dist/types/systems/NiceObjective.d.ts +0 -395
- package/dist/types/systems/NiceParticle.d.ts +0 -639
- package/dist/types/systems/NiceParty.d.ts +0 -168
- package/dist/types/systems/NicePerformance.d.ts +0 -144
- package/dist/types/systems/NicePet.d.ts +0 -167
- package/dist/types/systems/NicePhotoMode.d.ts +0 -270
- package/dist/types/systems/NicePhysics.d.ts +0 -326
- package/dist/types/systems/NicePlatformer.d.ts +0 -158
- package/dist/types/systems/NicePool.d.ts +0 -128
- package/dist/types/systems/NicePortal.d.ts +0 -178
- package/dist/types/systems/NicePostProcess.d.ts +0 -254
- package/dist/types/systems/NiceProcedural.d.ts +0 -202
- package/dist/types/systems/NiceProfile.d.ts +0 -223
- package/dist/types/systems/NiceProjectile.d.ts +0 -157
- package/dist/types/systems/NicePvP.d.ts +0 -199
- package/dist/types/systems/NiceQTE.d.ts +0 -160
- package/dist/types/systems/NiceQuest.d.ts +0 -620
- package/dist/types/systems/NiceRaid.d.ts +0 -215
- package/dist/types/systems/NiceRanking.d.ts +0 -399
- package/dist/types/systems/NiceReplay.d.ts +0 -180
- package/dist/types/systems/NiceReputation.d.ts +0 -151
- package/dist/types/systems/NiceResource.d.ts +0 -200
- package/dist/types/systems/NiceRhythm.d.ts +0 -148
- package/dist/types/systems/NiceRoguelike.d.ts +0 -276
- package/dist/types/systems/NiceRune.d.ts +0 -202
- package/dist/types/systems/NiceSaveSystem.d.ts +0 -194
- package/dist/types/systems/NiceSceneManager.d.ts +0 -112
- package/dist/types/systems/NiceScore.d.ts +0 -186
- package/dist/types/systems/NiceScreenFX.d.ts +0 -235
- package/dist/types/systems/NiceScreenshot.d.ts +0 -443
- package/dist/types/systems/NiceScribe.d.ts +0 -239
- package/dist/types/systems/NiceSeason.d.ts +0 -176
- package/dist/types/systems/NiceSerialization.d.ts +0 -89
- package/dist/types/systems/NiceServiceLocator.d.ts +0 -94
- package/dist/types/systems/NiceShop.d.ts +0 -528
- package/dist/types/systems/NiceSignal.d.ts +0 -112
- package/dist/types/systems/NiceSkillTree.d.ts +0 -237
- package/dist/types/systems/NiceSocial.d.ts +0 -580
- package/dist/types/systems/NiceSpawner.d.ts +0 -237
- package/dist/types/systems/NiceSpell.d.ts +0 -216
- package/dist/types/systems/NiceState.d.ts +0 -224
- package/dist/types/systems/NiceStateMachine.d.ts +0 -108
- package/dist/types/systems/NiceStatus.d.ts +0 -116
- package/dist/types/systems/NiceStealth.d.ts +0 -204
- package/dist/types/systems/NiceSteam.d.ts +0 -255
- package/dist/types/systems/NiceStreaming.d.ts +0 -173
- package/dist/types/systems/NiceSwimming.d.ts +0 -166
- package/dist/types/systems/NiceTalent.d.ts +0 -154
- package/dist/types/systems/NiceTarget.d.ts +0 -121
- package/dist/types/systems/NiceTerrain.d.ts +0 -143
- package/dist/types/systems/NiceTilemap.d.ts +0 -218
- package/dist/types/systems/NiceTimer.d.ts +0 -153
- package/dist/types/systems/NiceTournament.d.ts +0 -190
- package/dist/types/systems/NiceTrading.d.ts +0 -238
- package/dist/types/systems/NiceTransmog.d.ts +0 -142
- package/dist/types/systems/NiceTutorial.d.ts +0 -248
- package/dist/types/systems/NiceTween.d.ts +0 -164
- package/dist/types/systems/NiceUI.d.ts +0 -364
- package/dist/types/systems/NiceVFX.d.ts +0 -333
- package/dist/types/systems/NiceVehicle.d.ts +0 -176
- package/dist/types/systems/NiceVoice.d.ts +0 -502
- package/dist/types/systems/NiceWater.d.ts +0 -162
- package/dist/types/systems/NiceWave.d.ts +0 -174
- package/dist/types/systems/NiceWaypoint.d.ts +0 -165
- package/dist/types/systems/NiceWeather.d.ts +0 -225
- package/dist/types/systems/NiceXR.d.ts +0 -187
- package/dist/types/systems/index.d.ts +0 -182
- package/dist/types/templates/index.d.ts +0 -2
- package/dist/types/tilemap/index.d.ts +0 -1
- package/dist/types/tutorials/TutorialEditor.d.ts +0 -43
- package/dist/types/tutorials/VoiceNarration.d.ts +0 -75
- package/dist/types/tutorials/content/Tutorials_T04.d.ts +0 -3
- package/dist/types/tutorials/content/UITutorials.d.ts +0 -14
- package/dist/types/tutorials/content/index.d.ts +0 -5
- package/dist/types/tutorials/index.d.ts +0 -6
- package/dist/types/ui/index.d.ts +0 -2
- package/dist/types/visual-scripting/VisualScriptDebugger.d.ts +0 -145
- package/dist/types/visual-scripting/VisualScriptExecutor.d.ts +0 -100
- package/dist/types/visual-scripting/VisualScriptGraph.d.ts +0 -173
- package/dist/types/visual-scripting/VisualScriptNode.d.ts +0 -157
- package/dist/types/visual-scripting/index.d.ts +0 -6
- package/dist/types/visual-scripting/nodes/ActionNodes.d.ts +0 -152
- package/dist/types/visual-scripting/nodes/EventNodes.d.ts +0 -95
- package/dist/types/visual-scripting/nodes/FlowControlNodes.d.ts +0 -134
- package/dist/types/visual-scripting/nodes/LogicNodes.d.ts +0 -122
- package/dist/types/visual-scripting/nodes/MathNodes.d.ts +0 -170
- package/dist/types/visual-scripting/nodes/UtilityNodes.d.ts +0 -131
- package/dist/types/visual-scripting/nodes/VariableNodes.d.ts +0 -107
- package/dist/types/visual-scripting/nodes/index.d.ts +0 -21
- package/dist/types/visual-scripting/nodes/registerNodes.d.ts +0 -29
- package/dist/types/visual-scripting/types.d.ts +0 -402
- package/dist/types/xr/WebXRLayers.d.ts +0 -319
- 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;
|