@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,350 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NiceAnimation - Game Engine Animation System
|
|
3
|
-
*
|
|
4
|
-
* Comprehensive animation system supporting:
|
|
5
|
-
* - Sprite/frame animations
|
|
6
|
-
* - Skeletal animations
|
|
7
|
-
* - Animation blending
|
|
8
|
-
* - Animation state machines
|
|
9
|
-
* - Animation events and callbacks
|
|
10
|
-
* - Animation layers with weights
|
|
11
|
-
* - IK (Inverse Kinematics) support
|
|
12
|
-
* - Animation compression and optimization
|
|
13
|
-
*
|
|
14
|
-
* @packageDocumentation
|
|
15
|
-
*/
|
|
16
|
-
import { EventEmitter } from 'events';
|
|
17
|
-
export type AnimationId = string;
|
|
18
|
-
export type ClipId = string;
|
|
19
|
-
export type TrackId = string;
|
|
20
|
-
export type BoneId = string;
|
|
21
|
-
export type LayerId = string;
|
|
22
|
-
export type StateId = string;
|
|
23
|
-
export type PlaybackState = 'stopped' | 'playing' | 'paused';
|
|
24
|
-
export type LoopType = 'none' | 'loop' | 'pingpong' | 'clamp-forever';
|
|
25
|
-
export type BlendMode = 'override' | 'additive' | 'multiply';
|
|
26
|
-
export interface Vec2 {
|
|
27
|
-
x: number;
|
|
28
|
-
y: number;
|
|
29
|
-
}
|
|
30
|
-
export interface Vec3 {
|
|
31
|
-
x: number;
|
|
32
|
-
y: number;
|
|
33
|
-
z: number;
|
|
34
|
-
}
|
|
35
|
-
export interface Quaternion {
|
|
36
|
-
x: number;
|
|
37
|
-
y: number;
|
|
38
|
-
z: number;
|
|
39
|
-
w: number;
|
|
40
|
-
}
|
|
41
|
-
export interface Transform {
|
|
42
|
-
position: Vec3;
|
|
43
|
-
rotation: Quaternion;
|
|
44
|
-
scale: Vec3;
|
|
45
|
-
}
|
|
46
|
-
export interface Keyframe<T = number> {
|
|
47
|
-
time: number;
|
|
48
|
-
value: T;
|
|
49
|
-
inTangent?: T;
|
|
50
|
-
outTangent?: T;
|
|
51
|
-
interpolation?: 'linear' | 'step' | 'bezier' | 'hermite';
|
|
52
|
-
}
|
|
53
|
-
export interface AnimationTrack<T = number> {
|
|
54
|
-
id: TrackId;
|
|
55
|
-
property: string;
|
|
56
|
-
target?: string;
|
|
57
|
-
keyframes: Keyframe<T>[];
|
|
58
|
-
}
|
|
59
|
-
export interface AnimationClip {
|
|
60
|
-
id: ClipId;
|
|
61
|
-
name: string;
|
|
62
|
-
duration: number;
|
|
63
|
-
frameRate: number;
|
|
64
|
-
loopType: LoopType;
|
|
65
|
-
tracks: AnimationTrack[];
|
|
66
|
-
events?: AnimationEvent[];
|
|
67
|
-
tags?: string[];
|
|
68
|
-
}
|
|
69
|
-
export interface AnimationEvent {
|
|
70
|
-
time: number;
|
|
71
|
-
name: string;
|
|
72
|
-
data?: Record<string, unknown>;
|
|
73
|
-
}
|
|
74
|
-
export interface SpriteFrame {
|
|
75
|
-
x: number;
|
|
76
|
-
y: number;
|
|
77
|
-
width: number;
|
|
78
|
-
height: number;
|
|
79
|
-
pivotX?: number;
|
|
80
|
-
pivotY?: number;
|
|
81
|
-
duration?: number;
|
|
82
|
-
}
|
|
83
|
-
export interface SpriteSheet {
|
|
84
|
-
id: string;
|
|
85
|
-
imageUrl: string;
|
|
86
|
-
frameWidth: number;
|
|
87
|
-
frameHeight: number;
|
|
88
|
-
frames: SpriteFrame[];
|
|
89
|
-
animations: SpriteAnimation[];
|
|
90
|
-
}
|
|
91
|
-
export interface SpriteAnimation {
|
|
92
|
-
id: AnimationId;
|
|
93
|
-
name: string;
|
|
94
|
-
frames: number[];
|
|
95
|
-
frameRate: number;
|
|
96
|
-
loopType: LoopType;
|
|
97
|
-
events?: AnimationEvent[];
|
|
98
|
-
}
|
|
99
|
-
export interface Bone {
|
|
100
|
-
id: BoneId;
|
|
101
|
-
name: string;
|
|
102
|
-
parentId?: BoneId;
|
|
103
|
-
localTransform: Transform;
|
|
104
|
-
bindPose: Transform;
|
|
105
|
-
length?: number;
|
|
106
|
-
children: BoneId[];
|
|
107
|
-
}
|
|
108
|
-
export interface Skeleton {
|
|
109
|
-
id: string;
|
|
110
|
-
name: string;
|
|
111
|
-
bones: Map<BoneId, Bone>;
|
|
112
|
-
rootBoneId: BoneId;
|
|
113
|
-
}
|
|
114
|
-
export interface BoneAnimation {
|
|
115
|
-
boneId: BoneId;
|
|
116
|
-
positionTrack?: AnimationTrack<Vec3>;
|
|
117
|
-
rotationTrack?: AnimationTrack<Quaternion>;
|
|
118
|
-
scaleTrack?: AnimationTrack<Vec3>;
|
|
119
|
-
}
|
|
120
|
-
export interface SkeletalClip extends AnimationClip {
|
|
121
|
-
skeletonId: string;
|
|
122
|
-
boneAnimations: BoneAnimation[];
|
|
123
|
-
}
|
|
124
|
-
export interface AnimationLayer {
|
|
125
|
-
id: LayerId;
|
|
126
|
-
name: string;
|
|
127
|
-
weight: number;
|
|
128
|
-
blendMode: BlendMode;
|
|
129
|
-
mask?: Set<BoneId>;
|
|
130
|
-
currentClip?: ClipId;
|
|
131
|
-
currentTime: number;
|
|
132
|
-
speed: number;
|
|
133
|
-
state: PlaybackState;
|
|
134
|
-
}
|
|
135
|
-
export interface BlendNode {
|
|
136
|
-
type: 'clip' | 'blend1d' | 'blend2d' | 'additive';
|
|
137
|
-
clipId?: ClipId;
|
|
138
|
-
param?: string;
|
|
139
|
-
children?: BlendNode[];
|
|
140
|
-
weights?: number[];
|
|
141
|
-
thresholds?: number[];
|
|
142
|
-
}
|
|
143
|
-
export interface AnimationBlendTree {
|
|
144
|
-
id: string;
|
|
145
|
-
name: string;
|
|
146
|
-
parameters: Map<string, number>;
|
|
147
|
-
root: BlendNode;
|
|
148
|
-
}
|
|
149
|
-
export interface AnimatorCondition {
|
|
150
|
-
parameter: string;
|
|
151
|
-
mode: 'greater' | 'less' | 'equals' | 'notEquals' | 'true' | 'false';
|
|
152
|
-
value?: number | boolean;
|
|
153
|
-
}
|
|
154
|
-
export interface AnimatorTransition {
|
|
155
|
-
from: StateId;
|
|
156
|
-
to: StateId;
|
|
157
|
-
conditions: AnimatorCondition[];
|
|
158
|
-
exitTime?: number;
|
|
159
|
-
hasExitTime: boolean;
|
|
160
|
-
blendDuration: number;
|
|
161
|
-
offset?: number;
|
|
162
|
-
}
|
|
163
|
-
export interface AnimatorState {
|
|
164
|
-
id: StateId;
|
|
165
|
-
name: string;
|
|
166
|
-
clipId?: ClipId;
|
|
167
|
-
blendTree?: AnimationBlendTree;
|
|
168
|
-
speed: number;
|
|
169
|
-
speedParameter?: string;
|
|
170
|
-
mirror?: boolean;
|
|
171
|
-
events?: AnimationEvent[];
|
|
172
|
-
}
|
|
173
|
-
export interface AnimatorStateMachine {
|
|
174
|
-
id: string;
|
|
175
|
-
name: string;
|
|
176
|
-
states: Map<StateId, AnimatorState>;
|
|
177
|
-
transitions: AnimatorTransition[];
|
|
178
|
-
entryState: StateId;
|
|
179
|
-
anyStateTransitions: AnimatorTransition[];
|
|
180
|
-
parameters: Map<string, number | boolean>;
|
|
181
|
-
subMachines?: Map<StateId, AnimatorStateMachine>;
|
|
182
|
-
}
|
|
183
|
-
export interface IKTarget {
|
|
184
|
-
boneId: BoneId;
|
|
185
|
-
position: Vec3;
|
|
186
|
-
weight: number;
|
|
187
|
-
hintPosition?: Vec3;
|
|
188
|
-
iterations?: number;
|
|
189
|
-
}
|
|
190
|
-
export interface IKChain {
|
|
191
|
-
id: string;
|
|
192
|
-
name: string;
|
|
193
|
-
endBoneId: BoneId;
|
|
194
|
-
chainLength: number;
|
|
195
|
-
target?: IKTarget;
|
|
196
|
-
}
|
|
197
|
-
export interface AnimationInstance {
|
|
198
|
-
id: string;
|
|
199
|
-
clipId: ClipId;
|
|
200
|
-
currentTime: number;
|
|
201
|
-
speed: number;
|
|
202
|
-
state: PlaybackState;
|
|
203
|
-
loop: LoopType;
|
|
204
|
-
weight: number;
|
|
205
|
-
blendMode: BlendMode;
|
|
206
|
-
startTime?: number;
|
|
207
|
-
endTime?: number;
|
|
208
|
-
pingPongDirection?: 1 | -1;
|
|
209
|
-
}
|
|
210
|
-
export interface AnimatorInstance {
|
|
211
|
-
id: string;
|
|
212
|
-
stateMachineId: string;
|
|
213
|
-
currentState: StateId;
|
|
214
|
-
previousState?: StateId;
|
|
215
|
-
transitionProgress: number;
|
|
216
|
-
isTransitioning: boolean;
|
|
217
|
-
parameters: Map<string, number | boolean>;
|
|
218
|
-
layers: AnimationLayer[];
|
|
219
|
-
}
|
|
220
|
-
export type AnimationEventType = 'started' | 'stopped' | 'paused' | 'resumed' | 'completed' | 'looped' | 'event' | 'transition-start' | 'transition-end' | 'state-enter' | 'state-exit';
|
|
221
|
-
export interface AnimationSystemEvent {
|
|
222
|
-
type: AnimationEventType;
|
|
223
|
-
animationId?: AnimationId;
|
|
224
|
-
clipId?: ClipId;
|
|
225
|
-
stateId?: StateId;
|
|
226
|
-
eventName?: string;
|
|
227
|
-
eventData?: Record<string, unknown>;
|
|
228
|
-
time: number;
|
|
229
|
-
}
|
|
230
|
-
export type AnimationEventCallback = (event: AnimationSystemEvent) => void;
|
|
231
|
-
export interface AnimationConfig {
|
|
232
|
-
defaultFrameRate: number;
|
|
233
|
-
defaultBlendDuration: number;
|
|
234
|
-
maxLayers: number;
|
|
235
|
-
ikIterations: number;
|
|
236
|
-
enableCompression: boolean;
|
|
237
|
-
compressionThreshold: number;
|
|
238
|
-
enableCaching: boolean;
|
|
239
|
-
cacheSize: number;
|
|
240
|
-
}
|
|
241
|
-
export declare const DEFAULT_ANIMATION_CONFIG: AnimationConfig;
|
|
242
|
-
export declare class NiceAnimation extends EventEmitter {
|
|
243
|
-
private config;
|
|
244
|
-
private clips;
|
|
245
|
-
private spriteSheets;
|
|
246
|
-
private skeletons;
|
|
247
|
-
private stateMachines;
|
|
248
|
-
private blendTrees;
|
|
249
|
-
private instances;
|
|
250
|
-
private animatorInstances;
|
|
251
|
-
private ikChains;
|
|
252
|
-
private evaluationCache;
|
|
253
|
-
private destroyed;
|
|
254
|
-
constructor(config?: Partial<AnimationConfig>);
|
|
255
|
-
registerClip(clip: AnimationClip): void;
|
|
256
|
-
getClip(clipId: ClipId): AnimationClip | undefined;
|
|
257
|
-
removeClip(clipId: ClipId): boolean;
|
|
258
|
-
createClip(id: ClipId, name: string, duration: number, frameRate?: number): AnimationClip;
|
|
259
|
-
addTrack<T>(clipId: ClipId, track: AnimationTrack<T>): void;
|
|
260
|
-
addKeyframe<T>(clipId: ClipId, trackId: TrackId, keyframe: Keyframe<T>): void;
|
|
261
|
-
addAnimationEvent(clipId: ClipId, time: number, name: string, data?: Record<string, unknown>): void;
|
|
262
|
-
registerSpriteSheet(sheet: SpriteSheet): void;
|
|
263
|
-
getSpriteSheet(id: string): SpriteSheet | undefined;
|
|
264
|
-
getSpriteFrame(sheetId: string, frameIndex: number): SpriteFrame | undefined;
|
|
265
|
-
registerSkeleton(skeleton: Skeleton): void;
|
|
266
|
-
getSkeleton(id: string): Skeleton | undefined;
|
|
267
|
-
createBone(skeletonId: string, id: BoneId, name: string, parentId?: BoneId): Bone | undefined;
|
|
268
|
-
getBoneWorldTransform(skeletonId: string, boneId: BoneId): Transform | undefined;
|
|
269
|
-
private multiplyQuaternions;
|
|
270
|
-
play(animationId: string, clipId: ClipId, options?: {
|
|
271
|
-
speed?: number;
|
|
272
|
-
loop?: LoopType;
|
|
273
|
-
startTime?: number;
|
|
274
|
-
endTime?: number;
|
|
275
|
-
weight?: number;
|
|
276
|
-
blendMode?: BlendMode;
|
|
277
|
-
}): AnimationInstance;
|
|
278
|
-
stop(animationId: string): void;
|
|
279
|
-
pause(animationId: string): void;
|
|
280
|
-
resume(animationId: string): void;
|
|
281
|
-
setSpeed(animationId: string, speed: number): void;
|
|
282
|
-
setWeight(animationId: string, weight: number): void;
|
|
283
|
-
seek(animationId: string, time: number): void;
|
|
284
|
-
getInstance(animationId: string): AnimationInstance | undefined;
|
|
285
|
-
removeInstance(animationId: string): void;
|
|
286
|
-
evaluateTrack<T>(track: AnimationTrack<T>, time: number): T | undefined;
|
|
287
|
-
private interpolateValue;
|
|
288
|
-
private isVec3;
|
|
289
|
-
private isQuaternion;
|
|
290
|
-
evaluateClip(clipId: ClipId, time: number): Map<string, unknown>;
|
|
291
|
-
registerStateMachine(stateMachine: AnimatorStateMachine): void;
|
|
292
|
-
createAnimatorInstance(instanceId: string, stateMachineId: string): AnimatorInstance;
|
|
293
|
-
setAnimatorParameter(instanceId: string, parameter: string, value: number | boolean): void;
|
|
294
|
-
getAnimatorParameter(instanceId: string, parameter: string): number | boolean | undefined;
|
|
295
|
-
private checkTransitionConditions;
|
|
296
|
-
registerIKChain(chain: IKChain): void;
|
|
297
|
-
setIKTarget(chainId: string, position: Vec3, weight?: number): void;
|
|
298
|
-
solveIK(skeletonId: string, chainId: string): void;
|
|
299
|
-
private normalizeVec3;
|
|
300
|
-
update(deltaTime: number): void;
|
|
301
|
-
private updateAnimator;
|
|
302
|
-
private startTransition;
|
|
303
|
-
private completeTransition;
|
|
304
|
-
registerBlendTree(tree: AnimationBlendTree): void;
|
|
305
|
-
evaluateBlendTree(treeId: string, parameters: Map<string, number>): Map<ClipId, number>;
|
|
306
|
-
private evaluateBlendNode;
|
|
307
|
-
private calculate1DBlendWeights;
|
|
308
|
-
getAllInstances(): AnimationInstance[];
|
|
309
|
-
getPlayingInstances(): AnimationInstance[];
|
|
310
|
-
stopAll(): void;
|
|
311
|
-
pauseAll(): void;
|
|
312
|
-
resumeAll(): void;
|
|
313
|
-
clearCache(): void;
|
|
314
|
-
getStats(): {
|
|
315
|
-
clips: number;
|
|
316
|
-
spriteSheets: number;
|
|
317
|
-
skeletons: number;
|
|
318
|
-
stateMachines: number;
|
|
319
|
-
instances: number;
|
|
320
|
-
animatorInstances: number;
|
|
321
|
-
cacheSize: number;
|
|
322
|
-
};
|
|
323
|
-
on(event: 'animation', callback: AnimationEventCallback): this;
|
|
324
|
-
off(event: 'animation', callback: AnimationEventCallback): this;
|
|
325
|
-
destroy(): void;
|
|
326
|
-
}
|
|
327
|
-
export declare function createAnimationSystem(config?: Partial<AnimationConfig>): NiceAnimation;
|
|
328
|
-
export declare class ClipBuilder {
|
|
329
|
-
private clip;
|
|
330
|
-
constructor(id: ClipId, name: string);
|
|
331
|
-
duration(d: number): this;
|
|
332
|
-
frameRate(fps: number): this;
|
|
333
|
-
loop(type: LoopType): this;
|
|
334
|
-
addTrack<T>(id: TrackId, property: string, keyframes: Keyframe<T>[], target?: string): this;
|
|
335
|
-
addEvent(time: number, name: string, data?: Record<string, unknown>): this;
|
|
336
|
-
build(): AnimationClip;
|
|
337
|
-
}
|
|
338
|
-
export declare function buildClip(id: ClipId, name: string): ClipBuilder;
|
|
339
|
-
export declare class StateMachineBuilder {
|
|
340
|
-
private machine;
|
|
341
|
-
private currentStateId?;
|
|
342
|
-
constructor(id: string, name: string);
|
|
343
|
-
addParameter(name: string, defaultValue: number | boolean): this;
|
|
344
|
-
addState(id: StateId, name: string, clipId?: ClipId): this;
|
|
345
|
-
setEntryState(id: StateId): this;
|
|
346
|
-
addTransition(from: StateId, to: StateId, conditions: AnimatorCondition[], blendDuration?: number): this;
|
|
347
|
-
addAnyStateTransition(to: StateId, conditions: AnimatorCondition[], blendDuration?: number): this;
|
|
348
|
-
build(): AnimatorStateMachine;
|
|
349
|
-
}
|
|
350
|
-
export declare function buildStateMachine(id: string, name: string): StateMachineBuilder;
|
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'events';
|
|
2
|
-
export type EntityId = string;
|
|
3
|
-
export type ArenaId = string;
|
|
4
|
-
export type MatchId = string;
|
|
5
|
-
export type TeamId = string;
|
|
6
|
-
export type TournamentId = string;
|
|
7
|
-
export type GameMode = 'deathmatch' | 'team_deathmatch' | 'capture_the_flag' | 'king_of_the_hill' | 'last_man_standing' | 'conquest' | 'elimination' | 'free_for_all' | 'custom';
|
|
8
|
-
export interface ArenaDefinition {
|
|
9
|
-
id: ArenaId;
|
|
10
|
-
name: string;
|
|
11
|
-
description: string;
|
|
12
|
-
mapId: string;
|
|
13
|
-
minPlayers: number;
|
|
14
|
-
maxPlayers: number;
|
|
15
|
-
supportedModes: GameMode[];
|
|
16
|
-
spawnPoints: {
|
|
17
|
-
teamId?: string;
|
|
18
|
-
position: Vector3;
|
|
19
|
-
}[];
|
|
20
|
-
objectives?: ArenaObjective[];
|
|
21
|
-
}
|
|
22
|
-
export interface Vector3 {
|
|
23
|
-
x: number;
|
|
24
|
-
y: number;
|
|
25
|
-
z: number;
|
|
26
|
-
}
|
|
27
|
-
export interface ArenaObjective {
|
|
28
|
-
id: string;
|
|
29
|
-
type: 'zone' | 'flag' | 'point' | 'target';
|
|
30
|
-
position: Vector3;
|
|
31
|
-
radius?: number;
|
|
32
|
-
teamId?: string;
|
|
33
|
-
}
|
|
34
|
-
export type MatchStatus = 'waiting' | 'countdown' | 'in_progress' | 'paused' | 'finished' | 'cancelled';
|
|
35
|
-
export interface Match {
|
|
36
|
-
id: MatchId;
|
|
37
|
-
arenaId: ArenaId;
|
|
38
|
-
mode: GameMode;
|
|
39
|
-
status: MatchStatus;
|
|
40
|
-
teams: Map<TeamId, MatchTeam>;
|
|
41
|
-
participants: Map<EntityId, MatchParticipant>;
|
|
42
|
-
spectators: Set<EntityId>;
|
|
43
|
-
scores: Map<TeamId, number>;
|
|
44
|
-
settings: MatchSettings;
|
|
45
|
-
startedAt?: number;
|
|
46
|
-
endedAt?: number;
|
|
47
|
-
duration: number;
|
|
48
|
-
winnerId?: TeamId | EntityId;
|
|
49
|
-
events: MatchEvent[];
|
|
50
|
-
}
|
|
51
|
-
export interface MatchTeam {
|
|
52
|
-
id: TeamId;
|
|
53
|
-
name: string;
|
|
54
|
-
color: string;
|
|
55
|
-
members: Set<EntityId>;
|
|
56
|
-
score: number;
|
|
57
|
-
objective?: ObjectiveProgress;
|
|
58
|
-
}
|
|
59
|
-
export interface ObjectiveProgress {
|
|
60
|
-
objectiveId: string;
|
|
61
|
-
progress: number;
|
|
62
|
-
maxProgress: number;
|
|
63
|
-
}
|
|
64
|
-
export interface MatchParticipant {
|
|
65
|
-
entityId: EntityId;
|
|
66
|
-
teamId?: TeamId;
|
|
67
|
-
kills: number;
|
|
68
|
-
deaths: number;
|
|
69
|
-
assists: number;
|
|
70
|
-
damage: number;
|
|
71
|
-
healing: number;
|
|
72
|
-
score: number;
|
|
73
|
-
isAlive: boolean;
|
|
74
|
-
respawnAt?: number;
|
|
75
|
-
streak: number;
|
|
76
|
-
}
|
|
77
|
-
export interface MatchSettings {
|
|
78
|
-
timeLimit: number;
|
|
79
|
-
scoreLimit?: number;
|
|
80
|
-
respawnEnabled: boolean;
|
|
81
|
-
respawnDelay: number;
|
|
82
|
-
friendlyFire: boolean;
|
|
83
|
-
maxRounds?: number;
|
|
84
|
-
currentRound?: number;
|
|
85
|
-
teamAutoBalance: boolean;
|
|
86
|
-
allowLateJoin: boolean;
|
|
87
|
-
}
|
|
88
|
-
export interface MatchEvent {
|
|
89
|
-
type: string;
|
|
90
|
-
timestamp: number;
|
|
91
|
-
data: Record<string, unknown>;
|
|
92
|
-
}
|
|
93
|
-
export type TournamentFormat = 'single_elimination' | 'double_elimination' | 'round_robin' | 'swiss';
|
|
94
|
-
export interface Tournament {
|
|
95
|
-
id: TournamentId;
|
|
96
|
-
name: string;
|
|
97
|
-
arenaId: ArenaId;
|
|
98
|
-
mode: GameMode;
|
|
99
|
-
format: TournamentFormat;
|
|
100
|
-
participants: Set<EntityId | TeamId>;
|
|
101
|
-
maxParticipants: number;
|
|
102
|
-
brackets: TournamentBracket[];
|
|
103
|
-
currentRound: number;
|
|
104
|
-
status: 'registration' | 'in_progress' | 'completed';
|
|
105
|
-
prizes: TournamentPrize[];
|
|
106
|
-
startTime?: number;
|
|
107
|
-
endTime?: number;
|
|
108
|
-
}
|
|
109
|
-
export interface TournamentBracket {
|
|
110
|
-
round: number;
|
|
111
|
-
matches: TournamentMatch[];
|
|
112
|
-
}
|
|
113
|
-
export interface TournamentMatch {
|
|
114
|
-
id: string;
|
|
115
|
-
participant1?: EntityId | TeamId;
|
|
116
|
-
participant2?: EntityId | TeamId;
|
|
117
|
-
winnerId?: EntityId | TeamId;
|
|
118
|
-
score1?: number;
|
|
119
|
-
score2?: number;
|
|
120
|
-
matchId?: MatchId;
|
|
121
|
-
status: 'pending' | 'in_progress' | 'completed';
|
|
122
|
-
}
|
|
123
|
-
export interface TournamentPrize {
|
|
124
|
-
place: number;
|
|
125
|
-
rewards: {
|
|
126
|
-
type: string;
|
|
127
|
-
id?: string;
|
|
128
|
-
amount?: number;
|
|
129
|
-
}[];
|
|
130
|
-
}
|
|
131
|
-
export interface MatchmakingQueue {
|
|
132
|
-
id: string;
|
|
133
|
-
arenaId: ArenaId;
|
|
134
|
-
mode: GameMode;
|
|
135
|
-
entries: QueueEntry[];
|
|
136
|
-
settings: MatchSettings;
|
|
137
|
-
}
|
|
138
|
-
export interface QueueEntry {
|
|
139
|
-
entityId: EntityId;
|
|
140
|
-
teamId?: TeamId;
|
|
141
|
-
queuedAt: number;
|
|
142
|
-
rating?: number;
|
|
143
|
-
}
|
|
144
|
-
export type ArenaEventType = 'match-created' | 'match-started' | 'match-ended' | 'match-cancelled' | 'player-joined' | 'player-left' | 'player-killed' | 'player-respawned' | 'team-scored' | 'objective-captured' | 'round-started' | 'round-ended' | 'spectator-joined' | 'spectator-left' | 'tournament-started' | 'tournament-match-started' | 'tournament-match-ended' | 'tournament-ended' | 'queue-joined' | 'queue-left' | 'queue-popped';
|
|
145
|
-
export interface ArenaEvent {
|
|
146
|
-
type: ArenaEventType;
|
|
147
|
-
matchId?: MatchId;
|
|
148
|
-
entityId?: EntityId;
|
|
149
|
-
data?: Record<string, unknown>;
|
|
150
|
-
}
|
|
151
|
-
export interface ArenaSystemConfig {
|
|
152
|
-
maxConcurrentMatches?: number;
|
|
153
|
-
defaultTimeLimit?: number;
|
|
154
|
-
defaultRespawnDelay?: number;
|
|
155
|
-
countdownDuration?: number;
|
|
156
|
-
minimumPlayersToStart?: number;
|
|
157
|
-
matchmakingInterval?: number;
|
|
158
|
-
ratingRange?: number;
|
|
159
|
-
}
|
|
160
|
-
export declare const DEFAULT_ARENA_CONFIG: ArenaSystemConfig;
|
|
161
|
-
export declare class NiceArena extends EventEmitter {
|
|
162
|
-
private arenas;
|
|
163
|
-
private matches;
|
|
164
|
-
private tournaments;
|
|
165
|
-
private queues;
|
|
166
|
-
private entityToMatch;
|
|
167
|
-
private entityRatings;
|
|
168
|
-
private nextMatchId;
|
|
169
|
-
private nextTournamentId;
|
|
170
|
-
private config;
|
|
171
|
-
private matchmakingTimer?;
|
|
172
|
-
constructor(config?: Partial<ArenaSystemConfig>);
|
|
173
|
-
defineArena(arena: ArenaDefinition): void;
|
|
174
|
-
getArena(id: ArenaId): ArenaDefinition | undefined;
|
|
175
|
-
getAllArenas(): ArenaDefinition[];
|
|
176
|
-
createMatch(arenaId: ArenaId, mode: GameMode, settings?: Partial<MatchSettings>): MatchId | null;
|
|
177
|
-
private isTeamMode;
|
|
178
|
-
joinMatch(entityId: EntityId, matchId: MatchId, teamId?: TeamId): boolean;
|
|
179
|
-
leaveMatch(entityId: EntityId): boolean;
|
|
180
|
-
private getSmallestTeam;
|
|
181
|
-
private startCountdown;
|
|
182
|
-
startMatch(matchId: MatchId): void;
|
|
183
|
-
private startMatchTimer;
|
|
184
|
-
endMatch(matchId: MatchId): void;
|
|
185
|
-
private determineWinner;
|
|
186
|
-
cancelMatch(matchId: MatchId): void;
|
|
187
|
-
recordKill(matchId: MatchId, killerId: EntityId, victimId: EntityId, assistIds?: EntityId[]): void;
|
|
188
|
-
recordDamage(matchId: MatchId, attackerId: EntityId, targetId: EntityId, amount: number): void;
|
|
189
|
-
recordHealing(matchId: MatchId, healerId: EntityId, amount: number): void;
|
|
190
|
-
respawnPlayer(matchId: MatchId, entityId: EntityId): void;
|
|
191
|
-
private checkVictoryCondition;
|
|
192
|
-
captureObjective(matchId: MatchId, entityId: EntityId, objectiveId: string): void;
|
|
193
|
-
addSpectator(matchId: MatchId, entityId: EntityId): boolean;
|
|
194
|
-
removeSpectator(matchId: MatchId, entityId: EntityId): void;
|
|
195
|
-
private updateRatings;
|
|
196
|
-
getRating(entityId: EntityId): number;
|
|
197
|
-
joinQueue(entityId: EntityId, arenaId: ArenaId, mode: GameMode): boolean;
|
|
198
|
-
leaveQueue(entityId: EntityId): void;
|
|
199
|
-
private tryMatchmaking;
|
|
200
|
-
createTournament(name: string, arenaId: ArenaId, mode: GameMode, format: TournamentFormat, maxParticipants: number, prizes?: TournamentPrize[]): TournamentId;
|
|
201
|
-
registerForTournament(tournamentId: TournamentId, participantId: EntityId | TeamId): boolean;
|
|
202
|
-
startTournament(tournamentId: TournamentId): boolean;
|
|
203
|
-
private generateBrackets;
|
|
204
|
-
reportTournamentMatchResult(tournamentId: TournamentId, matchId: string, winnerId: EntityId | TeamId): void;
|
|
205
|
-
private advanceTournamentWinner;
|
|
206
|
-
private isTournamentComplete;
|
|
207
|
-
getMatch(id: MatchId): Match | undefined;
|
|
208
|
-
getEntityMatch(entityId: EntityId): Match | undefined;
|
|
209
|
-
getActiveMatches(): Match[];
|
|
210
|
-
getTournament(id: TournamentId): Tournament | undefined;
|
|
211
|
-
getActiveTournaments(): Tournament[];
|
|
212
|
-
}
|
|
213
|
-
export declare function createArenaSystem(config?: Partial<ArenaSystemConfig>): NiceArena;
|
|
214
|
-
export declare function defineArena(options: ArenaDefinition): ArenaDefinition;
|
|
215
|
-
export default NiceArena;
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'events';
|
|
2
|
-
export type AssetId = string;
|
|
3
|
-
export type AssetType = 'image' | 'audio' | 'json' | 'text' | 'binary' | 'spritesheet' | 'font' | 'video';
|
|
4
|
-
export interface AssetDefinition {
|
|
5
|
-
id: AssetId;
|
|
6
|
-
url: string;
|
|
7
|
-
type: AssetType;
|
|
8
|
-
priority?: number;
|
|
9
|
-
metadata?: Record<string, unknown>;
|
|
10
|
-
}
|
|
11
|
-
export interface LoadedAsset<T = unknown> {
|
|
12
|
-
id: AssetId;
|
|
13
|
-
type: AssetType;
|
|
14
|
-
url: string;
|
|
15
|
-
data: T;
|
|
16
|
-
size?: number;
|
|
17
|
-
loadTime: number;
|
|
18
|
-
metadata?: Record<string, unknown>;
|
|
19
|
-
}
|
|
20
|
-
export interface LoadProgress {
|
|
21
|
-
loaded: number;
|
|
22
|
-
total: number;
|
|
23
|
-
percent: number;
|
|
24
|
-
currentAsset?: AssetId;
|
|
25
|
-
bytesLoaded: number;
|
|
26
|
-
bytesTotal: number;
|
|
27
|
-
}
|
|
28
|
-
export interface AssetBundle {
|
|
29
|
-
id: string;
|
|
30
|
-
name: string;
|
|
31
|
-
assets: AssetDefinition[];
|
|
32
|
-
preload?: boolean;
|
|
33
|
-
}
|
|
34
|
-
export type AssetEventType = 'load-start' | 'load-progress' | 'load-complete' | 'load-error' | 'bundle-start' | 'bundle-complete' | 'cache-clear';
|
|
35
|
-
export interface AssetEvent {
|
|
36
|
-
type: AssetEventType;
|
|
37
|
-
assetId?: AssetId;
|
|
38
|
-
bundleId?: string;
|
|
39
|
-
progress?: LoadProgress;
|
|
40
|
-
error?: Error;
|
|
41
|
-
}
|
|
42
|
-
export interface AssetLoaderConfig {
|
|
43
|
-
baseUrl?: string;
|
|
44
|
-
maxConcurrent?: number;
|
|
45
|
-
timeout?: number;
|
|
46
|
-
retries?: number;
|
|
47
|
-
retryDelay?: number;
|
|
48
|
-
cacheEnabled?: boolean;
|
|
49
|
-
maxCacheSize?: number;
|
|
50
|
-
}
|
|
51
|
-
export declare const DEFAULT_ASSET_LOADER_CONFIG: AssetLoaderConfig;
|
|
52
|
-
export interface AssetTypeLoader<T> {
|
|
53
|
-
type: AssetType;
|
|
54
|
-
load(url: string, onProgress?: (loaded: number, total: number) => void): Promise<T>;
|
|
55
|
-
getSize?(asset: T): number;
|
|
56
|
-
}
|
|
57
|
-
export declare class ImageLoader implements AssetTypeLoader<HTMLImageElement> {
|
|
58
|
-
type: AssetType;
|
|
59
|
-
load(url: string): Promise<HTMLImageElement>;
|
|
60
|
-
getSize(asset: HTMLImageElement): number;
|
|
61
|
-
}
|
|
62
|
-
export declare class AudioLoader implements AssetTypeLoader<HTMLAudioElement> {
|
|
63
|
-
type: AssetType;
|
|
64
|
-
load(url: string): Promise<HTMLAudioElement>;
|
|
65
|
-
}
|
|
66
|
-
export declare class JsonLoader implements AssetTypeLoader<unknown> {
|
|
67
|
-
type: AssetType;
|
|
68
|
-
load(url: string): Promise<unknown>;
|
|
69
|
-
getSize(asset: unknown): number;
|
|
70
|
-
}
|
|
71
|
-
export declare class TextLoader implements AssetTypeLoader<string> {
|
|
72
|
-
type: AssetType;
|
|
73
|
-
load(url: string): Promise<string>;
|
|
74
|
-
getSize(asset: string): number;
|
|
75
|
-
}
|
|
76
|
-
export declare class BinaryLoader implements AssetTypeLoader<ArrayBuffer> {
|
|
77
|
-
type: AssetType;
|
|
78
|
-
load(url: string, onProgress?: (loaded: number, total: number) => void): Promise<ArrayBuffer>;
|
|
79
|
-
getSize(asset: ArrayBuffer): number;
|
|
80
|
-
}
|
|
81
|
-
export interface SpritesheetFrame {
|
|
82
|
-
x: number;
|
|
83
|
-
y: number;
|
|
84
|
-
width: number;
|
|
85
|
-
height: number;
|
|
86
|
-
name?: string;
|
|
87
|
-
}
|
|
88
|
-
export interface SpritesheetData {
|
|
89
|
-
image: HTMLImageElement;
|
|
90
|
-
frames: SpritesheetFrame[];
|
|
91
|
-
animations?: Record<string, number[]>;
|
|
92
|
-
}
|
|
93
|
-
export declare class SpritesheetLoader implements AssetTypeLoader<SpritesheetData> {
|
|
94
|
-
type: AssetType;
|
|
95
|
-
private imageLoader;
|
|
96
|
-
private jsonLoader;
|
|
97
|
-
load(url: string): Promise<SpritesheetData>;
|
|
98
|
-
}
|
|
99
|
-
export declare class NiceAssetLoader extends EventEmitter {
|
|
100
|
-
private cache;
|
|
101
|
-
private loaders;
|
|
102
|
-
private bundles;
|
|
103
|
-
private loadQueue;
|
|
104
|
-
private loading;
|
|
105
|
-
private currentCacheSize;
|
|
106
|
-
private config;
|
|
107
|
-
constructor(config?: Partial<AssetLoaderConfig>);
|
|
108
|
-
private registerDefaultLoaders;
|
|
109
|
-
registerLoader<T>(loader: AssetTypeLoader<T>): void;
|
|
110
|
-
registerBundle(bundle: AssetBundle): void;
|
|
111
|
-
getBundle(id: string): AssetBundle | undefined;
|
|
112
|
-
loadBundle(bundleId: string, onProgress?: (progress: LoadProgress) => void): Promise<Map<AssetId, LoadedAsset>>;
|
|
113
|
-
load<T>(asset: AssetDefinition): Promise<LoadedAsset<T>>;
|
|
114
|
-
private loadAsset;
|
|
115
|
-
private loadWithTimeout;
|
|
116
|
-
private resolveUrl;
|
|
117
|
-
private delay;
|
|
118
|
-
private addToCache;
|
|
119
|
-
private removeFromCache;
|
|
120
|
-
get<T>(id: AssetId): LoadedAsset<T> | undefined;
|
|
121
|
-
has(id: AssetId): boolean;
|
|
122
|
-
unload(id: AssetId): boolean;
|
|
123
|
-
clearCache(): void;
|
|
124
|
-
getCacheStats(): {
|
|
125
|
-
size: number;
|
|
126
|
-
count: number;
|
|
127
|
-
maxSize: number;
|
|
128
|
-
};
|
|
129
|
-
preload(assets: AssetDefinition[], onProgress?: (progress: LoadProgress) => void): Promise<Map<AssetId, LoadedAsset>>;
|
|
130
|
-
getLoadedAssets(): AssetId[];
|
|
131
|
-
getPendingLoads(): AssetId[];
|
|
132
|
-
}
|
|
133
|
-
export declare function createAssetLoader(config?: Partial<AssetLoaderConfig>): NiceAssetLoader;
|
|
134
|
-
export declare function createAssetBundle(id: string, name: string, assets: AssetDefinition[]): AssetBundle;
|
|
135
|
-
export declare function defineAsset(id: AssetId, url: string, type: AssetType, metadata?: Record<string, unknown>): AssetDefinition;
|
|
136
|
-
export default NiceAssetLoader;
|