@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.
Files changed (253) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +2 -2
  3. package/dist/types/accessibility/index.d.ts +0 -1
  4. package/dist/types/ai/index.d.ts +0 -1
  5. package/dist/types/animation/index.d.ts +0 -1
  6. package/dist/types/audio/HRTFAudio.d.ts +0 -180
  7. package/dist/types/audio/index.d.ts +0 -2
  8. package/dist/types/community/Community.d.ts +0 -112
  9. package/dist/types/community/index.d.ts +0 -1
  10. package/dist/types/core/TypeSafety.d.ts +0 -190
  11. package/dist/types/core/index.d.ts +0 -7
  12. package/dist/types/devtools/AssetStore.d.ts +0 -133
  13. package/dist/types/devtools/index.d.ts +0 -3
  14. package/dist/types/dialogue/index.d.ts +0 -2
  15. package/dist/types/docs/APIPlayground.d.ts +0 -26
  16. package/dist/types/docs/Cookbook.d.ts +0 -18
  17. package/dist/types/docs/Guides.d.ts +0 -18
  18. package/dist/types/docs/index.d.ts +0 -4
  19. package/dist/types/ecs/ECSOptimized.d.ts +0 -131
  20. package/dist/types/ecs/index.d.ts +0 -2
  21. package/dist/types/editor/NiceAnimationTimeline.d.ts +0 -114
  22. package/dist/types/editor/NiceLevelEditor.d.ts +0 -232
  23. package/dist/types/editor/NiceMaterialEditor.d.ts +0 -105
  24. package/dist/types/editor/NiceNodeGraph.d.ts +0 -87
  25. package/dist/types/editor/NiceParticleEditor.d.ts +0 -127
  26. package/dist/types/editor/behavior-tree/BTDebugPanel.d.ts +0 -102
  27. package/dist/types/editor/behavior-tree/BTEditorCanvas.d.ts +0 -79
  28. package/dist/types/editor/behavior-tree/BTEditorNode.d.ts +0 -58
  29. package/dist/types/editor/behavior-tree/BTEditorToolbar.d.ts +0 -75
  30. package/dist/types/editor/behavior-tree/BTNodePalette.d.ts +0 -72
  31. package/dist/types/editor/behavior-tree/BTPropertyPanel.d.ts +0 -66
  32. package/dist/types/editor/behavior-tree/BehaviorTreeEditor.d.ts +0 -186
  33. package/dist/types/editor/behavior-tree/index.d.ts +0 -14
  34. package/dist/types/editor/behavior-tree/serialization.d.ts +0 -30
  35. package/dist/types/editor/behavior-tree/types.d.ts +0 -299
  36. package/dist/types/editor/index.d.ts +0 -20
  37. package/dist/types/editor/state-machine/SMEditorCanvas.d.ts +0 -61
  38. package/dist/types/editor/state-machine/StateMachineEditor.d.ts +0 -139
  39. package/dist/types/editor/state-machine/index.d.ts +0 -11
  40. package/dist/types/editor/state-machine/serialization.d.ts +0 -23
  41. package/dist/types/editor/state-machine/types.d.ts +0 -241
  42. package/dist/types/engine/index.d.ts +0 -2
  43. package/dist/types/enterprise/index.d.ts +0 -1
  44. package/dist/types/epic/index.d.ts +0 -10
  45. package/dist/types/i18n/index.d.ts +0 -2
  46. package/dist/types/input/index.d.ts +0 -3
  47. package/dist/types/kids/index.d.ts +0 -2
  48. package/dist/types/legendary/index.d.ts +0 -57
  49. package/dist/types/monetization/index.d.ts +0 -1
  50. package/dist/types/multiplayer/NiceNetcode.d.ts +0 -434
  51. package/dist/types/multiplayer/index.d.ts +0 -5
  52. package/dist/types/network/index.d.ts +0 -2
  53. package/dist/types/pathfinding/index.d.ts +0 -1
  54. package/dist/types/performance/AssetCompression.d.ts +0 -137
  55. package/dist/types/performance/WASMModules.d.ts +0 -65
  56. package/dist/types/performance/WebGPUCompute.d.ts +0 -71
  57. package/dist/types/performance/index.d.ts +0 -1
  58. package/dist/types/physics/RapierIntegration.d.ts +0 -404
  59. package/dist/types/physics/index.d.ts +0 -2
  60. package/dist/types/plugins/index.d.ts +0 -2
  61. package/dist/types/procedural/index.d.ts +0 -2
  62. package/dist/types/release/index.d.ts +0 -1
  63. package/dist/types/rendering/WebGPUv2.d.ts +0 -173
  64. package/dist/types/rendering/index.d.ts +0 -3
  65. package/dist/types/runtime3d/index.d.ts +0 -2
  66. package/dist/types/scene/index.d.ts +0 -2
  67. package/dist/types/scripting/WasmCompiler.d.ts +0 -182
  68. package/dist/types/scripting/index.d.ts +0 -19
  69. package/dist/types/social/index.d.ts +0 -1
  70. package/dist/types/systems/NiceAI.d.ts +0 -637
  71. package/dist/types/systems/NiceAbility.d.ts +0 -225
  72. package/dist/types/systems/NiceAccessibility.d.ts +0 -230
  73. package/dist/types/systems/NiceAchievement.d.ts +0 -153
  74. package/dist/types/systems/NiceAchievementUI.d.ts +0 -196
  75. package/dist/types/systems/NiceAchievements.d.ts +0 -230
  76. package/dist/types/systems/NiceAction.d.ts +0 -81
  77. package/dist/types/systems/NiceAlchemy.d.ts +0 -195
  78. package/dist/types/systems/NiceAnalytics.d.ts +0 -493
  79. package/dist/types/systems/NiceAnimation.d.ts +0 -350
  80. package/dist/types/systems/NiceArena.d.ts +0 -215
  81. package/dist/types/systems/NiceAssetLoader.d.ts +0 -136
  82. package/dist/types/systems/NiceAuction.d.ts +0 -157
  83. package/dist/types/systems/NiceAudio.d.ts +0 -224
  84. package/dist/types/systems/NiceAugment.d.ts +0 -187
  85. package/dist/types/systems/NiceAura.d.ts +0 -193
  86. package/dist/types/systems/NiceBank.d.ts +0 -158
  87. package/dist/types/systems/NiceBattlePass.d.ts +0 -150
  88. package/dist/types/systems/NiceBehavior.d.ts +0 -160
  89. package/dist/types/systems/NiceBinding.d.ts +0 -96
  90. package/dist/types/systems/NiceBlacksmith.d.ts +0 -221
  91. package/dist/types/systems/NiceBuff.d.ts +0 -177
  92. package/dist/types/systems/NiceBuilding.d.ts +0 -207
  93. package/dist/types/systems/NiceBullet.d.ts +0 -167
  94. package/dist/types/systems/NiceCamera.d.ts +0 -252
  95. package/dist/types/systems/NiceCard.d.ts +0 -171
  96. package/dist/types/systems/NiceChat.d.ts +0 -148
  97. package/dist/types/systems/NiceCheat.d.ts +0 -375
  98. package/dist/types/systems/NiceClimbing.d.ts +0 -186
  99. package/dist/types/systems/NiceCloud.d.ts +0 -422
  100. package/dist/types/systems/NiceCollision.d.ts +0 -238
  101. package/dist/types/systems/NiceCombo.d.ts +0 -131
  102. package/dist/types/systems/NiceCommand.d.ts +0 -112
  103. package/dist/types/systems/NiceCompanion.d.ts +0 -182
  104. package/dist/types/systems/NiceController.d.ts +0 -144
  105. package/dist/types/systems/NiceCooking.d.ts +0 -193
  106. package/dist/types/systems/NiceCoroutine.d.ts +0 -101
  107. package/dist/types/systems/NiceCrafting.d.ts +0 -228
  108. package/dist/types/systems/NiceCutscene.d.ts +0 -437
  109. package/dist/types/systems/NiceDaily.d.ts +0 -133
  110. package/dist/types/systems/NiceDamage.d.ts +0 -271
  111. package/dist/types/systems/NiceDayNight.d.ts +0 -126
  112. package/dist/types/systems/NiceDebug.d.ts +0 -255
  113. package/dist/types/systems/NiceDestructible.d.ts +0 -150
  114. package/dist/types/systems/NiceDialogue.d.ts +0 -629
  115. package/dist/types/systems/NiceDungeon.d.ts +0 -202
  116. package/dist/types/systems/NiceECS.d.ts +0 -151
  117. package/dist/types/systems/NiceEnchant.d.ts +0 -148
  118. package/dist/types/systems/NiceEntityPool.d.ts +0 -127
  119. package/dist/types/systems/NiceEquipment.d.ts +0 -137
  120. package/dist/types/systems/NiceEvent.d.ts +0 -202
  121. package/dist/types/systems/NiceEventBus.d.ts +0 -164
  122. package/dist/types/systems/NiceFaction.d.ts +0 -173
  123. package/dist/types/systems/NiceFarming.d.ts +0 -163
  124. package/dist/types/systems/NiceFishing.d.ts +0 -196
  125. package/dist/types/systems/NiceFlocking.d.ts +0 -156
  126. package/dist/types/systems/NiceFog.d.ts +0 -137
  127. package/dist/types/systems/NiceFormation.d.ts +0 -140
  128. package/dist/types/systems/NiceGacha.d.ts +0 -134
  129. package/dist/types/systems/NiceGambling.d.ts +0 -175
  130. package/dist/types/systems/NiceGem.d.ts +0 -165
  131. package/dist/types/systems/NiceGesture.d.ts +0 -502
  132. package/dist/types/systems/NiceGrappling.d.ts +0 -154
  133. package/dist/types/systems/NiceGrid.d.ts +0 -142
  134. package/dist/types/systems/NiceGuild.d.ts +0 -162
  135. package/dist/types/systems/NiceHaptics.d.ts +0 -112
  136. package/dist/types/systems/NiceHousing.d.ts +0 -197
  137. package/dist/types/systems/NiceInput.d.ts +0 -280
  138. package/dist/types/systems/NiceInventory.d.ts +0 -534
  139. package/dist/types/systems/NiceLOD.d.ts +0 -144
  140. package/dist/types/systems/NiceLeaderboard.d.ts +0 -191
  141. package/dist/types/systems/NiceLevel.d.ts +0 -304
  142. package/dist/types/systems/NiceLighting.d.ts +0 -214
  143. package/dist/types/systems/NiceLocalization.d.ts +0 -148
  144. package/dist/types/systems/NiceLocomotion.d.ts +0 -398
  145. package/dist/types/systems/NiceLogger.d.ts +0 -117
  146. package/dist/types/systems/NiceLoot.d.ts +0 -176
  147. package/dist/types/systems/NiceMail.d.ts +0 -164
  148. package/dist/types/systems/NiceMap.d.ts +0 -234
  149. package/dist/types/systems/NiceMarriage.d.ts +0 -150
  150. package/dist/types/systems/NiceMastery.d.ts +0 -171
  151. package/dist/types/systems/NiceMatch.d.ts +0 -196
  152. package/dist/types/systems/NiceMatch3.d.ts +0 -118
  153. package/dist/types/systems/NiceMessageBus.d.ts +0 -115
  154. package/dist/types/systems/NiceMinimap.d.ts +0 -258
  155. package/dist/types/systems/NiceMining.d.ts +0 -175
  156. package/dist/types/systems/NiceModding.d.ts +0 -452
  157. package/dist/types/systems/NiceMount.d.ts +0 -152
  158. package/dist/types/systems/NiceNavigation.d.ts +0 -307
  159. package/dist/types/systems/NiceNetwork.d.ts +0 -568
  160. package/dist/types/systems/NiceNotification.d.ts +0 -438
  161. package/dist/types/systems/NiceObjective.d.ts +0 -395
  162. package/dist/types/systems/NiceParticle.d.ts +0 -639
  163. package/dist/types/systems/NiceParty.d.ts +0 -168
  164. package/dist/types/systems/NicePerformance.d.ts +0 -144
  165. package/dist/types/systems/NicePet.d.ts +0 -167
  166. package/dist/types/systems/NicePhotoMode.d.ts +0 -270
  167. package/dist/types/systems/NicePhysics.d.ts +0 -326
  168. package/dist/types/systems/NicePlatformer.d.ts +0 -158
  169. package/dist/types/systems/NicePool.d.ts +0 -128
  170. package/dist/types/systems/NicePortal.d.ts +0 -178
  171. package/dist/types/systems/NicePostProcess.d.ts +0 -254
  172. package/dist/types/systems/NiceProcedural.d.ts +0 -202
  173. package/dist/types/systems/NiceProfile.d.ts +0 -223
  174. package/dist/types/systems/NiceProjectile.d.ts +0 -157
  175. package/dist/types/systems/NicePvP.d.ts +0 -199
  176. package/dist/types/systems/NiceQTE.d.ts +0 -160
  177. package/dist/types/systems/NiceQuest.d.ts +0 -620
  178. package/dist/types/systems/NiceRaid.d.ts +0 -215
  179. package/dist/types/systems/NiceRanking.d.ts +0 -399
  180. package/dist/types/systems/NiceReplay.d.ts +0 -180
  181. package/dist/types/systems/NiceReputation.d.ts +0 -151
  182. package/dist/types/systems/NiceResource.d.ts +0 -200
  183. package/dist/types/systems/NiceRhythm.d.ts +0 -148
  184. package/dist/types/systems/NiceRoguelike.d.ts +0 -276
  185. package/dist/types/systems/NiceRune.d.ts +0 -202
  186. package/dist/types/systems/NiceSaveSystem.d.ts +0 -194
  187. package/dist/types/systems/NiceSceneManager.d.ts +0 -112
  188. package/dist/types/systems/NiceScore.d.ts +0 -186
  189. package/dist/types/systems/NiceScreenFX.d.ts +0 -235
  190. package/dist/types/systems/NiceScreenshot.d.ts +0 -443
  191. package/dist/types/systems/NiceScribe.d.ts +0 -239
  192. package/dist/types/systems/NiceSeason.d.ts +0 -176
  193. package/dist/types/systems/NiceSerialization.d.ts +0 -89
  194. package/dist/types/systems/NiceServiceLocator.d.ts +0 -94
  195. package/dist/types/systems/NiceShop.d.ts +0 -528
  196. package/dist/types/systems/NiceSignal.d.ts +0 -112
  197. package/dist/types/systems/NiceSkillTree.d.ts +0 -237
  198. package/dist/types/systems/NiceSocial.d.ts +0 -580
  199. package/dist/types/systems/NiceSpawner.d.ts +0 -237
  200. package/dist/types/systems/NiceSpell.d.ts +0 -216
  201. package/dist/types/systems/NiceState.d.ts +0 -224
  202. package/dist/types/systems/NiceStateMachine.d.ts +0 -108
  203. package/dist/types/systems/NiceStatus.d.ts +0 -116
  204. package/dist/types/systems/NiceStealth.d.ts +0 -204
  205. package/dist/types/systems/NiceSteam.d.ts +0 -255
  206. package/dist/types/systems/NiceStreaming.d.ts +0 -173
  207. package/dist/types/systems/NiceSwimming.d.ts +0 -166
  208. package/dist/types/systems/NiceTalent.d.ts +0 -154
  209. package/dist/types/systems/NiceTarget.d.ts +0 -121
  210. package/dist/types/systems/NiceTerrain.d.ts +0 -143
  211. package/dist/types/systems/NiceTilemap.d.ts +0 -218
  212. package/dist/types/systems/NiceTimer.d.ts +0 -153
  213. package/dist/types/systems/NiceTournament.d.ts +0 -190
  214. package/dist/types/systems/NiceTrading.d.ts +0 -238
  215. package/dist/types/systems/NiceTransmog.d.ts +0 -142
  216. package/dist/types/systems/NiceTutorial.d.ts +0 -248
  217. package/dist/types/systems/NiceTween.d.ts +0 -164
  218. package/dist/types/systems/NiceUI.d.ts +0 -364
  219. package/dist/types/systems/NiceVFX.d.ts +0 -333
  220. package/dist/types/systems/NiceVehicle.d.ts +0 -176
  221. package/dist/types/systems/NiceVoice.d.ts +0 -502
  222. package/dist/types/systems/NiceWater.d.ts +0 -162
  223. package/dist/types/systems/NiceWave.d.ts +0 -174
  224. package/dist/types/systems/NiceWaypoint.d.ts +0 -165
  225. package/dist/types/systems/NiceWeather.d.ts +0 -225
  226. package/dist/types/systems/NiceXR.d.ts +0 -187
  227. package/dist/types/systems/index.d.ts +0 -182
  228. package/dist/types/templates/index.d.ts +0 -2
  229. package/dist/types/tilemap/index.d.ts +0 -1
  230. package/dist/types/tutorials/TutorialEditor.d.ts +0 -43
  231. package/dist/types/tutorials/VoiceNarration.d.ts +0 -75
  232. package/dist/types/tutorials/content/Tutorials_T04.d.ts +0 -3
  233. package/dist/types/tutorials/content/UITutorials.d.ts +0 -14
  234. package/dist/types/tutorials/content/index.d.ts +0 -5
  235. package/dist/types/tutorials/index.d.ts +0 -6
  236. package/dist/types/ui/index.d.ts +0 -2
  237. package/dist/types/visual-scripting/VisualScriptDebugger.d.ts +0 -145
  238. package/dist/types/visual-scripting/VisualScriptExecutor.d.ts +0 -100
  239. package/dist/types/visual-scripting/VisualScriptGraph.d.ts +0 -173
  240. package/dist/types/visual-scripting/VisualScriptNode.d.ts +0 -157
  241. package/dist/types/visual-scripting/index.d.ts +0 -6
  242. package/dist/types/visual-scripting/nodes/ActionNodes.d.ts +0 -152
  243. package/dist/types/visual-scripting/nodes/EventNodes.d.ts +0 -95
  244. package/dist/types/visual-scripting/nodes/FlowControlNodes.d.ts +0 -134
  245. package/dist/types/visual-scripting/nodes/LogicNodes.d.ts +0 -122
  246. package/dist/types/visual-scripting/nodes/MathNodes.d.ts +0 -170
  247. package/dist/types/visual-scripting/nodes/UtilityNodes.d.ts +0 -131
  248. package/dist/types/visual-scripting/nodes/VariableNodes.d.ts +0 -107
  249. package/dist/types/visual-scripting/nodes/index.d.ts +0 -21
  250. package/dist/types/visual-scripting/nodes/registerNodes.d.ts +0 -29
  251. package/dist/types/visual-scripting/types.d.ts +0 -402
  252. package/dist/types/xr/WebXRLayers.d.ts +0 -319
  253. 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;