@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,191 +0,0 @@
|
|
|
1
|
-
export type PlayerId = string;
|
|
2
|
-
export type LeaderboardId = string;
|
|
3
|
-
export type EntryId = string;
|
|
4
|
-
export type TimePeriod = 'hourly' | 'daily' | 'weekly' | 'monthly' | 'all-time';
|
|
5
|
-
export interface LeaderboardEntry {
|
|
6
|
-
id: EntryId;
|
|
7
|
-
playerId: PlayerId;
|
|
8
|
-
playerName: string;
|
|
9
|
-
playerAvatar?: string;
|
|
10
|
-
score: number;
|
|
11
|
-
rank?: number;
|
|
12
|
-
timestamp: number;
|
|
13
|
-
metadata?: Record<string, unknown>;
|
|
14
|
-
/** Verified by server */
|
|
15
|
-
verified?: boolean;
|
|
16
|
-
}
|
|
17
|
-
export type ScoreOrder = 'ascending' | 'descending';
|
|
18
|
-
export interface LeaderboardDefinition {
|
|
19
|
-
id: LeaderboardId;
|
|
20
|
-
name: string;
|
|
21
|
-
description?: string;
|
|
22
|
-
icon?: string;
|
|
23
|
-
/** Score sorting (descending = higher is better) */
|
|
24
|
-
scoreOrder: ScoreOrder;
|
|
25
|
-
/** Score format */
|
|
26
|
-
scoreFormat?: 'number' | 'time' | 'percentage' | 'custom';
|
|
27
|
-
/** Score suffix (e.g., "pts", "s") */
|
|
28
|
-
scoreSuffix?: string;
|
|
29
|
-
/** Time periods supported */
|
|
30
|
-
timePeriods: TimePeriod[];
|
|
31
|
-
/** Max entries to keep per period */
|
|
32
|
-
maxEntries: number;
|
|
33
|
-
/** Allow multiple entries per player */
|
|
34
|
-
allowMultipleEntries: boolean;
|
|
35
|
-
/** Keep only best score per player */
|
|
36
|
-
keepBestOnly: boolean;
|
|
37
|
-
/** Require verification */
|
|
38
|
-
requiresVerification: boolean;
|
|
39
|
-
/** Is public */
|
|
40
|
-
isPublic: boolean;
|
|
41
|
-
/** Tags for filtering */
|
|
42
|
-
tags: string[];
|
|
43
|
-
}
|
|
44
|
-
export interface PlayerProfile {
|
|
45
|
-
id: PlayerId;
|
|
46
|
-
name: string;
|
|
47
|
-
avatar?: string;
|
|
48
|
-
country?: string;
|
|
49
|
-
level?: number;
|
|
50
|
-
joinDate: number;
|
|
51
|
-
totalScore: number;
|
|
52
|
-
gamesPlayed: number;
|
|
53
|
-
bestRanks: Record<LeaderboardId, number>;
|
|
54
|
-
achievements?: string[];
|
|
55
|
-
customData?: Record<string, unknown>;
|
|
56
|
-
}
|
|
57
|
-
export interface LeaderboardQuery {
|
|
58
|
-
leaderboardId: LeaderboardId;
|
|
59
|
-
timePeriod?: TimePeriod;
|
|
60
|
-
/** Starting rank (1-based) */
|
|
61
|
-
startRank?: number;
|
|
62
|
-
/** Number of entries */
|
|
63
|
-
limit?: number;
|
|
64
|
-
/** Filter by country */
|
|
65
|
-
country?: string;
|
|
66
|
-
/** Filter by friends */
|
|
67
|
-
friendIds?: PlayerId[];
|
|
68
|
-
/** Include player's rank */
|
|
69
|
-
includePlayerRank?: PlayerId;
|
|
70
|
-
/** Search by name */
|
|
71
|
-
searchName?: string;
|
|
72
|
-
}
|
|
73
|
-
export interface LeaderboardResult {
|
|
74
|
-
leaderboardId: LeaderboardId;
|
|
75
|
-
timePeriod: TimePeriod;
|
|
76
|
-
entries: LeaderboardEntry[];
|
|
77
|
-
totalEntries: number;
|
|
78
|
-
playerEntry?: LeaderboardEntry;
|
|
79
|
-
hasMore: boolean;
|
|
80
|
-
}
|
|
81
|
-
export interface ScoreSubmission {
|
|
82
|
-
leaderboardId: LeaderboardId;
|
|
83
|
-
playerId: PlayerId;
|
|
84
|
-
playerName: string;
|
|
85
|
-
score: number;
|
|
86
|
-
metadata?: Record<string, unknown>;
|
|
87
|
-
/** Replay data for verification */
|
|
88
|
-
replayData?: unknown;
|
|
89
|
-
}
|
|
90
|
-
export interface SubmissionResult {
|
|
91
|
-
success: boolean;
|
|
92
|
-
entry?: LeaderboardEntry;
|
|
93
|
-
previousBest?: number;
|
|
94
|
-
isNewBest: boolean;
|
|
95
|
-
newRank?: number;
|
|
96
|
-
previousRank?: number;
|
|
97
|
-
error?: string;
|
|
98
|
-
}
|
|
99
|
-
export type LeaderboardEventType = 'score-submitted' | 'new-high-score' | 'rank-changed' | 'leaderboard-updated' | 'profile-updated' | 'sync-completed' | 'sync-failed';
|
|
100
|
-
export interface LeaderboardEvent {
|
|
101
|
-
type: LeaderboardEventType;
|
|
102
|
-
timestamp: number;
|
|
103
|
-
data: unknown;
|
|
104
|
-
}
|
|
105
|
-
export type LeaderboardEventCallback = (event: LeaderboardEvent) => void;
|
|
106
|
-
export interface LeaderboardStorage {
|
|
107
|
-
submitScore(submission: ScoreSubmission): Promise<SubmissionResult>;
|
|
108
|
-
getEntries(query: LeaderboardQuery): Promise<LeaderboardResult>;
|
|
109
|
-
getPlayerProfile(playerId: PlayerId): Promise<PlayerProfile | null>;
|
|
110
|
-
updatePlayerProfile(profile: Partial<PlayerProfile> & {
|
|
111
|
-
id: PlayerId;
|
|
112
|
-
}): Promise<boolean>;
|
|
113
|
-
}
|
|
114
|
-
export interface LeaderboardConfig {
|
|
115
|
-
/** Use local storage fallback */
|
|
116
|
-
useLocalStorage: boolean;
|
|
117
|
-
/** Local storage key prefix */
|
|
118
|
-
storagePrefix: string;
|
|
119
|
-
/** Auto-sync interval (ms, 0 = disabled) */
|
|
120
|
-
syncInterval: number;
|
|
121
|
-
/** Max local entries per board */
|
|
122
|
-
maxLocalEntries: number;
|
|
123
|
-
/** Remote storage adapter */
|
|
124
|
-
remoteStorage?: LeaderboardStorage;
|
|
125
|
-
/** Default time period */
|
|
126
|
-
defaultTimePeriod: TimePeriod;
|
|
127
|
-
}
|
|
128
|
-
export declare const DEFAULT_LEADERBOARD_CONFIG: LeaderboardConfig;
|
|
129
|
-
export declare class NiceLeaderboard {
|
|
130
|
-
private config;
|
|
131
|
-
private leaderboards;
|
|
132
|
-
private entries;
|
|
133
|
-
private profiles;
|
|
134
|
-
private syncTimer?;
|
|
135
|
-
private pendingSubmissions;
|
|
136
|
-
private idCounter;
|
|
137
|
-
private eventListeners;
|
|
138
|
-
constructor(config?: Partial<LeaderboardConfig>);
|
|
139
|
-
on(event: LeaderboardEventType, callback: LeaderboardEventCallback): () => void;
|
|
140
|
-
private emit;
|
|
141
|
-
registerLeaderboard(definition: LeaderboardDefinition): void;
|
|
142
|
-
unregisterLeaderboard(leaderboardId: LeaderboardId): void;
|
|
143
|
-
getLeaderboard(leaderboardId: LeaderboardId): LeaderboardDefinition | undefined;
|
|
144
|
-
getAllLeaderboards(): LeaderboardDefinition[];
|
|
145
|
-
private getKey;
|
|
146
|
-
submitScore(submission: ScoreSubmission): Promise<SubmissionResult>;
|
|
147
|
-
private submitScoreLocal;
|
|
148
|
-
private sortEntries;
|
|
149
|
-
private assignRanks;
|
|
150
|
-
getEntries(query: LeaderboardQuery): Promise<LeaderboardResult>;
|
|
151
|
-
getEntriesLocal(query: LeaderboardQuery): LeaderboardResult;
|
|
152
|
-
getPlayerRank(leaderboardId: LeaderboardId, playerId: PlayerId, period?: TimePeriod): number | undefined;
|
|
153
|
-
getPlayerBestScore(leaderboardId: LeaderboardId, playerId: PlayerId, period?: TimePeriod): number | undefined;
|
|
154
|
-
getTopScores(leaderboardId: LeaderboardId, count?: number, period?: TimePeriod): LeaderboardEntry[];
|
|
155
|
-
getAroundPlayer(leaderboardId: LeaderboardId, playerId: PlayerId, count?: number, period?: TimePeriod): LeaderboardEntry[];
|
|
156
|
-
registerPlayer(profile: PlayerProfile): void;
|
|
157
|
-
updatePlayer(playerId: PlayerId, updates: Partial<PlayerProfile>): void;
|
|
158
|
-
getPlayer(playerId: PlayerId): PlayerProfile | undefined;
|
|
159
|
-
getPlayerFromRemote(playerId: PlayerId): Promise<PlayerProfile | null>;
|
|
160
|
-
getLeaderboardStats(leaderboardId: LeaderboardId, period?: TimePeriod): {
|
|
161
|
-
totalEntries: number;
|
|
162
|
-
averageScore: number;
|
|
163
|
-
medianScore: number;
|
|
164
|
-
topScore: number;
|
|
165
|
-
lowestScore: number;
|
|
166
|
-
} | null;
|
|
167
|
-
getPlayerStats(playerId: PlayerId): {
|
|
168
|
-
totalGames: number;
|
|
169
|
-
totalScore: number;
|
|
170
|
-
averageScore: number;
|
|
171
|
-
bestRanks: Record<LeaderboardId, number>;
|
|
172
|
-
recentScores: {
|
|
173
|
-
leaderboardId: LeaderboardId;
|
|
174
|
-
score: number;
|
|
175
|
-
rank: number;
|
|
176
|
-
timestamp: number;
|
|
177
|
-
}[];
|
|
178
|
-
};
|
|
179
|
-
resetPeriod(leaderboardId: LeaderboardId, period: TimePeriod): void;
|
|
180
|
-
private getPeriodStartTime;
|
|
181
|
-
cleanupExpiredEntries(): void;
|
|
182
|
-
private startSync;
|
|
183
|
-
sync(): Promise<void>;
|
|
184
|
-
private updateLocalFromRemote;
|
|
185
|
-
private loadFromLocalStorage;
|
|
186
|
-
private saveToLocalStorage;
|
|
187
|
-
formatScore(leaderboardId: LeaderboardId, score: number): string;
|
|
188
|
-
clear(): void;
|
|
189
|
-
destroy(): void;
|
|
190
|
-
}
|
|
191
|
-
export declare function createLeaderboardSystem(config?: Partial<LeaderboardConfig>): NiceLeaderboard;
|
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
export type LevelId = string;
|
|
2
|
-
export type LayerId = string;
|
|
3
|
-
export type TileId = number;
|
|
4
|
-
export type TilesetId = string;
|
|
5
|
-
export type ZoneId = string;
|
|
6
|
-
export type SpawnPointId = string;
|
|
7
|
-
export type CheckpointId = string;
|
|
8
|
-
export interface Vector2 {
|
|
9
|
-
x: number;
|
|
10
|
-
y: number;
|
|
11
|
-
}
|
|
12
|
-
export interface Vector3 {
|
|
13
|
-
x: number;
|
|
14
|
-
y: number;
|
|
15
|
-
z: number;
|
|
16
|
-
}
|
|
17
|
-
export interface Bounds {
|
|
18
|
-
minX: number;
|
|
19
|
-
minY: number;
|
|
20
|
-
maxX: number;
|
|
21
|
-
maxY: number;
|
|
22
|
-
}
|
|
23
|
-
export interface TileDefinition {
|
|
24
|
-
id: TileId;
|
|
25
|
-
name?: string;
|
|
26
|
-
solid: boolean;
|
|
27
|
-
friction?: number;
|
|
28
|
-
animation?: {
|
|
29
|
-
frames: TileId[];
|
|
30
|
-
frameDuration: number;
|
|
31
|
-
};
|
|
32
|
-
properties?: Record<string, unknown>;
|
|
33
|
-
}
|
|
34
|
-
export interface TilesetDefinition {
|
|
35
|
-
id: TilesetId;
|
|
36
|
-
name: string;
|
|
37
|
-
imageUrl: string;
|
|
38
|
-
tileWidth: number;
|
|
39
|
-
tileHeight: number;
|
|
40
|
-
columns: number;
|
|
41
|
-
rows: number;
|
|
42
|
-
tiles: TileDefinition[];
|
|
43
|
-
margin?: number;
|
|
44
|
-
spacing?: number;
|
|
45
|
-
}
|
|
46
|
-
export type LayerType = 'tile' | 'object' | 'image' | 'collision';
|
|
47
|
-
export interface TileLayerData {
|
|
48
|
-
width: number;
|
|
49
|
-
height: number;
|
|
50
|
-
tiles: TileId[];
|
|
51
|
-
tilesetId: TilesetId;
|
|
52
|
-
}
|
|
53
|
-
export interface ObjectInstance {
|
|
54
|
-
id: string;
|
|
55
|
-
type: string;
|
|
56
|
-
x: number;
|
|
57
|
-
y: number;
|
|
58
|
-
width?: number;
|
|
59
|
-
height?: number;
|
|
60
|
-
rotation?: number;
|
|
61
|
-
properties?: Record<string, unknown>;
|
|
62
|
-
}
|
|
63
|
-
export interface ObjectLayerData {
|
|
64
|
-
objects: ObjectInstance[];
|
|
65
|
-
}
|
|
66
|
-
export interface ImageLayerData {
|
|
67
|
-
imageUrl: string;
|
|
68
|
-
x: number;
|
|
69
|
-
y: number;
|
|
70
|
-
parallaxX?: number;
|
|
71
|
-
parallaxY?: number;
|
|
72
|
-
repeatX?: boolean;
|
|
73
|
-
repeatY?: boolean;
|
|
74
|
-
}
|
|
75
|
-
export interface LayerDefinition {
|
|
76
|
-
id: LayerId;
|
|
77
|
-
name: string;
|
|
78
|
-
type: LayerType;
|
|
79
|
-
visible: boolean;
|
|
80
|
-
opacity: number;
|
|
81
|
-
offsetX: number;
|
|
82
|
-
offsetY: number;
|
|
83
|
-
/** Render order (higher = on top) */
|
|
84
|
-
zIndex: number;
|
|
85
|
-
/** Tile layer data */
|
|
86
|
-
tileData?: TileLayerData;
|
|
87
|
-
/** Object layer data */
|
|
88
|
-
objectData?: ObjectLayerData;
|
|
89
|
-
/** Image layer data */
|
|
90
|
-
imageData?: ImageLayerData;
|
|
91
|
-
/** Collision data for collision layers */
|
|
92
|
-
collisionData?: TileId[];
|
|
93
|
-
properties?: Record<string, unknown>;
|
|
94
|
-
}
|
|
95
|
-
export type ZoneShape = 'rectangle' | 'circle' | 'polygon';
|
|
96
|
-
export interface ZoneDefinition {
|
|
97
|
-
id: ZoneId;
|
|
98
|
-
name?: string;
|
|
99
|
-
shape: ZoneShape;
|
|
100
|
-
/** For rectangle */
|
|
101
|
-
bounds?: Bounds;
|
|
102
|
-
/** For circle */
|
|
103
|
-
center?: Vector2;
|
|
104
|
-
radius?: number;
|
|
105
|
-
/** For polygon */
|
|
106
|
-
points?: Vector2[];
|
|
107
|
-
/** Trigger type */
|
|
108
|
-
triggerType?: 'enter' | 'exit' | 'stay' | 'enter-exit';
|
|
109
|
-
/** Action on trigger */
|
|
110
|
-
action?: {
|
|
111
|
-
type: string;
|
|
112
|
-
data?: unknown;
|
|
113
|
-
};
|
|
114
|
-
/** Only specific entities */
|
|
115
|
-
filterTags?: string[];
|
|
116
|
-
enabled: boolean;
|
|
117
|
-
properties?: Record<string, unknown>;
|
|
118
|
-
}
|
|
119
|
-
export interface SpawnPointDefinition {
|
|
120
|
-
id: SpawnPointId;
|
|
121
|
-
name?: string;
|
|
122
|
-
position: Vector3;
|
|
123
|
-
rotation?: number;
|
|
124
|
-
type: 'player' | 'enemy' | 'item' | 'npc' | 'custom';
|
|
125
|
-
/** Entity type to spawn */
|
|
126
|
-
entityType?: string;
|
|
127
|
-
/** Initial if this is default spawn */
|
|
128
|
-
isInitial?: boolean;
|
|
129
|
-
/** Respawn after death */
|
|
130
|
-
respawnDelay?: number;
|
|
131
|
-
properties?: Record<string, unknown>;
|
|
132
|
-
}
|
|
133
|
-
export interface CheckpointDefinition {
|
|
134
|
-
id: CheckpointId;
|
|
135
|
-
name?: string;
|
|
136
|
-
position: Vector3;
|
|
137
|
-
bounds?: Bounds;
|
|
138
|
-
/** Save game on activation */
|
|
139
|
-
autoSave?: boolean;
|
|
140
|
-
order?: number;
|
|
141
|
-
properties?: Record<string, unknown>;
|
|
142
|
-
}
|
|
143
|
-
export interface LevelTransition {
|
|
144
|
-
id: string;
|
|
145
|
-
targetLevelId: LevelId;
|
|
146
|
-
targetSpawnId?: SpawnPointId;
|
|
147
|
-
zone: ZoneDefinition;
|
|
148
|
-
/** Transition effect */
|
|
149
|
-
transition?: 'fade' | 'slide' | 'none';
|
|
150
|
-
/** Transition duration */
|
|
151
|
-
transitionDuration?: number;
|
|
152
|
-
/** Load message */
|
|
153
|
-
loadingMessage?: string;
|
|
154
|
-
/** Requirements to use */
|
|
155
|
-
requirements?: string[];
|
|
156
|
-
}
|
|
157
|
-
export interface LevelDefinition {
|
|
158
|
-
id: LevelId;
|
|
159
|
-
name: string;
|
|
160
|
-
description?: string;
|
|
161
|
-
/** Thumbnail image */
|
|
162
|
-
thumbnail?: string;
|
|
163
|
-
/** Level size in tiles */
|
|
164
|
-
width: number;
|
|
165
|
-
height: number;
|
|
166
|
-
/** Tile size in pixels */
|
|
167
|
-
tileWidth: number;
|
|
168
|
-
tileHeight: number;
|
|
169
|
-
/** Tilesets used */
|
|
170
|
-
tilesets: TilesetId[];
|
|
171
|
-
/** Layers */
|
|
172
|
-
layers: LayerDefinition[];
|
|
173
|
-
/** Zones */
|
|
174
|
-
zones: ZoneDefinition[];
|
|
175
|
-
/** Spawn points */
|
|
176
|
-
spawnPoints: SpawnPointDefinition[];
|
|
177
|
-
/** Checkpoints */
|
|
178
|
-
checkpoints: CheckpointDefinition[];
|
|
179
|
-
/** Level transitions */
|
|
180
|
-
transitions: LevelTransition[];
|
|
181
|
-
/** Background color */
|
|
182
|
-
backgroundColor?: string;
|
|
183
|
-
/** Ambient lighting */
|
|
184
|
-
ambientLight?: {
|
|
185
|
-
r: number;
|
|
186
|
-
g: number;
|
|
187
|
-
b: number;
|
|
188
|
-
a: number;
|
|
189
|
-
};
|
|
190
|
-
/** Level-specific properties */
|
|
191
|
-
properties?: Record<string, unknown>;
|
|
192
|
-
/** Music to play */
|
|
193
|
-
music?: string;
|
|
194
|
-
/** Time limit (seconds, 0 = none) */
|
|
195
|
-
timeLimit?: number;
|
|
196
|
-
/** Prerequisites */
|
|
197
|
-
requirements?: string[];
|
|
198
|
-
/** Order in world map */
|
|
199
|
-
order?: number;
|
|
200
|
-
/** Tags */
|
|
201
|
-
tags?: string[];
|
|
202
|
-
}
|
|
203
|
-
export interface LevelState {
|
|
204
|
-
levelId: LevelId;
|
|
205
|
-
loadedAt: number;
|
|
206
|
-
activeZones: Set<ZoneId>;
|
|
207
|
-
entitiesInZones: Map<ZoneId, Set<string>>;
|
|
208
|
-
activatedCheckpoints: Set<CheckpointId>;
|
|
209
|
-
currentCheckpoint?: CheckpointId;
|
|
210
|
-
timeElapsed: number;
|
|
211
|
-
completed: boolean;
|
|
212
|
-
customState: Record<string, unknown>;
|
|
213
|
-
}
|
|
214
|
-
export type LevelEventType = 'level-loading' | 'level-loaded' | 'level-unloaded' | 'level-transition-start' | 'level-transition-end' | 'zone-enter' | 'zone-exit' | 'zone-stay' | 'checkpoint-activated' | 'spawn-point-used' | 'level-completed' | 'level-failed';
|
|
215
|
-
export interface LevelEvent {
|
|
216
|
-
type: LevelEventType;
|
|
217
|
-
timestamp: number;
|
|
218
|
-
levelId?: LevelId;
|
|
219
|
-
data?: unknown;
|
|
220
|
-
}
|
|
221
|
-
export type LevelEventCallback = (event: LevelEvent) => void;
|
|
222
|
-
export interface LevelConfig {
|
|
223
|
-
/** Auto-load first level */
|
|
224
|
-
autoLoad: boolean;
|
|
225
|
-
/** Level streaming enabled */
|
|
226
|
-
enableStreaming: boolean;
|
|
227
|
-
/** Streaming load distance */
|
|
228
|
-
streamingLoadDistance: number;
|
|
229
|
-
/** Streaming unload distance */
|
|
230
|
-
streamingUnloadDistance: number;
|
|
231
|
-
/** Preload adjacent levels */
|
|
232
|
-
preloadAdjacent: boolean;
|
|
233
|
-
/** Default transition effect */
|
|
234
|
-
defaultTransition: 'fade' | 'slide' | 'none';
|
|
235
|
-
/** Default transition duration (ms) */
|
|
236
|
-
defaultTransitionDuration: number;
|
|
237
|
-
/** Persist zone states */
|
|
238
|
-
persistZoneStates: boolean;
|
|
239
|
-
/** Storage key for persistence */
|
|
240
|
-
storageKey: string;
|
|
241
|
-
}
|
|
242
|
-
export declare const DEFAULT_LEVEL_CONFIG: LevelConfig;
|
|
243
|
-
export declare class NiceLevel {
|
|
244
|
-
private config;
|
|
245
|
-
private levels;
|
|
246
|
-
private tilesets;
|
|
247
|
-
private currentLevel?;
|
|
248
|
-
private levelState?;
|
|
249
|
-
private loadedLevels;
|
|
250
|
-
private preloadedAssets;
|
|
251
|
-
private isTransitioning;
|
|
252
|
-
private eventListeners;
|
|
253
|
-
constructor(config?: Partial<LevelConfig>);
|
|
254
|
-
on(event: LevelEventType, callback: LevelEventCallback): () => void;
|
|
255
|
-
private emit;
|
|
256
|
-
registerLevel(level: LevelDefinition): void;
|
|
257
|
-
unregisterLevel(levelId: LevelId): void;
|
|
258
|
-
registerTileset(tileset: TilesetDefinition): void;
|
|
259
|
-
getLevel(levelId: LevelId): LevelDefinition | undefined;
|
|
260
|
-
getAllLevels(): LevelDefinition[];
|
|
261
|
-
getLevelsByTag(tag: string): LevelDefinition[];
|
|
262
|
-
getTileset(tilesetId: TilesetId): TilesetDefinition | undefined;
|
|
263
|
-
loadLevel(levelId: LevelId, spawnPointId?: SpawnPointId): Promise<boolean>;
|
|
264
|
-
private loadLevelAssets;
|
|
265
|
-
private preloadAdjacentLevels;
|
|
266
|
-
unloadLevel(levelId: LevelId): void;
|
|
267
|
-
getCurrentLevel(): LevelDefinition | undefined;
|
|
268
|
-
getLevelState(): LevelState | undefined;
|
|
269
|
-
transitionToLevel(levelId: LevelId, spawnPointId?: SpawnPointId, transition?: 'fade' | 'slide' | 'none', duration?: number): Promise<boolean>;
|
|
270
|
-
private delay;
|
|
271
|
-
updateZones(entityId: string, position: Vector2, tags?: string[]): void;
|
|
272
|
-
private isPointInZone;
|
|
273
|
-
private isPointInPolygon;
|
|
274
|
-
getActiveZones(): ZoneDefinition[];
|
|
275
|
-
getZone(zoneId: ZoneId): ZoneDefinition | undefined;
|
|
276
|
-
activateCheckpoint(checkpointId: CheckpointId, entityId?: string): void;
|
|
277
|
-
getCurrentCheckpoint(): CheckpointDefinition | undefined;
|
|
278
|
-
getCheckpointPosition(): Vector3 | undefined;
|
|
279
|
-
getInitialSpawnPoint(): SpawnPointDefinition | undefined;
|
|
280
|
-
getSpawnPoint(spawnPointId: SpawnPointId): SpawnPointDefinition | undefined;
|
|
281
|
-
getSpawnPointsByType(type: string): SpawnPointDefinition[];
|
|
282
|
-
useSpawnPoint(spawnPointId: SpawnPointId, entityId?: string): Vector3 | undefined;
|
|
283
|
-
getTileAt(layerId: LayerId, x: number, y: number): TileId | undefined;
|
|
284
|
-
setTileAt(layerId: LayerId, x: number, y: number, tileId: TileId): boolean;
|
|
285
|
-
getTileDefinition(tileId: TileId, tilesetId: TilesetId): TileDefinition | undefined;
|
|
286
|
-
isTileSolid(tileId: TileId, tilesetId: TilesetId): boolean;
|
|
287
|
-
getCollisionTiles(): Array<{
|
|
288
|
-
x: number;
|
|
289
|
-
y: number;
|
|
290
|
-
tileId: TileId;
|
|
291
|
-
}>;
|
|
292
|
-
isPositionSolid(x: number, y: number): boolean;
|
|
293
|
-
completeLevel(data?: unknown): void;
|
|
294
|
-
failLevel(reason?: string): void;
|
|
295
|
-
update(deltaTime: number): void;
|
|
296
|
-
worldToTile(worldX: number, worldY: number): Vector2;
|
|
297
|
-
tileToWorld(tileX: number, tileY: number): Vector2;
|
|
298
|
-
getLevelBounds(): Bounds | undefined;
|
|
299
|
-
setCustomState(key: string, value: unknown): void;
|
|
300
|
-
getCustomState<T>(key: string): T | undefined;
|
|
301
|
-
clear(): void;
|
|
302
|
-
destroy(): void;
|
|
303
|
-
}
|
|
304
|
-
export declare function createLevelSystem(config?: Partial<LevelConfig>): NiceLevel;
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'events';
|
|
2
|
-
export type LightId = string;
|
|
3
|
-
export type LightGroupId = string;
|
|
4
|
-
export type ProbeId = string;
|
|
5
|
-
export interface Vector3 {
|
|
6
|
-
x: number;
|
|
7
|
-
y: number;
|
|
8
|
-
z: number;
|
|
9
|
-
}
|
|
10
|
-
export interface ColorRGB {
|
|
11
|
-
r: number;
|
|
12
|
-
g: number;
|
|
13
|
-
b: number;
|
|
14
|
-
}
|
|
15
|
-
export type LightType = 'directional' | 'point' | 'spot' | 'area' | 'ambient' | 'hemisphere';
|
|
16
|
-
export type ShadowType = 'none' | 'hard' | 'soft' | 'pcf' | 'vsm' | 'cascade';
|
|
17
|
-
export type FalloffType = 'linear' | 'quadratic' | 'inverse_square' | 'custom';
|
|
18
|
-
export interface Light {
|
|
19
|
-
id: LightId;
|
|
20
|
-
type: LightType;
|
|
21
|
-
enabled: boolean;
|
|
22
|
-
position: Vector3;
|
|
23
|
-
direction: Vector3;
|
|
24
|
-
color: ColorRGB;
|
|
25
|
-
intensity: number;
|
|
26
|
-
range: number;
|
|
27
|
-
group?: LightGroupId;
|
|
28
|
-
shadow: ShadowSettings;
|
|
29
|
-
attenuation: AttenuationSettings;
|
|
30
|
-
spotlight?: SpotlightSettings;
|
|
31
|
-
areaLight?: AreaLightSettings;
|
|
32
|
-
cookies?: LightCookie;
|
|
33
|
-
animation?: LightAnimation;
|
|
34
|
-
priority: number;
|
|
35
|
-
tags: string[];
|
|
36
|
-
}
|
|
37
|
-
export interface ShadowSettings {
|
|
38
|
-
enabled: boolean;
|
|
39
|
-
type: ShadowType;
|
|
40
|
-
resolution: number;
|
|
41
|
-
bias: number;
|
|
42
|
-
normalBias: number;
|
|
43
|
-
nearPlane: number;
|
|
44
|
-
farPlane: number;
|
|
45
|
-
cascadeCount?: number;
|
|
46
|
-
cascadeDistribution?: number[];
|
|
47
|
-
softness?: number;
|
|
48
|
-
}
|
|
49
|
-
export interface AttenuationSettings {
|
|
50
|
-
type: FalloffType;
|
|
51
|
-
constant: number;
|
|
52
|
-
linear: number;
|
|
53
|
-
quadratic: number;
|
|
54
|
-
cutoffAngle?: number;
|
|
55
|
-
}
|
|
56
|
-
export interface SpotlightSettings {
|
|
57
|
-
innerConeAngle: number;
|
|
58
|
-
outerConeAngle: number;
|
|
59
|
-
falloffExponent: number;
|
|
60
|
-
}
|
|
61
|
-
export interface AreaLightSettings {
|
|
62
|
-
width: number;
|
|
63
|
-
height: number;
|
|
64
|
-
shape: 'rectangle' | 'disc' | 'line';
|
|
65
|
-
twoSided: boolean;
|
|
66
|
-
}
|
|
67
|
-
export interface LightCookie {
|
|
68
|
-
textureId: string;
|
|
69
|
-
scale: number;
|
|
70
|
-
offset: {
|
|
71
|
-
u: number;
|
|
72
|
-
v: number;
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
export interface LightAnimation {
|
|
76
|
-
type: 'flicker' | 'pulse' | 'strobe' | 'custom';
|
|
77
|
-
frequency: number;
|
|
78
|
-
amplitude: number;
|
|
79
|
-
phase: number;
|
|
80
|
-
enabled: boolean;
|
|
81
|
-
}
|
|
82
|
-
export interface LightProbe {
|
|
83
|
-
id: ProbeId;
|
|
84
|
-
position: Vector3;
|
|
85
|
-
radius: number;
|
|
86
|
-
resolution: number;
|
|
87
|
-
priority: number;
|
|
88
|
-
isDirty: boolean;
|
|
89
|
-
sh?: SphericalHarmonics;
|
|
90
|
-
cubemapTextureId?: string;
|
|
91
|
-
blendDistance: number;
|
|
92
|
-
}
|
|
93
|
-
export interface SphericalHarmonics {
|
|
94
|
-
coefficients: number[][];
|
|
95
|
-
bands: number;
|
|
96
|
-
}
|
|
97
|
-
export interface LightGroup {
|
|
98
|
-
id: LightGroupId;
|
|
99
|
-
name: string;
|
|
100
|
-
enabled: boolean;
|
|
101
|
-
intensityMultiplier: number;
|
|
102
|
-
colorTint: ColorRGB;
|
|
103
|
-
lights: LightId[];
|
|
104
|
-
}
|
|
105
|
-
export interface AmbientSettings {
|
|
106
|
-
mode: 'color' | 'gradient' | 'skybox' | 'probe';
|
|
107
|
-
color: ColorRGB;
|
|
108
|
-
groundColor?: ColorRGB;
|
|
109
|
-
skyColor?: ColorRGB;
|
|
110
|
-
intensity: number;
|
|
111
|
-
skyboxTextureId?: string;
|
|
112
|
-
}
|
|
113
|
-
export interface TimeOfDaySettings {
|
|
114
|
-
enabled: boolean;
|
|
115
|
-
currentTime: number;
|
|
116
|
-
sunLightId?: LightId;
|
|
117
|
-
moonLightId?: LightId;
|
|
118
|
-
sunriseTime: number;
|
|
119
|
-
sunsetTime: number;
|
|
120
|
-
transitionDuration: number;
|
|
121
|
-
dayAmbient: AmbientSettings;
|
|
122
|
-
nightAmbient: AmbientSettings;
|
|
123
|
-
sunColor: ColorRGB;
|
|
124
|
-
sunsetColor: ColorRGB;
|
|
125
|
-
moonColor: ColorRGB;
|
|
126
|
-
}
|
|
127
|
-
export type LightingEventType = 'light-added' | 'light-removed' | 'light-updated' | 'light-enabled' | 'light-disabled' | 'group-created' | 'group-removed' | 'group-updated' | 'probe-added' | 'probe-removed' | 'probe-updated' | 'ambient-changed' | 'time-changed' | 'sunrise' | 'sunset';
|
|
128
|
-
export interface LightingEvent {
|
|
129
|
-
type: LightingEventType;
|
|
130
|
-
lightId?: LightId;
|
|
131
|
-
groupId?: LightGroupId;
|
|
132
|
-
probeId?: ProbeId;
|
|
133
|
-
data?: Record<string, unknown>;
|
|
134
|
-
}
|
|
135
|
-
export interface LightingSystemConfig {
|
|
136
|
-
maxLights?: number;
|
|
137
|
-
maxShadowCasters?: number;
|
|
138
|
-
maxProbes?: number;
|
|
139
|
-
defaultShadowResolution?: number;
|
|
140
|
-
shadowDistance?: number;
|
|
141
|
-
probeUpdateInterval?: number;
|
|
142
|
-
enableGlobalIllumination?: boolean;
|
|
143
|
-
}
|
|
144
|
-
export declare const DEFAULT_LIGHTING_CONFIG: LightingSystemConfig;
|
|
145
|
-
export declare class NiceLighting extends EventEmitter {
|
|
146
|
-
private lights;
|
|
147
|
-
private groups;
|
|
148
|
-
private probes;
|
|
149
|
-
private ambient;
|
|
150
|
-
private timeOfDay;
|
|
151
|
-
private config;
|
|
152
|
-
private lightIdCounter;
|
|
153
|
-
private probeIdCounter;
|
|
154
|
-
private probeUpdateTimer;
|
|
155
|
-
constructor(config?: Partial<LightingSystemConfig>);
|
|
156
|
-
createLight(options: Partial<Light> & {
|
|
157
|
-
type: LightType;
|
|
158
|
-
}): LightId;
|
|
159
|
-
removeLight(lightId: LightId): void;
|
|
160
|
-
getLight(lightId: LightId): Light | undefined;
|
|
161
|
-
updateLight(lightId: LightId, updates: Partial<Light>): void;
|
|
162
|
-
enableLight(lightId: LightId): void;
|
|
163
|
-
disableLight(lightId: LightId): void;
|
|
164
|
-
setLightPosition(lightId: LightId, position: Vector3): void;
|
|
165
|
-
setLightDirection(lightId: LightId, direction: Vector3): void;
|
|
166
|
-
setLightColor(lightId: LightId, color: ColorRGB): void;
|
|
167
|
-
setLightIntensity(lightId: LightId, intensity: number): void;
|
|
168
|
-
setLightRange(lightId: LightId, range: number): void;
|
|
169
|
-
enableShadow(lightId: LightId, type?: ShadowType): void;
|
|
170
|
-
disableShadow(lightId: LightId): void;
|
|
171
|
-
setShadowSettings(lightId: LightId, settings: Partial<ShadowSettings>): void;
|
|
172
|
-
getShadowCasters(): Light[];
|
|
173
|
-
createGroup(id: LightGroupId, name: string): LightGroup;
|
|
174
|
-
removeGroup(groupId: LightGroupId): void;
|
|
175
|
-
getGroup(groupId: LightGroupId): LightGroup | undefined;
|
|
176
|
-
setGroupEnabled(groupId: LightGroupId, enabled: boolean): void;
|
|
177
|
-
setGroupIntensity(groupId: LightGroupId, intensity: number): void;
|
|
178
|
-
setGroupTint(groupId: LightGroupId, tint: ColorRGB): void;
|
|
179
|
-
addLightToGroup(lightId: LightId, groupId: LightGroupId): void;
|
|
180
|
-
createProbe(position: Vector3, options?: Partial<LightProbe>): ProbeId;
|
|
181
|
-
removeProbe(probeId: ProbeId): void;
|
|
182
|
-
getProbe(probeId: ProbeId): LightProbe | undefined;
|
|
183
|
-
markProbeDirty(probeId: ProbeId): void;
|
|
184
|
-
markAllProbesDirty(): void;
|
|
185
|
-
getProbeAtPosition(position: Vector3): LightProbe | undefined;
|
|
186
|
-
setAmbient(settings: Partial<AmbientSettings>): void;
|
|
187
|
-
getAmbient(): AmbientSettings;
|
|
188
|
-
enableTimeOfDay(sunLightId?: LightId, moonLightId?: LightId): void;
|
|
189
|
-
disableTimeOfDay(): void;
|
|
190
|
-
setTimeOfDay(time: number): void;
|
|
191
|
-
getTimeOfDay(): number;
|
|
192
|
-
setTimeOfDaySettings(settings: Partial<TimeOfDaySettings>): void;
|
|
193
|
-
setLightAnimation(lightId: LightId, animation: LightAnimation): void;
|
|
194
|
-
enableLightAnimation(lightId: LightId): void;
|
|
195
|
-
disableLightAnimation(lightId: LightId): void;
|
|
196
|
-
update(deltaTime: number): void;
|
|
197
|
-
private updateTimeOfDay;
|
|
198
|
-
private interpolateAmbient;
|
|
199
|
-
private updateAnimations;
|
|
200
|
-
private updateDirtyProbes;
|
|
201
|
-
getLightsAffectingPoint(position: Vector3): Light[];
|
|
202
|
-
getLightsByTag(tag: string): Light[];
|
|
203
|
-
getAllLights(): Light[];
|
|
204
|
-
getEnabledLights(): Light[];
|
|
205
|
-
private calculateDistance;
|
|
206
|
-
private normalizeVector;
|
|
207
|
-
}
|
|
208
|
-
export declare function createLightingSystem(config?: Partial<LightingSystemConfig>): NiceLighting;
|
|
209
|
-
export declare function defineLightPreset(options: Partial<Light> & {
|
|
210
|
-
type: LightType;
|
|
211
|
-
}): Partial<Light> & {
|
|
212
|
-
type: LightType;
|
|
213
|
-
};
|
|
214
|
-
export default NiceLighting;
|