@nice2dev/game-engine 1.3.13 → 1.3.15
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,534 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NiceInventory - Comprehensive Inventory System
|
|
3
|
-
*
|
|
4
|
-
* Professional inventory system for RPGs, survival games, and simulators.
|
|
5
|
-
* Supports slots, stacking, equipment, containers, and item management.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Slot-based inventories with customizable sizes
|
|
9
|
-
* - Item stacking with max stack limits
|
|
10
|
-
* - Weight and volume limits
|
|
11
|
-
* - Equipment slots (armor, weapons, accessories)
|
|
12
|
-
* - Container systems (chests, bags)
|
|
13
|
-
* - Item categories and filtering
|
|
14
|
-
* - Drag-and-drop support
|
|
15
|
-
* - Item comparison
|
|
16
|
-
* - Auto-sort and organization
|
|
17
|
-
* - Crafting material tracking
|
|
18
|
-
* - Currency management
|
|
19
|
-
* - Loot generation integration
|
|
20
|
-
*
|
|
21
|
-
* @packageDocumentation
|
|
22
|
-
*/
|
|
23
|
-
import { EventEmitter } from 'eventemitter3';
|
|
24
|
-
/** Unique identifier for items */
|
|
25
|
-
export type ItemId = string;
|
|
26
|
-
/** Unique identifier for item instances */
|
|
27
|
-
export type ItemInstanceId = string;
|
|
28
|
-
/** Unique identifier for inventories */
|
|
29
|
-
export type InventoryId = string;
|
|
30
|
-
/** Unique identifier for containers */
|
|
31
|
-
export type ContainerId = string;
|
|
32
|
-
/** Unique identifier for equipment slots */
|
|
33
|
-
export type EquipSlotId = string;
|
|
34
|
-
/** Item rarity */
|
|
35
|
-
export type ItemRarity = 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary' | 'mythic' | 'unique';
|
|
36
|
-
/** Item type/category */
|
|
37
|
-
export type ItemType = 'weapon' | 'armor' | 'accessory' | 'consumable' | 'material' | 'quest' | 'currency' | 'container' | 'tool' | 'key' | 'misc';
|
|
38
|
-
/** Equipment slot type */
|
|
39
|
-
export type EquipmentSlot = 'head' | 'chest' | 'legs' | 'feet' | 'hands' | 'shoulders' | 'back' | 'neck' | 'ring1' | 'ring2' | 'trinket1' | 'trinket2' | 'mainHand' | 'offHand' | 'twoHand' | 'ammo';
|
|
40
|
-
/** Stat modifier */
|
|
41
|
-
export interface StatModifier {
|
|
42
|
-
stat: string;
|
|
43
|
-
value: number;
|
|
44
|
-
type: 'flat' | 'percent' | 'multiply';
|
|
45
|
-
}
|
|
46
|
-
/** Item requirement */
|
|
47
|
-
export interface ItemRequirement {
|
|
48
|
-
type: 'level' | 'stat' | 'class' | 'quest' | 'skill' | 'reputation';
|
|
49
|
-
target?: string;
|
|
50
|
-
value: number | string;
|
|
51
|
-
operator?: '==' | '!=' | '>' | '<' | '>=' | '<=';
|
|
52
|
-
}
|
|
53
|
-
/** Item effect */
|
|
54
|
-
export interface ItemEffect {
|
|
55
|
-
type: 'heal' | 'mana' | 'buff' | 'debuff' | 'damage' | 'teleport' | 'summon' | 'custom';
|
|
56
|
-
value?: number;
|
|
57
|
-
duration?: number;
|
|
58
|
-
target?: string;
|
|
59
|
-
data?: Record<string, unknown>;
|
|
60
|
-
}
|
|
61
|
-
/** Item definition */
|
|
62
|
-
export interface ItemDefinition {
|
|
63
|
-
id: ItemId;
|
|
64
|
-
name: string;
|
|
65
|
-
description?: string;
|
|
66
|
-
shortDescription?: string;
|
|
67
|
-
type: ItemType;
|
|
68
|
-
subType?: string;
|
|
69
|
-
rarity: ItemRarity;
|
|
70
|
-
icon?: string;
|
|
71
|
-
model?: string;
|
|
72
|
-
maxStack: number;
|
|
73
|
-
weight: number;
|
|
74
|
-
volume?: number;
|
|
75
|
-
value: number;
|
|
76
|
-
sellValue?: number;
|
|
77
|
-
buyValue?: number;
|
|
78
|
-
equipSlot?: EquipmentSlot;
|
|
79
|
-
twoHanded?: boolean;
|
|
80
|
-
stats?: StatModifier[];
|
|
81
|
-
effects?: ItemEffect[];
|
|
82
|
-
requirements?: ItemRequirement[];
|
|
83
|
-
durabilityMax?: number;
|
|
84
|
-
cooldown?: number;
|
|
85
|
-
charges?: number;
|
|
86
|
-
isUsable?: boolean;
|
|
87
|
-
isConsumable?: boolean;
|
|
88
|
-
isQuestItem?: boolean;
|
|
89
|
-
isSoulbound?: boolean;
|
|
90
|
-
isUnique?: boolean;
|
|
91
|
-
isTradeable?: boolean;
|
|
92
|
-
isDroppable?: boolean;
|
|
93
|
-
isDestroyable?: boolean;
|
|
94
|
-
setId?: string;
|
|
95
|
-
tags?: string[];
|
|
96
|
-
lore?: string[];
|
|
97
|
-
metadata?: Record<string, unknown>;
|
|
98
|
-
}
|
|
99
|
-
/** Item instance (actual item in inventory) */
|
|
100
|
-
export interface ItemInstance {
|
|
101
|
-
instanceId: ItemInstanceId;
|
|
102
|
-
itemId: ItemId;
|
|
103
|
-
definition: ItemDefinition;
|
|
104
|
-
quantity: number;
|
|
105
|
-
durability?: number;
|
|
106
|
-
charges?: number;
|
|
107
|
-
enchantments?: StatModifier[];
|
|
108
|
-
gems?: ItemId[];
|
|
109
|
-
customName?: string;
|
|
110
|
-
customDescription?: string;
|
|
111
|
-
boundTo?: string;
|
|
112
|
-
createdAt: number;
|
|
113
|
-
modifiedAt: number;
|
|
114
|
-
metadata: Map<string, unknown>;
|
|
115
|
-
}
|
|
116
|
-
/** Inventory slot */
|
|
117
|
-
export interface InventorySlot {
|
|
118
|
-
index: number;
|
|
119
|
-
item: ItemInstance | null;
|
|
120
|
-
locked: boolean;
|
|
121
|
-
filter?: ItemType[];
|
|
122
|
-
}
|
|
123
|
-
/** Inventory definition */
|
|
124
|
-
export interface InventoryDefinition {
|
|
125
|
-
id: InventoryId;
|
|
126
|
-
name: string;
|
|
127
|
-
size: number;
|
|
128
|
-
maxWeight?: number;
|
|
129
|
-
maxVolume?: number;
|
|
130
|
-
slotFilters?: Map<number, ItemType[]>;
|
|
131
|
-
lockedSlots?: number[];
|
|
132
|
-
isPlayerInventory?: boolean;
|
|
133
|
-
metadata?: Record<string, unknown>;
|
|
134
|
-
}
|
|
135
|
-
/** Inventory instance */
|
|
136
|
-
export interface Inventory {
|
|
137
|
-
definition: InventoryDefinition;
|
|
138
|
-
slots: InventorySlot[];
|
|
139
|
-
equipment: Map<EquipmentSlot, ItemInstance | null>;
|
|
140
|
-
currentWeight: number;
|
|
141
|
-
currentVolume: number;
|
|
142
|
-
currencies: Map<string, number>;
|
|
143
|
-
}
|
|
144
|
-
/** Container (chests, bags, etc.) */
|
|
145
|
-
export interface Container {
|
|
146
|
-
id: ContainerId;
|
|
147
|
-
name: string;
|
|
148
|
-
inventory: Inventory;
|
|
149
|
-
isOpen: boolean;
|
|
150
|
-
isLocked: boolean;
|
|
151
|
-
lockLevel?: number;
|
|
152
|
-
keyItemId?: ItemId;
|
|
153
|
-
position?: {
|
|
154
|
-
x: number;
|
|
155
|
-
y: number;
|
|
156
|
-
z: number;
|
|
157
|
-
};
|
|
158
|
-
metadata?: Record<string, unknown>;
|
|
159
|
-
}
|
|
160
|
-
/** Equipment set definition */
|
|
161
|
-
export interface EquipmentSet {
|
|
162
|
-
id: string;
|
|
163
|
-
name: string;
|
|
164
|
-
description?: string;
|
|
165
|
-
itemIds: ItemId[];
|
|
166
|
-
bonuses: Array<{
|
|
167
|
-
requiredPieces: number;
|
|
168
|
-
stats: StatModifier[];
|
|
169
|
-
description?: string;
|
|
170
|
-
}>;
|
|
171
|
-
}
|
|
172
|
-
/** Sort options */
|
|
173
|
-
export interface SortOptions {
|
|
174
|
-
by: 'name' | 'type' | 'rarity' | 'value' | 'weight' | 'quantity' | 'recent';
|
|
175
|
-
ascending: boolean;
|
|
176
|
-
groupByType?: boolean;
|
|
177
|
-
}
|
|
178
|
-
/** Filter options */
|
|
179
|
-
export interface FilterOptions {
|
|
180
|
-
types?: ItemType[];
|
|
181
|
-
rarity?: ItemRarity[];
|
|
182
|
-
minLevel?: number;
|
|
183
|
-
maxLevel?: number;
|
|
184
|
-
searchText?: string;
|
|
185
|
-
tags?: string[];
|
|
186
|
-
equipSlots?: EquipmentSlot[];
|
|
187
|
-
usableOnly?: boolean;
|
|
188
|
-
equippableOnly?: boolean;
|
|
189
|
-
}
|
|
190
|
-
/** Transfer result */
|
|
191
|
-
export interface TransferResult {
|
|
192
|
-
success: boolean;
|
|
193
|
-
transferred: number;
|
|
194
|
-
remaining: number;
|
|
195
|
-
error?: string;
|
|
196
|
-
}
|
|
197
|
-
/** Inventory event types */
|
|
198
|
-
export type InventoryEventType = 'item:added' | 'item:removed' | 'item:moved' | 'item:stacked' | 'item:split' | 'item:used' | 'item:equipped' | 'item:unequipped' | 'item:destroyed' | 'item:dropped' | 'item:picked' | 'item:modified' | 'inventory:created' | 'inventory:destroyed' | 'inventory:sorted' | 'inventory:full' | 'container:opened' | 'container:closed' | 'container:locked' | 'container:unlocked' | 'currency:changed' | 'weight:exceeded' | 'set:bonus:activated' | 'set:bonus:deactivated' | 'error';
|
|
199
|
-
/** Inventory event */
|
|
200
|
-
export interface InventoryEvent {
|
|
201
|
-
type: InventoryEventType;
|
|
202
|
-
inventoryId?: InventoryId;
|
|
203
|
-
containerId?: ContainerId;
|
|
204
|
-
itemInstanceId?: ItemInstanceId;
|
|
205
|
-
item?: ItemInstance;
|
|
206
|
-
slot?: number;
|
|
207
|
-
targetSlot?: number;
|
|
208
|
-
targetInventoryId?: InventoryId;
|
|
209
|
-
equipSlot?: EquipmentSlot;
|
|
210
|
-
quantity?: number;
|
|
211
|
-
currency?: string;
|
|
212
|
-
amount?: number;
|
|
213
|
-
setId?: string;
|
|
214
|
-
setBonusLevel?: number;
|
|
215
|
-
error?: Error;
|
|
216
|
-
timestamp: number;
|
|
217
|
-
}
|
|
218
|
-
/** Event callback */
|
|
219
|
-
export type InventoryEventCallback = (event: InventoryEvent) => void;
|
|
220
|
-
/** Inventory system configuration */
|
|
221
|
-
export interface InventoryConfig {
|
|
222
|
-
/** Default inventory size */
|
|
223
|
-
defaultInventorySize: number;
|
|
224
|
-
/** Enable weight limits */
|
|
225
|
-
enableWeight: boolean;
|
|
226
|
-
/** Enable volume limits */
|
|
227
|
-
enableVolume: boolean;
|
|
228
|
-
/** Enable durability */
|
|
229
|
-
enableDurability: boolean;
|
|
230
|
-
/** Auto-stack on pickup */
|
|
231
|
-
autoStack: boolean;
|
|
232
|
-
/** Allow partial transfers */
|
|
233
|
-
allowPartialTransfer: boolean;
|
|
234
|
-
/** Destroy item on 0 durability */
|
|
235
|
-
destroyOnBreak: boolean;
|
|
236
|
-
/** Debug mode */
|
|
237
|
-
debug: boolean;
|
|
238
|
-
}
|
|
239
|
-
export declare const DEFAULT_INVENTORY_CONFIG: InventoryConfig;
|
|
240
|
-
/** Default rarity colors */
|
|
241
|
-
export declare const RARITY_COLORS: Record<ItemRarity, string>;
|
|
242
|
-
/** Default rarity order */
|
|
243
|
-
export declare const RARITY_ORDER: Record<ItemRarity, number>;
|
|
244
|
-
export declare class NiceInventory extends EventEmitter<Record<InventoryEventType, [InventoryEvent]>> {
|
|
245
|
-
private config;
|
|
246
|
-
private itemDefinitions;
|
|
247
|
-
private inventories;
|
|
248
|
-
private containers;
|
|
249
|
-
private equipmentSets;
|
|
250
|
-
private instanceCounter;
|
|
251
|
-
constructor(config?: Partial<InventoryConfig>);
|
|
252
|
-
/**
|
|
253
|
-
* Register an item definition
|
|
254
|
-
*/
|
|
255
|
-
registerItem(item: ItemDefinition): void;
|
|
256
|
-
/**
|
|
257
|
-
* Register multiple items
|
|
258
|
-
*/
|
|
259
|
-
registerItems(items: ItemDefinition[]): void;
|
|
260
|
-
/**
|
|
261
|
-
* Get item definition
|
|
262
|
-
*/
|
|
263
|
-
getItemDefinition(id: ItemId): ItemDefinition | undefined;
|
|
264
|
-
/**
|
|
265
|
-
* Register equipment set
|
|
266
|
-
*/
|
|
267
|
-
registerEquipmentSet(set: EquipmentSet): void;
|
|
268
|
-
/**
|
|
269
|
-
* Create a new inventory
|
|
270
|
-
*/
|
|
271
|
-
createInventory(definition: InventoryDefinition): Inventory;
|
|
272
|
-
/**
|
|
273
|
-
* Get inventory
|
|
274
|
-
*/
|
|
275
|
-
getInventory(id: InventoryId): Inventory | undefined;
|
|
276
|
-
/**
|
|
277
|
-
* Delete inventory
|
|
278
|
-
*/
|
|
279
|
-
deleteInventory(id: InventoryId): boolean;
|
|
280
|
-
/**
|
|
281
|
-
* Create an item instance
|
|
282
|
-
*/
|
|
283
|
-
createItemInstance(itemId: ItemId, quantity?: number): ItemInstance | null;
|
|
284
|
-
/**
|
|
285
|
-
* Add item to inventory
|
|
286
|
-
*/
|
|
287
|
-
addItem(inventoryId: InventoryId, itemId: ItemId, quantity?: number, targetSlot?: number): TransferResult;
|
|
288
|
-
/**
|
|
289
|
-
* Remove item from inventory
|
|
290
|
-
*/
|
|
291
|
-
removeItem(inventoryId: InventoryId, itemId: ItemId, quantity?: number): TransferResult;
|
|
292
|
-
/**
|
|
293
|
-
* Remove item from specific slot
|
|
294
|
-
*/
|
|
295
|
-
removeFromSlot(inventoryId: InventoryId, slotIndex: number, quantity?: number): ItemInstance | null;
|
|
296
|
-
/**
|
|
297
|
-
* Move item within inventory
|
|
298
|
-
*/
|
|
299
|
-
moveItem(inventoryId: InventoryId, fromSlot: number, toSlot: number): boolean;
|
|
300
|
-
/**
|
|
301
|
-
* Transfer item between inventories
|
|
302
|
-
*/
|
|
303
|
-
transferItem(fromInventoryId: InventoryId, fromSlot: number, toInventoryId: InventoryId, toSlot?: number, quantity?: number): TransferResult;
|
|
304
|
-
/**
|
|
305
|
-
* Split stack
|
|
306
|
-
*/
|
|
307
|
-
splitStack(inventoryId: InventoryId, slotIndex: number, quantity: number, targetSlot?: number): boolean;
|
|
308
|
-
/**
|
|
309
|
-
* Equip item
|
|
310
|
-
*/
|
|
311
|
-
equipItem(inventoryId: InventoryId, slotIndex: number, equipSlot?: EquipmentSlot): boolean;
|
|
312
|
-
/**
|
|
313
|
-
* Unequip item
|
|
314
|
-
*/
|
|
315
|
-
unequipItem(inventoryId: InventoryId, equipSlot: EquipmentSlot, targetSlot?: number): boolean;
|
|
316
|
-
/**
|
|
317
|
-
* Get equipped item
|
|
318
|
-
*/
|
|
319
|
-
getEquippedItem(inventoryId: InventoryId, equipSlot: EquipmentSlot): ItemInstance | null;
|
|
320
|
-
/**
|
|
321
|
-
* Get all equipped items
|
|
322
|
-
*/
|
|
323
|
-
getEquippedItems(inventoryId: InventoryId): Map<EquipmentSlot, ItemInstance>;
|
|
324
|
-
/**
|
|
325
|
-
* Calculate equipment stats
|
|
326
|
-
*/
|
|
327
|
-
getEquipmentStats(inventoryId: InventoryId): Map<string, number>;
|
|
328
|
-
/**
|
|
329
|
-
* Check set bonuses
|
|
330
|
-
*/
|
|
331
|
-
private checkSetBonuses;
|
|
332
|
-
/**
|
|
333
|
-
* Use item
|
|
334
|
-
*/
|
|
335
|
-
useItem(inventoryId: InventoryId, slotIndex: number, _target?: unknown): boolean;
|
|
336
|
-
/**
|
|
337
|
-
* Reduce item durability
|
|
338
|
-
*/
|
|
339
|
-
reduceDurability(inventoryId: InventoryId, equipSlot: EquipmentSlot, amount?: number): boolean;
|
|
340
|
-
/**
|
|
341
|
-
* Repair item
|
|
342
|
-
*/
|
|
343
|
-
repairItem(inventoryId: InventoryId, equipSlot: EquipmentSlot, amount?: number): boolean;
|
|
344
|
-
/**
|
|
345
|
-
* Get currency
|
|
346
|
-
*/
|
|
347
|
-
getCurrency(inventoryId: InventoryId, currencyId: string): number;
|
|
348
|
-
/**
|
|
349
|
-
* Add currency
|
|
350
|
-
*/
|
|
351
|
-
addCurrency(inventoryId: InventoryId, currencyId: string, amount: number): boolean;
|
|
352
|
-
/**
|
|
353
|
-
* Remove currency
|
|
354
|
-
*/
|
|
355
|
-
removeCurrency(inventoryId: InventoryId, currencyId: string, amount: number): boolean;
|
|
356
|
-
/**
|
|
357
|
-
* Set currency
|
|
358
|
-
*/
|
|
359
|
-
setCurrency(inventoryId: InventoryId, currencyId: string, amount: number): boolean;
|
|
360
|
-
/**
|
|
361
|
-
* Create container
|
|
362
|
-
*/
|
|
363
|
-
createContainer(id: ContainerId, name: string, size: number, position?: {
|
|
364
|
-
x: number;
|
|
365
|
-
y: number;
|
|
366
|
-
z: number;
|
|
367
|
-
}): Container;
|
|
368
|
-
/**
|
|
369
|
-
* Get container
|
|
370
|
-
*/
|
|
371
|
-
getContainer(id: ContainerId): Container | undefined;
|
|
372
|
-
/**
|
|
373
|
-
* Open container
|
|
374
|
-
*/
|
|
375
|
-
openContainer(id: ContainerId): boolean;
|
|
376
|
-
/**
|
|
377
|
-
* Close container
|
|
378
|
-
*/
|
|
379
|
-
closeContainer(id: ContainerId): boolean;
|
|
380
|
-
/**
|
|
381
|
-
* Unlock container
|
|
382
|
-
*/
|
|
383
|
-
unlockContainer(id: ContainerId, keyItemId?: ItemId): boolean;
|
|
384
|
-
/**
|
|
385
|
-
* Lock container
|
|
386
|
-
*/
|
|
387
|
-
lockContainer(id: ContainerId): boolean;
|
|
388
|
-
/**
|
|
389
|
-
* Sort inventory
|
|
390
|
-
*/
|
|
391
|
-
sortInventory(inventoryId: InventoryId, options: SortOptions): boolean;
|
|
392
|
-
/**
|
|
393
|
-
* Filter inventory items
|
|
394
|
-
*/
|
|
395
|
-
filterItems(inventoryId: InventoryId, options: FilterOptions): ItemInstance[];
|
|
396
|
-
/**
|
|
397
|
-
* Count items in inventory
|
|
398
|
-
*/
|
|
399
|
-
countItem(inventoryId: InventoryId, itemId: ItemId): number;
|
|
400
|
-
/**
|
|
401
|
-
* Has item
|
|
402
|
-
*/
|
|
403
|
-
hasItem(inventoryId: InventoryId, itemId: ItemId, quantity?: number): boolean;
|
|
404
|
-
/**
|
|
405
|
-
* Get empty slot count
|
|
406
|
-
*/
|
|
407
|
-
getEmptySlotCount(inventoryId: InventoryId): number;
|
|
408
|
-
/**
|
|
409
|
-
* Check if inventory is full
|
|
410
|
-
*/
|
|
411
|
-
isInventoryFull(inventoryId: InventoryId): boolean;
|
|
412
|
-
/**
|
|
413
|
-
* Get all items
|
|
414
|
-
*/
|
|
415
|
-
getAllItems(inventoryId: InventoryId): ItemInstance[];
|
|
416
|
-
/**
|
|
417
|
-
* Find item slot
|
|
418
|
-
*/
|
|
419
|
-
findItemSlot(inventoryId: InventoryId, itemId: ItemId): number;
|
|
420
|
-
/**
|
|
421
|
-
* Get inventory stats
|
|
422
|
-
*/
|
|
423
|
-
getInventoryStats(inventoryId: InventoryId): {
|
|
424
|
-
totalSlots: number;
|
|
425
|
-
usedSlots: number;
|
|
426
|
-
emptySlots: number;
|
|
427
|
-
lockedSlots: number;
|
|
428
|
-
currentWeight: number;
|
|
429
|
-
maxWeight: number | undefined;
|
|
430
|
-
totalValue: number;
|
|
431
|
-
itemCount: number;
|
|
432
|
-
uniqueItems: number;
|
|
433
|
-
};
|
|
434
|
-
/**
|
|
435
|
-
* Export inventory state
|
|
436
|
-
*/
|
|
437
|
-
exportState(inventoryId: InventoryId): {
|
|
438
|
-
slots: Array<{
|
|
439
|
-
index: number;
|
|
440
|
-
itemId?: ItemId;
|
|
441
|
-
quantity?: number;
|
|
442
|
-
durability?: number;
|
|
443
|
-
charges?: number;
|
|
444
|
-
metadata?: Record<string, unknown>;
|
|
445
|
-
}>;
|
|
446
|
-
equipment: Array<{
|
|
447
|
-
slot: EquipmentSlot;
|
|
448
|
-
itemId: ItemId;
|
|
449
|
-
durability?: number;
|
|
450
|
-
charges?: number;
|
|
451
|
-
}>;
|
|
452
|
-
currencies: Record<string, number>;
|
|
453
|
-
} | null;
|
|
454
|
-
/**
|
|
455
|
-
* Import inventory state
|
|
456
|
-
*/
|
|
457
|
-
importState(inventoryId: InventoryId, data: NonNullable<ReturnType<typeof this.exportState>>): boolean;
|
|
458
|
-
/**
|
|
459
|
-
* Destroy the inventory system
|
|
460
|
-
*/
|
|
461
|
-
destroy(): void;
|
|
462
|
-
}
|
|
463
|
-
/**
|
|
464
|
-
* Create an inventory system
|
|
465
|
-
*/
|
|
466
|
-
export declare function createInventorySystem(config?: Partial<InventoryConfig>): NiceInventory;
|
|
467
|
-
/**
|
|
468
|
-
* Fluent builder for creating items
|
|
469
|
-
*/
|
|
470
|
-
export declare class ItemBuilder {
|
|
471
|
-
private item;
|
|
472
|
-
constructor(id: ItemId, name: string, type: ItemType);
|
|
473
|
-
description(desc: string): this;
|
|
474
|
-
rarity(r: ItemRarity): this;
|
|
475
|
-
icon(icon: string): this;
|
|
476
|
-
model(model: string): this;
|
|
477
|
-
stack(max: number): this;
|
|
478
|
-
weight(w: number): this;
|
|
479
|
-
value(v: number): this;
|
|
480
|
-
sellValue(v: number): this;
|
|
481
|
-
buyValue(v: number): this;
|
|
482
|
-
equipSlot(slot: EquipmentSlot, twoHanded?: boolean): this;
|
|
483
|
-
stat(stat: string, value: number, type?: StatModifier['type']): this;
|
|
484
|
-
effect(effect: ItemEffect): this;
|
|
485
|
-
requirement(req: ItemRequirement): this;
|
|
486
|
-
requireLevel(level: number): this;
|
|
487
|
-
durability(max: number): this;
|
|
488
|
-
charges(num: number): this;
|
|
489
|
-
cooldown(ms: number): this;
|
|
490
|
-
usable(): this;
|
|
491
|
-
consumable(): this;
|
|
492
|
-
questItem(): this;
|
|
493
|
-
soulbound(): this;
|
|
494
|
-
unique(): this;
|
|
495
|
-
notTradeable(): this;
|
|
496
|
-
notDroppable(): this;
|
|
497
|
-
notDestroyable(): this;
|
|
498
|
-
setId(id: string): this;
|
|
499
|
-
tags(...tags: string[]): this;
|
|
500
|
-
lore(...lines: string[]): this;
|
|
501
|
-
build(): ItemDefinition;
|
|
502
|
-
}
|
|
503
|
-
/**
|
|
504
|
-
* Create an item builder
|
|
505
|
-
*/
|
|
506
|
-
export declare function item(id: ItemId, name: string, type: ItemType): ItemBuilder;
|
|
507
|
-
/**
|
|
508
|
-
* Create a weapon
|
|
509
|
-
*/
|
|
510
|
-
export declare function weapon(id: ItemId, name: string, slot?: EquipmentSlot): ItemBuilder;
|
|
511
|
-
/**
|
|
512
|
-
* Create armor
|
|
513
|
-
*/
|
|
514
|
-
export declare function armor(id: ItemId, name: string, slot: EquipmentSlot): ItemBuilder;
|
|
515
|
-
/**
|
|
516
|
-
* Create a consumable
|
|
517
|
-
*/
|
|
518
|
-
export declare function consumable(id: ItemId, name: string): ItemBuilder;
|
|
519
|
-
/**
|
|
520
|
-
* Create a material
|
|
521
|
-
*/
|
|
522
|
-
export declare function material(id: ItemId, name: string): ItemBuilder;
|
|
523
|
-
/**
|
|
524
|
-
* Create an inventory definition
|
|
525
|
-
*/
|
|
526
|
-
export declare function inventoryDef(id: InventoryId, name: string, size: number, maxWeight?: number): InventoryDefinition;
|
|
527
|
-
/**
|
|
528
|
-
* Get rarity color
|
|
529
|
-
*/
|
|
530
|
-
export declare function getRarityColor(rarity: ItemRarity): string;
|
|
531
|
-
/**
|
|
532
|
-
* Compare items by rarity
|
|
533
|
-
*/
|
|
534
|
-
export declare function compareRarity(a: ItemRarity, b: ItemRarity): number;
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'events';
|
|
2
|
-
export type EntityId = string;
|
|
3
|
-
export type LODGroupId = string;
|
|
4
|
-
export type LODModelId = string;
|
|
5
|
-
export interface Vector3 {
|
|
6
|
-
x: number;
|
|
7
|
-
y: number;
|
|
8
|
-
z: number;
|
|
9
|
-
}
|
|
10
|
-
export interface LODLevel {
|
|
11
|
-
level: number;
|
|
12
|
-
modelId: LODModelId;
|
|
13
|
-
triangleCount: number;
|
|
14
|
-
distance: number;
|
|
15
|
-
screenSize?: number;
|
|
16
|
-
fadeStart?: number;
|
|
17
|
-
fadeEnd?: number;
|
|
18
|
-
}
|
|
19
|
-
export interface LODObject {
|
|
20
|
-
id: EntityId;
|
|
21
|
-
position: Vector3;
|
|
22
|
-
boundingRadius: number;
|
|
23
|
-
currentLevel: number;
|
|
24
|
-
targetLevel: number;
|
|
25
|
-
fadeProgress: number;
|
|
26
|
-
lodGroup?: LODGroupId;
|
|
27
|
-
levels: LODLevel[];
|
|
28
|
-
forceLevel?: number;
|
|
29
|
-
isStatic: boolean;
|
|
30
|
-
priority: number;
|
|
31
|
-
lastUpdateFrame: number;
|
|
32
|
-
}
|
|
33
|
-
export interface LODGroup {
|
|
34
|
-
id: LODGroupId;
|
|
35
|
-
name: string;
|
|
36
|
-
enabled: boolean;
|
|
37
|
-
distanceMultiplier: number;
|
|
38
|
-
biasLevel: number;
|
|
39
|
-
memberIds: EntityId[];
|
|
40
|
-
}
|
|
41
|
-
export type QualityPreset = 'low' | 'medium' | 'high' | 'ultra';
|
|
42
|
-
export interface LODBias {
|
|
43
|
-
globalDistanceMultiplier: number;
|
|
44
|
-
globalLevelBias: number;
|
|
45
|
-
transitionDuration: number;
|
|
46
|
-
ditherTransition: boolean;
|
|
47
|
-
crossFade: boolean;
|
|
48
|
-
}
|
|
49
|
-
export interface PerformanceBudget {
|
|
50
|
-
maxTriangles: number;
|
|
51
|
-
maxDrawCalls: number;
|
|
52
|
-
targetFrameTime: number;
|
|
53
|
-
}
|
|
54
|
-
export interface PerformanceStats {
|
|
55
|
-
currentTriangles: number;
|
|
56
|
-
currentDrawCalls: number;
|
|
57
|
-
currentFrameTime: number;
|
|
58
|
-
averageFrameTime: number;
|
|
59
|
-
lodSwitches: number;
|
|
60
|
-
}
|
|
61
|
-
export interface FrustumPlane {
|
|
62
|
-
normal: Vector3;
|
|
63
|
-
distance: number;
|
|
64
|
-
}
|
|
65
|
-
export interface Frustum {
|
|
66
|
-
planes: FrustumPlane[];
|
|
67
|
-
}
|
|
68
|
-
export type LODEventType = 'lod-changed' | 'lod-fade-started' | 'lod-fade-completed' | 'object-registered' | 'object-unregistered' | 'group-created' | 'group-removed' | 'budget-exceeded' | 'quality-changed';
|
|
69
|
-
export interface LODEvent {
|
|
70
|
-
type: LODEventType;
|
|
71
|
-
entityId?: EntityId;
|
|
72
|
-
groupId?: LODGroupId;
|
|
73
|
-
data?: Record<string, unknown>;
|
|
74
|
-
}
|
|
75
|
-
export interface LODSystemConfig {
|
|
76
|
-
defaultDistances?: number[];
|
|
77
|
-
defaultTransitionDuration?: number;
|
|
78
|
-
updateFrequency?: number;
|
|
79
|
-
screenSizeMetric?: 'height' | 'diagonal';
|
|
80
|
-
enableFrustumCulling?: boolean;
|
|
81
|
-
enableOcclusionCulling?: boolean;
|
|
82
|
-
maxTriangleBudget?: number;
|
|
83
|
-
autoAdjustQuality?: boolean;
|
|
84
|
-
hysteresis?: number;
|
|
85
|
-
}
|
|
86
|
-
export declare const DEFAULT_LOD_CONFIG: LODSystemConfig;
|
|
87
|
-
export declare class NiceLOD extends EventEmitter {
|
|
88
|
-
private objects;
|
|
89
|
-
private groups;
|
|
90
|
-
private config;
|
|
91
|
-
private bias;
|
|
92
|
-
private budget;
|
|
93
|
-
private stats;
|
|
94
|
-
private cameraPosition;
|
|
95
|
-
private frustum?;
|
|
96
|
-
private frameCounter;
|
|
97
|
-
private updateCounter;
|
|
98
|
-
private qualityPreset;
|
|
99
|
-
constructor(config?: Partial<LODSystemConfig>);
|
|
100
|
-
registerObject(entityId: EntityId, position: Vector3, levels: LODLevel[], options?: {
|
|
101
|
-
boundingRadius?: number;
|
|
102
|
-
lodGroup?: LODGroupId;
|
|
103
|
-
isStatic?: boolean;
|
|
104
|
-
priority?: number;
|
|
105
|
-
}): void;
|
|
106
|
-
unregisterObject(entityId: EntityId): void;
|
|
107
|
-
getObject(entityId: EntityId): LODObject | undefined;
|
|
108
|
-
updateObjectPosition(entityId: EntityId, position: Vector3): void;
|
|
109
|
-
createGroup(id: LODGroupId, name: string): LODGroup;
|
|
110
|
-
removeGroup(groupId: LODGroupId): void;
|
|
111
|
-
getGroup(groupId: LODGroupId): LODGroup | undefined;
|
|
112
|
-
setGroupDistanceMultiplier(groupId: LODGroupId, multiplier: number): void;
|
|
113
|
-
setGroupBias(groupId: LODGroupId, bias: number): void;
|
|
114
|
-
forceLevel(entityId: EntityId, level: number | undefined): void;
|
|
115
|
-
forceGroupLevel(groupId: LODGroupId, level: number | undefined): void;
|
|
116
|
-
setCameraPosition(position: Vector3): void;
|
|
117
|
-
setFrustum(frustum: Frustum): void;
|
|
118
|
-
setBias(bias: Partial<LODBias>): void;
|
|
119
|
-
getBias(): LODBias;
|
|
120
|
-
setQualityPreset(preset: QualityPreset): void;
|
|
121
|
-
getQualityPreset(): QualityPreset;
|
|
122
|
-
setBudget(budget: Partial<PerformanceBudget>): void;
|
|
123
|
-
getBudget(): PerformanceBudget;
|
|
124
|
-
getStats(): PerformanceStats;
|
|
125
|
-
reportFrameTime(frameTime: number): void;
|
|
126
|
-
private autoAdjustQuality;
|
|
127
|
-
update(deltaTime: number): void;
|
|
128
|
-
private updateLODs;
|
|
129
|
-
private updateTransitions;
|
|
130
|
-
private setObjectLevel;
|
|
131
|
-
private addToStats;
|
|
132
|
-
isObjectVisible(entityId: EntityId): boolean;
|
|
133
|
-
private isInFrustum;
|
|
134
|
-
getVisibleObjects(): LODObject[];
|
|
135
|
-
getCurrentLevel(entityId: EntityId): number;
|
|
136
|
-
getCurrentModel(entityId: EntityId): LODModelId | undefined;
|
|
137
|
-
getFadeProgress(entityId: EntityId): number;
|
|
138
|
-
getTriangleCount(entityId: EntityId): number;
|
|
139
|
-
getTotalTriangleCount(): number;
|
|
140
|
-
private calculateDistance;
|
|
141
|
-
}
|
|
142
|
-
export declare function createLODSystem(config?: Partial<LODSystemConfig>): NiceLOD;
|
|
143
|
-
export declare function defineLODLevel(options: LODLevel): LODLevel;
|
|
144
|
-
export default NiceLOD;
|