@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.
- package/CHANGELOG.md +8 -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,639 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NiceParticle - Game Engine Particle System
|
|
3
|
-
*
|
|
4
|
-
* Comprehensive particle system supporting:
|
|
5
|
-
* - Emitter types (point, box, circle, cone, sphere)
|
|
6
|
-
* - Particle properties (color, size, rotation, velocity)
|
|
7
|
-
* - Emission patterns and bursts
|
|
8
|
-
* - Forces (gravity, wind, attractors)
|
|
9
|
-
* - Collision and bouncing
|
|
10
|
-
* - Sub-emitters
|
|
11
|
-
* - Texture atlases and animations
|
|
12
|
-
* - Trails and ribbons
|
|
13
|
-
* - GPU-accelerated rendering
|
|
14
|
-
*
|
|
15
|
-
* @packageDocumentation
|
|
16
|
-
*/
|
|
17
|
-
import { EventEmitter } from 'events';
|
|
18
|
-
export type EmitterId = string;
|
|
19
|
-
export type ParticleId = number;
|
|
20
|
-
export type EmitterShape = 'point' | 'box' | 'circle' | 'sphere' | 'cone' | 'line' | 'ring';
|
|
21
|
-
export type EmissionMode = 'continuous' | 'burst' | 'distanceBased';
|
|
22
|
-
export type BlendMode = 'normal' | 'additive' | 'multiply' | 'screen';
|
|
23
|
-
export type SortMode = 'none' | 'byDistance' | 'byAge' | 'byDepth';
|
|
24
|
-
export interface Vec2 {
|
|
25
|
-
x: number;
|
|
26
|
-
y: number;
|
|
27
|
-
}
|
|
28
|
-
export interface Vec3 {
|
|
29
|
-
x: number;
|
|
30
|
-
y: number;
|
|
31
|
-
z: number;
|
|
32
|
-
}
|
|
33
|
-
export interface Color {
|
|
34
|
-
r: number;
|
|
35
|
-
g: number;
|
|
36
|
-
b: number;
|
|
37
|
-
a: number;
|
|
38
|
-
}
|
|
39
|
-
export interface MinMax<T = number> {
|
|
40
|
-
min: T;
|
|
41
|
-
max: T;
|
|
42
|
-
}
|
|
43
|
-
export interface Curve {
|
|
44
|
-
keys: Array<{
|
|
45
|
-
time: number;
|
|
46
|
-
value: number;
|
|
47
|
-
inTangent?: number;
|
|
48
|
-
outTangent?: number;
|
|
49
|
-
}>;
|
|
50
|
-
}
|
|
51
|
-
export type ValueOverLifetime<T = number> = {
|
|
52
|
-
type: 'constant';
|
|
53
|
-
value: T;
|
|
54
|
-
} | {
|
|
55
|
-
type: 'random';
|
|
56
|
-
range: MinMax<T>;
|
|
57
|
-
} | {
|
|
58
|
-
type: 'curve';
|
|
59
|
-
curve: Curve;
|
|
60
|
-
multiplier?: number;
|
|
61
|
-
} | {
|
|
62
|
-
type: 'twoConstants';
|
|
63
|
-
min: T;
|
|
64
|
-
max: T;
|
|
65
|
-
} | {
|
|
66
|
-
type: 'twoCurves';
|
|
67
|
-
min: Curve;
|
|
68
|
-
max: Curve;
|
|
69
|
-
multiplier?: number;
|
|
70
|
-
};
|
|
71
|
-
export type ColorOverLifetime = {
|
|
72
|
-
type: 'constant';
|
|
73
|
-
color: Color;
|
|
74
|
-
} | {
|
|
75
|
-
type: 'gradient';
|
|
76
|
-
gradient: ColorGradient;
|
|
77
|
-
} | {
|
|
78
|
-
type: 'twoGradients';
|
|
79
|
-
min: ColorGradient;
|
|
80
|
-
max: ColorGradient;
|
|
81
|
-
};
|
|
82
|
-
export interface ColorGradient {
|
|
83
|
-
colorKeys: Array<{
|
|
84
|
-
time: number;
|
|
85
|
-
color: Color;
|
|
86
|
-
}>;
|
|
87
|
-
alphaKeys: Array<{
|
|
88
|
-
time: number;
|
|
89
|
-
alpha: number;
|
|
90
|
-
}>;
|
|
91
|
-
}
|
|
92
|
-
export interface Particle {
|
|
93
|
-
id: ParticleId;
|
|
94
|
-
emitterId: EmitterId;
|
|
95
|
-
position: Vec3;
|
|
96
|
-
velocity: Vec3;
|
|
97
|
-
acceleration: Vec3;
|
|
98
|
-
rotation: number;
|
|
99
|
-
rotationVelocity: number;
|
|
100
|
-
size: Vec2;
|
|
101
|
-
startSize: Vec2;
|
|
102
|
-
color: Color;
|
|
103
|
-
startColor: Color;
|
|
104
|
-
lifetime: number;
|
|
105
|
-
age: number;
|
|
106
|
-
normalizedAge: number;
|
|
107
|
-
alive: boolean;
|
|
108
|
-
frame?: number;
|
|
109
|
-
customData?: Record<string, unknown>;
|
|
110
|
-
}
|
|
111
|
-
export interface BoxShape {
|
|
112
|
-
type: 'box';
|
|
113
|
-
size: Vec3;
|
|
114
|
-
emitFromEdge?: boolean;
|
|
115
|
-
}
|
|
116
|
-
export interface CircleShape {
|
|
117
|
-
type: 'circle';
|
|
118
|
-
radius: number;
|
|
119
|
-
arc?: number;
|
|
120
|
-
emitFromEdge?: boolean;
|
|
121
|
-
}
|
|
122
|
-
export interface SphereShape {
|
|
123
|
-
type: 'sphere';
|
|
124
|
-
radius: number;
|
|
125
|
-
emitFromShell?: boolean;
|
|
126
|
-
}
|
|
127
|
-
export interface ConeShape {
|
|
128
|
-
type: 'cone';
|
|
129
|
-
angle: number;
|
|
130
|
-
radius: number;
|
|
131
|
-
length?: number;
|
|
132
|
-
emitFrom?: 'base' | 'volume' | 'shell';
|
|
133
|
-
}
|
|
134
|
-
export interface LineShape {
|
|
135
|
-
type: 'line';
|
|
136
|
-
start: Vec3;
|
|
137
|
-
end: Vec3;
|
|
138
|
-
}
|
|
139
|
-
export interface RingShape {
|
|
140
|
-
type: 'ring';
|
|
141
|
-
radius: number;
|
|
142
|
-
thickness: number;
|
|
143
|
-
arc?: number;
|
|
144
|
-
}
|
|
145
|
-
export interface PointShape {
|
|
146
|
-
type: 'point';
|
|
147
|
-
}
|
|
148
|
-
export type ShapeConfig = PointShape | BoxShape | CircleShape | SphereShape | ConeShape | LineShape | RingShape;
|
|
149
|
-
export interface GravityForce {
|
|
150
|
-
type: 'gravity';
|
|
151
|
-
direction: Vec3;
|
|
152
|
-
strength: number;
|
|
153
|
-
}
|
|
154
|
-
export interface WindForce {
|
|
155
|
-
type: 'wind';
|
|
156
|
-
direction: Vec3;
|
|
157
|
-
strength: number;
|
|
158
|
-
turbulence?: number;
|
|
159
|
-
frequency?: number;
|
|
160
|
-
}
|
|
161
|
-
export interface AttractorForce {
|
|
162
|
-
type: 'attractor';
|
|
163
|
-
position: Vec3;
|
|
164
|
-
strength: number;
|
|
165
|
-
radius: number;
|
|
166
|
-
falloff?: 'linear' | 'squared' | 'none';
|
|
167
|
-
}
|
|
168
|
-
export interface VortexForce {
|
|
169
|
-
type: 'vortex';
|
|
170
|
-
position: Vec3;
|
|
171
|
-
axis: Vec3;
|
|
172
|
-
strength: number;
|
|
173
|
-
radius: number;
|
|
174
|
-
}
|
|
175
|
-
export interface NoiseForce {
|
|
176
|
-
type: 'noise';
|
|
177
|
-
strength: Vec3;
|
|
178
|
-
frequency: number;
|
|
179
|
-
scrollSpeed?: Vec3;
|
|
180
|
-
octaves?: number;
|
|
181
|
-
}
|
|
182
|
-
export interface DragForce {
|
|
183
|
-
type: 'drag';
|
|
184
|
-
coefficient: number;
|
|
185
|
-
}
|
|
186
|
-
export type Force = GravityForce | WindForce | AttractorForce | VortexForce | NoiseForce | DragForce;
|
|
187
|
-
export interface Burst {
|
|
188
|
-
time: number;
|
|
189
|
-
count: number | MinMax<number>;
|
|
190
|
-
cycles?: number;
|
|
191
|
-
interval?: number;
|
|
192
|
-
probability?: number;
|
|
193
|
-
}
|
|
194
|
-
export interface EmissionConfig {
|
|
195
|
-
mode: EmissionMode;
|
|
196
|
-
rateOverTime?: ValueOverLifetime;
|
|
197
|
-
rateOverDistance?: ValueOverLifetime;
|
|
198
|
-
bursts?: Burst[];
|
|
199
|
-
}
|
|
200
|
-
export interface TextureConfig {
|
|
201
|
-
src?: string;
|
|
202
|
-
frameCount?: number;
|
|
203
|
-
rows?: number;
|
|
204
|
-
columns?: number;
|
|
205
|
-
animationMode?: 'lifetime' | 'fps' | 'randomRow';
|
|
206
|
-
fps?: number;
|
|
207
|
-
startFrame?: number | MinMax<number>;
|
|
208
|
-
}
|
|
209
|
-
export interface TrailConfig {
|
|
210
|
-
enabled: boolean;
|
|
211
|
-
lifetime: number;
|
|
212
|
-
minVertexDistance: number;
|
|
213
|
-
width: ValueOverLifetime;
|
|
214
|
-
color: ColorOverLifetime;
|
|
215
|
-
textureMode?: 'stretch' | 'tile';
|
|
216
|
-
inheritParticleColor?: boolean;
|
|
217
|
-
}
|
|
218
|
-
export interface CollisionConfig {
|
|
219
|
-
enabled: boolean;
|
|
220
|
-
type: 'plane' | 'world';
|
|
221
|
-
bounce?: number;
|
|
222
|
-
lifetimeLoss?: number;
|
|
223
|
-
dampen?: number;
|
|
224
|
-
planes?: Array<{
|
|
225
|
-
position: Vec3;
|
|
226
|
-
normal: Vec3;
|
|
227
|
-
}>;
|
|
228
|
-
}
|
|
229
|
-
export interface SubEmitterConfig {
|
|
230
|
-
emitterId: EmitterId;
|
|
231
|
-
trigger: 'birth' | 'death' | 'collision' | 'manual';
|
|
232
|
-
probability?: number;
|
|
233
|
-
inheritVelocity?: number;
|
|
234
|
-
inheritColor?: boolean;
|
|
235
|
-
}
|
|
236
|
-
export interface EmitterConfig {
|
|
237
|
-
id: EmitterId;
|
|
238
|
-
name?: string;
|
|
239
|
-
maxParticles: number;
|
|
240
|
-
duration: number;
|
|
241
|
-
looping: boolean;
|
|
242
|
-
prewarm?: boolean;
|
|
243
|
-
startDelay?: ValueOverLifetime;
|
|
244
|
-
emission: EmissionConfig;
|
|
245
|
-
shape: ShapeConfig;
|
|
246
|
-
startLifetime: ValueOverLifetime;
|
|
247
|
-
startSpeed: ValueOverLifetime;
|
|
248
|
-
startSize: ValueOverLifetime<Vec2> | ValueOverLifetime<number>;
|
|
249
|
-
startRotation?: ValueOverLifetime;
|
|
250
|
-
startColor: ColorOverLifetime;
|
|
251
|
-
velocityOverLifetime?: {
|
|
252
|
-
linear?: ValueOverLifetime<Vec3>;
|
|
253
|
-
orbital?: ValueOverLifetime<Vec3>;
|
|
254
|
-
radial?: ValueOverLifetime;
|
|
255
|
-
speedModifier?: ValueOverLifetime;
|
|
256
|
-
};
|
|
257
|
-
sizeOverLifetime?: ValueOverLifetime;
|
|
258
|
-
rotationOverLifetime?: ValueOverLifetime;
|
|
259
|
-
colorOverLifetime?: ColorOverLifetime;
|
|
260
|
-
forces?: Force[];
|
|
261
|
-
texture?: TextureConfig;
|
|
262
|
-
blendMode: BlendMode;
|
|
263
|
-
sortMode?: SortMode;
|
|
264
|
-
renderMode?: 'billboard' | 'stretchedBillboard' | 'horizontalBillboard' | 'mesh';
|
|
265
|
-
trails?: TrailConfig;
|
|
266
|
-
collision?: CollisionConfig;
|
|
267
|
-
subEmitters?: SubEmitterConfig[];
|
|
268
|
-
simulationSpace?: 'local' | 'world';
|
|
269
|
-
scalingMode?: 'local' | 'shape' | 'hierarchy';
|
|
270
|
-
customData?: Record<string, unknown>;
|
|
271
|
-
}
|
|
272
|
-
export interface EmitterInstance {
|
|
273
|
-
id: string;
|
|
274
|
-
configId: EmitterId;
|
|
275
|
-
position: Vec3;
|
|
276
|
-
rotation: Vec3;
|
|
277
|
-
scale: Vec3;
|
|
278
|
-
isPlaying: boolean;
|
|
279
|
-
isPaused: boolean;
|
|
280
|
-
time: number;
|
|
281
|
-
duration: number;
|
|
282
|
-
particles: Particle[];
|
|
283
|
-
particlePool: Particle[];
|
|
284
|
-
nextParticleId: number;
|
|
285
|
-
emissionAccumulator: number;
|
|
286
|
-
burstIndex: number;
|
|
287
|
-
burstCycles: Map<number, number>;
|
|
288
|
-
lastPosition?: Vec3;
|
|
289
|
-
distanceTraveled: number;
|
|
290
|
-
customData?: Record<string, unknown>;
|
|
291
|
-
}
|
|
292
|
-
export type ParticleEventType = 'emitter-started' | 'emitter-stopped' | 'emitter-paused' | 'emitter-resumed' | 'emitter-completed' | 'particle-spawned' | 'particle-died' | 'particle-collision';
|
|
293
|
-
export interface ParticleEvent {
|
|
294
|
-
type: ParticleEventType;
|
|
295
|
-
emitterInstanceId?: string;
|
|
296
|
-
emitterId?: EmitterId;
|
|
297
|
-
particle?: Particle;
|
|
298
|
-
timestamp: number;
|
|
299
|
-
}
|
|
300
|
-
export type ParticleEventCallback = (event: ParticleEvent) => void;
|
|
301
|
-
export interface ParticleSystemConfig {
|
|
302
|
-
maxEmitters: number;
|
|
303
|
-
maxParticlesTotal: number;
|
|
304
|
-
fixedDeltaTime: number;
|
|
305
|
-
maxSubSteps: number;
|
|
306
|
-
cullDistance?: number;
|
|
307
|
-
lodLevels?: Array<{
|
|
308
|
-
distance: number;
|
|
309
|
-
ratio: number;
|
|
310
|
-
}>;
|
|
311
|
-
}
|
|
312
|
-
export declare const DEFAULT_PARTICLE_CONFIG: ParticleSystemConfig;
|
|
313
|
-
export declare const DEFAULT_EMITTER_CONFIG: Partial<EmitterConfig>;
|
|
314
|
-
export declare class NiceParticle extends EventEmitter {
|
|
315
|
-
private config;
|
|
316
|
-
private emitterConfigs;
|
|
317
|
-
private emitterInstances;
|
|
318
|
-
private nextInstanceId;
|
|
319
|
-
private totalParticles;
|
|
320
|
-
private destroyed;
|
|
321
|
-
constructor(config?: Partial<ParticleSystemConfig>);
|
|
322
|
-
registerEmitter(config: Partial<EmitterConfig> & {
|
|
323
|
-
id: EmitterId;
|
|
324
|
-
}): void;
|
|
325
|
-
getEmitterConfig(emitterId: EmitterId): EmitterConfig | undefined;
|
|
326
|
-
unregisterEmitter(emitterId: EmitterId): void;
|
|
327
|
-
createEmitter(emitterId: EmitterId, position?: Vec3, rotation?: Vec3): string;
|
|
328
|
-
destroyEmitter(instanceId: string): void;
|
|
329
|
-
play(instanceId: string): void;
|
|
330
|
-
stop(instanceId: string, clear?: boolean): void;
|
|
331
|
-
pause(instanceId: string): void;
|
|
332
|
-
resume(instanceId: string): void;
|
|
333
|
-
setPosition(instanceId: string, position: Vec3): void;
|
|
334
|
-
setRotation(instanceId: string, rotation: Vec3): void;
|
|
335
|
-
setScale(instanceId: string, scale: Vec3): void;
|
|
336
|
-
getInstance(instanceId: string): EmitterInstance | undefined;
|
|
337
|
-
update(deltaTime: number): void;
|
|
338
|
-
private updateEmitter;
|
|
339
|
-
private emitParticles;
|
|
340
|
-
private canSpawnParticle;
|
|
341
|
-
private spawnParticle;
|
|
342
|
-
private createParticle;
|
|
343
|
-
private calculateSpawnPosition;
|
|
344
|
-
private calculateInitialVelocity;
|
|
345
|
-
private updateParticles;
|
|
346
|
-
private applyForces;
|
|
347
|
-
getParticles(instanceId: string): Particle[];
|
|
348
|
-
getParticleCount(instanceId?: string): number;
|
|
349
|
-
getAllEmitters(): EmitterInstance[];
|
|
350
|
-
getActiveEmitters(): EmitterInstance[];
|
|
351
|
-
getStats(): {
|
|
352
|
-
emitterConfigs: number;
|
|
353
|
-
activeEmitters: number;
|
|
354
|
-
totalEmitters: number;
|
|
355
|
-
totalParticles: number;
|
|
356
|
-
maxParticles: number;
|
|
357
|
-
};
|
|
358
|
-
on(event: 'particle', callback: ParticleEventCallback): this;
|
|
359
|
-
off(event: 'particle', callback: ParticleEventCallback): this;
|
|
360
|
-
clear(): void;
|
|
361
|
-
destroy(): void;
|
|
362
|
-
}
|
|
363
|
-
export declare function createParticleSystem(config?: Partial<ParticleSystemConfig>): NiceParticle;
|
|
364
|
-
export declare const PARTICLE_PRESETS: {
|
|
365
|
-
readonly fire: {
|
|
366
|
-
readonly id: "fire";
|
|
367
|
-
readonly maxParticles: 500;
|
|
368
|
-
readonly duration: 0;
|
|
369
|
-
readonly looping: true;
|
|
370
|
-
readonly emission: {
|
|
371
|
-
readonly mode: "continuous";
|
|
372
|
-
readonly rateOverTime: {
|
|
373
|
-
readonly type: "constant";
|
|
374
|
-
readonly value: 50;
|
|
375
|
-
};
|
|
376
|
-
};
|
|
377
|
-
readonly shape: {
|
|
378
|
-
readonly type: "circle";
|
|
379
|
-
readonly radius: 0.5;
|
|
380
|
-
};
|
|
381
|
-
readonly startLifetime: {
|
|
382
|
-
readonly type: "random";
|
|
383
|
-
readonly range: {
|
|
384
|
-
readonly min: 0.5;
|
|
385
|
-
readonly max: 1.5;
|
|
386
|
-
};
|
|
387
|
-
};
|
|
388
|
-
readonly startSpeed: {
|
|
389
|
-
readonly type: "random";
|
|
390
|
-
readonly range: {
|
|
391
|
-
readonly min: 2;
|
|
392
|
-
readonly max: 5;
|
|
393
|
-
};
|
|
394
|
-
};
|
|
395
|
-
readonly startSize: {
|
|
396
|
-
readonly type: "random";
|
|
397
|
-
readonly range: {
|
|
398
|
-
readonly min: 0.3;
|
|
399
|
-
readonly max: 0.8;
|
|
400
|
-
};
|
|
401
|
-
};
|
|
402
|
-
readonly startColor: {
|
|
403
|
-
readonly type: "gradient";
|
|
404
|
-
readonly gradient: {
|
|
405
|
-
readonly colorKeys: readonly [{
|
|
406
|
-
readonly time: 0;
|
|
407
|
-
readonly color: {
|
|
408
|
-
readonly r: 1;
|
|
409
|
-
readonly g: 0.8;
|
|
410
|
-
readonly b: 0.2;
|
|
411
|
-
readonly a: 1;
|
|
412
|
-
};
|
|
413
|
-
}, {
|
|
414
|
-
readonly time: 0.5;
|
|
415
|
-
readonly color: {
|
|
416
|
-
readonly r: 1;
|
|
417
|
-
readonly g: 0.3;
|
|
418
|
-
readonly b: 0.1;
|
|
419
|
-
readonly a: 1;
|
|
420
|
-
};
|
|
421
|
-
}, {
|
|
422
|
-
readonly time: 1;
|
|
423
|
-
readonly color: {
|
|
424
|
-
readonly r: 0.5;
|
|
425
|
-
readonly g: 0.1;
|
|
426
|
-
readonly b: 0.1;
|
|
427
|
-
readonly a: 1;
|
|
428
|
-
};
|
|
429
|
-
}];
|
|
430
|
-
readonly alphaKeys: readonly [{
|
|
431
|
-
readonly time: 0;
|
|
432
|
-
readonly alpha: 1;
|
|
433
|
-
}, {
|
|
434
|
-
readonly time: 0.8;
|
|
435
|
-
readonly alpha: 0.5;
|
|
436
|
-
}, {
|
|
437
|
-
readonly time: 1;
|
|
438
|
-
readonly alpha: 0;
|
|
439
|
-
}];
|
|
440
|
-
};
|
|
441
|
-
};
|
|
442
|
-
readonly sizeOverLifetime: {
|
|
443
|
-
readonly type: "curve";
|
|
444
|
-
readonly curve: {
|
|
445
|
-
readonly keys: readonly [{
|
|
446
|
-
readonly time: 0;
|
|
447
|
-
readonly value: 1;
|
|
448
|
-
}, {
|
|
449
|
-
readonly time: 0.3;
|
|
450
|
-
readonly value: 1.5;
|
|
451
|
-
}, {
|
|
452
|
-
readonly time: 1;
|
|
453
|
-
readonly value: 0;
|
|
454
|
-
}];
|
|
455
|
-
};
|
|
456
|
-
};
|
|
457
|
-
readonly forces: readonly [{
|
|
458
|
-
readonly type: "gravity";
|
|
459
|
-
readonly direction: {
|
|
460
|
-
readonly x: 0;
|
|
461
|
-
readonly y: 1;
|
|
462
|
-
readonly z: 0;
|
|
463
|
-
};
|
|
464
|
-
readonly strength: 2;
|
|
465
|
-
}];
|
|
466
|
-
readonly blendMode: "additive";
|
|
467
|
-
};
|
|
468
|
-
readonly smoke: {
|
|
469
|
-
readonly id: "smoke";
|
|
470
|
-
readonly maxParticles: 200;
|
|
471
|
-
readonly duration: 0;
|
|
472
|
-
readonly looping: true;
|
|
473
|
-
readonly emission: {
|
|
474
|
-
readonly mode: "continuous";
|
|
475
|
-
readonly rateOverTime: {
|
|
476
|
-
readonly type: "constant";
|
|
477
|
-
readonly value: 20;
|
|
478
|
-
};
|
|
479
|
-
};
|
|
480
|
-
readonly shape: {
|
|
481
|
-
readonly type: "circle";
|
|
482
|
-
readonly radius: 0.3;
|
|
483
|
-
};
|
|
484
|
-
readonly startLifetime: {
|
|
485
|
-
readonly type: "random";
|
|
486
|
-
readonly range: {
|
|
487
|
-
readonly min: 2;
|
|
488
|
-
readonly max: 4;
|
|
489
|
-
};
|
|
490
|
-
};
|
|
491
|
-
readonly startSpeed: {
|
|
492
|
-
readonly type: "random";
|
|
493
|
-
readonly range: {
|
|
494
|
-
readonly min: 0.5;
|
|
495
|
-
readonly max: 1.5;
|
|
496
|
-
};
|
|
497
|
-
};
|
|
498
|
-
readonly startSize: {
|
|
499
|
-
readonly type: "random";
|
|
500
|
-
readonly range: {
|
|
501
|
-
readonly min: 0.5;
|
|
502
|
-
readonly max: 1;
|
|
503
|
-
};
|
|
504
|
-
};
|
|
505
|
-
readonly startColor: {
|
|
506
|
-
readonly type: "constant";
|
|
507
|
-
readonly color: {
|
|
508
|
-
readonly r: 0.3;
|
|
509
|
-
readonly g: 0.3;
|
|
510
|
-
readonly b: 0.3;
|
|
511
|
-
readonly a: 0.5;
|
|
512
|
-
};
|
|
513
|
-
};
|
|
514
|
-
readonly sizeOverLifetime: {
|
|
515
|
-
readonly type: "curve";
|
|
516
|
-
readonly curve: {
|
|
517
|
-
readonly keys: readonly [{
|
|
518
|
-
readonly time: 0;
|
|
519
|
-
readonly value: 1;
|
|
520
|
-
}, {
|
|
521
|
-
readonly time: 1;
|
|
522
|
-
readonly value: 3;
|
|
523
|
-
}];
|
|
524
|
-
};
|
|
525
|
-
};
|
|
526
|
-
readonly colorOverLifetime: {
|
|
527
|
-
readonly type: "gradient";
|
|
528
|
-
readonly gradient: {
|
|
529
|
-
readonly colorKeys: readonly [{
|
|
530
|
-
readonly time: 0;
|
|
531
|
-
readonly color: {
|
|
532
|
-
readonly r: 0.3;
|
|
533
|
-
readonly g: 0.3;
|
|
534
|
-
readonly b: 0.3;
|
|
535
|
-
readonly a: 1;
|
|
536
|
-
};
|
|
537
|
-
}];
|
|
538
|
-
readonly alphaKeys: readonly [{
|
|
539
|
-
readonly time: 0;
|
|
540
|
-
readonly alpha: 0.5;
|
|
541
|
-
}, {
|
|
542
|
-
readonly time: 1;
|
|
543
|
-
readonly alpha: 0;
|
|
544
|
-
}];
|
|
545
|
-
};
|
|
546
|
-
};
|
|
547
|
-
readonly forces: readonly [{
|
|
548
|
-
readonly type: "gravity";
|
|
549
|
-
readonly direction: {
|
|
550
|
-
readonly x: 0;
|
|
551
|
-
readonly y: 1;
|
|
552
|
-
readonly z: 0;
|
|
553
|
-
};
|
|
554
|
-
readonly strength: 0.5;
|
|
555
|
-
}, {
|
|
556
|
-
readonly type: "wind";
|
|
557
|
-
readonly direction: {
|
|
558
|
-
readonly x: 1;
|
|
559
|
-
readonly y: 0;
|
|
560
|
-
readonly z: 0;
|
|
561
|
-
};
|
|
562
|
-
readonly strength: 0.3;
|
|
563
|
-
}];
|
|
564
|
-
readonly blendMode: "normal";
|
|
565
|
-
};
|
|
566
|
-
readonly explosion: {
|
|
567
|
-
readonly id: "explosion";
|
|
568
|
-
readonly maxParticles: 100;
|
|
569
|
-
readonly duration: 0.5;
|
|
570
|
-
readonly looping: false;
|
|
571
|
-
readonly emission: {
|
|
572
|
-
readonly mode: "burst";
|
|
573
|
-
readonly bursts: readonly [{
|
|
574
|
-
readonly time: 0;
|
|
575
|
-
readonly count: 100;
|
|
576
|
-
}];
|
|
577
|
-
};
|
|
578
|
-
readonly shape: {
|
|
579
|
-
readonly type: "sphere";
|
|
580
|
-
readonly radius: 0.1;
|
|
581
|
-
readonly emitFromShell: true;
|
|
582
|
-
};
|
|
583
|
-
readonly startLifetime: {
|
|
584
|
-
readonly type: "random";
|
|
585
|
-
readonly range: {
|
|
586
|
-
readonly min: 0.3;
|
|
587
|
-
readonly max: 0.8;
|
|
588
|
-
};
|
|
589
|
-
};
|
|
590
|
-
readonly startSpeed: {
|
|
591
|
-
readonly type: "random";
|
|
592
|
-
readonly range: {
|
|
593
|
-
readonly min: 5;
|
|
594
|
-
readonly max: 15;
|
|
595
|
-
};
|
|
596
|
-
};
|
|
597
|
-
readonly startSize: {
|
|
598
|
-
readonly type: "random";
|
|
599
|
-
readonly range: {
|
|
600
|
-
readonly min: 0.2;
|
|
601
|
-
readonly max: 0.5;
|
|
602
|
-
};
|
|
603
|
-
};
|
|
604
|
-
readonly startColor: {
|
|
605
|
-
readonly type: "gradient";
|
|
606
|
-
readonly gradient: {
|
|
607
|
-
readonly colorKeys: readonly [{
|
|
608
|
-
readonly time: 0;
|
|
609
|
-
readonly color: {
|
|
610
|
-
readonly r: 1;
|
|
611
|
-
readonly g: 1;
|
|
612
|
-
readonly b: 0.5;
|
|
613
|
-
readonly a: 1;
|
|
614
|
-
};
|
|
615
|
-
}, {
|
|
616
|
-
readonly time: 0.5;
|
|
617
|
-
readonly color: {
|
|
618
|
-
readonly r: 1;
|
|
619
|
-
readonly g: 0.5;
|
|
620
|
-
readonly b: 0.1;
|
|
621
|
-
readonly a: 1;
|
|
622
|
-
};
|
|
623
|
-
}];
|
|
624
|
-
readonly alphaKeys: readonly [{
|
|
625
|
-
readonly time: 0;
|
|
626
|
-
readonly alpha: 1;
|
|
627
|
-
}, {
|
|
628
|
-
readonly time: 1;
|
|
629
|
-
readonly alpha: 0;
|
|
630
|
-
}];
|
|
631
|
-
};
|
|
632
|
-
};
|
|
633
|
-
readonly forces: readonly [{
|
|
634
|
-
readonly type: "drag";
|
|
635
|
-
readonly coefficient: 2;
|
|
636
|
-
}];
|
|
637
|
-
readonly blendMode: "additive";
|
|
638
|
-
};
|
|
639
|
-
};
|