@nice2dev/game-engine 1.3.13 → 1.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/CHANGELOG.md +4 -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,568 +0,0 @@
1
- /**
2
- * NiceNetwork - Comprehensive Multiplayer Network System
3
- *
4
- * Professional networking system for real-time multiplayer games.
5
- * Supports WebSocket, WebRTC, lobbies, matchmaking, and state sync.
6
- *
7
- * Features:
8
- * - WebSocket / WebRTC connections
9
- * - Lobby system with matchmaking
10
- * - Room management
11
- * - State synchronization
12
- * - Client prediction & reconciliation
13
- * - Lag compensation
14
- * - Message serialization
15
- * - RPC system
16
- * - Peer-to-peer support
17
- * - Host migration
18
- *
19
- * @packageDocumentation
20
- */
21
- import { EventEmitter } from 'eventemitter3';
22
- /** Unique identifier for clients */
23
- export type ClientId = string;
24
- /** Unique identifier for rooms */
25
- export type RoomId = string;
26
- /** Unique identifier for lobbies */
27
- export type LobbyId = string;
28
- /** Unique identifier for entities */
29
- export type EntityId = string;
30
- /** Connection state */
31
- export type ConnectionState = 'disconnected' | 'connecting' | 'connected' | 'reconnecting' | 'error';
32
- /** Network role */
33
- export type NetworkRole = 'server' | 'client' | 'host' | 'peer';
34
- /** Message priority */
35
- export type MessagePriority = 'low' | 'normal' | 'high' | 'critical';
36
- /** Delivery mode */
37
- export type DeliveryMode = 'unreliable' | 'reliable' | 'ordered';
38
- /** Serializable types */
39
- export type Serializable = string | number | boolean | null | undefined | Serializable[] | {
40
- [key: string]: Serializable;
41
- };
42
- /** Network message */
43
- export interface NetworkMessage {
44
- id: string;
45
- type: string;
46
- payload: Serializable;
47
- senderId: ClientId;
48
- timestamp: number;
49
- sequence: number;
50
- priority: MessagePriority;
51
- delivery: DeliveryMode;
52
- }
53
- /** Client info */
54
- export interface ClientInfo {
55
- id: ClientId;
56
- name: string;
57
- role: NetworkRole;
58
- roomId?: RoomId;
59
- lobbyId?: LobbyId;
60
- ping: number;
61
- lastSeen: number;
62
- metadata: Record<string, Serializable>;
63
- isReady: boolean;
64
- isHost: boolean;
65
- }
66
- /** Room configuration */
67
- export interface RoomConfig {
68
- id?: RoomId;
69
- name: string;
70
- maxPlayers: number;
71
- minPlayers: number;
72
- isPrivate: boolean;
73
- password?: string;
74
- gameMode?: string;
75
- metadata?: Record<string, Serializable>;
76
- tickRate: number;
77
- allowLateJoin: boolean;
78
- autoStart: boolean;
79
- }
80
- /** Room instance */
81
- export interface Room {
82
- id: RoomId;
83
- config: RoomConfig;
84
- hostId: ClientId;
85
- clients: Map<ClientId, ClientInfo>;
86
- state: RoomState;
87
- createdAt: number;
88
- startedAt?: number;
89
- gameState: Serializable;
90
- }
91
- /** Room state */
92
- export type RoomState = 'waiting' | 'countdown' | 'playing' | 'paused' | 'finished' | 'closed';
93
- /** Lobby configuration */
94
- export interface LobbyConfig {
95
- id?: LobbyId;
96
- name: string;
97
- maxRooms: number;
98
- region: string;
99
- metadata?: Record<string, Serializable>;
100
- }
101
- /** Lobby instance */
102
- export interface Lobby {
103
- id: LobbyId;
104
- config: LobbyConfig;
105
- rooms: Map<RoomId, RoomListing>;
106
- clients: Set<ClientId>;
107
- createdAt: number;
108
- }
109
- /** Room listing for lobby */
110
- export interface RoomListing {
111
- id: RoomId;
112
- name: string;
113
- hostName: string;
114
- playerCount: number;
115
- maxPlayers: number;
116
- isPrivate: boolean;
117
- state: RoomState;
118
- gameMode?: string;
119
- ping?: number;
120
- metadata?: Record<string, Serializable>;
121
- }
122
- /** Matchmaking request */
123
- export interface MatchmakingRequest {
124
- clientId: ClientId;
125
- gameMode: string;
126
- rating?: number;
127
- region?: string;
128
- partyIds?: ClientId[];
129
- preferences?: Record<string, Serializable>;
130
- createdAt: number;
131
- }
132
- /** Matchmaking match */
133
- export interface MatchmakingMatch {
134
- roomId: RoomId;
135
- clients: ClientId[];
136
- averageRating?: number;
137
- region: string;
138
- }
139
- /** Network entity */
140
- export interface NetworkEntity {
141
- id: EntityId;
142
- ownerId: ClientId;
143
- type: string;
144
- state: Serializable;
145
- lastUpdate: number;
146
- version: number;
147
- interpolation: {
148
- previous: Serializable;
149
- current: Serializable;
150
- timestamp: number;
151
- };
152
- }
153
- /** State snapshot */
154
- export interface StateSnapshot {
155
- sequence: number;
156
- timestamp: number;
157
- entities: Map<EntityId, Serializable>;
158
- gameState: Serializable;
159
- }
160
- /** Input frame */
161
- export interface InputFrame {
162
- sequence: number;
163
- timestamp: number;
164
- inputs: Serializable;
165
- clientId: ClientId;
166
- }
167
- /** RPC definition */
168
- export interface RPCDefinition {
169
- name: string;
170
- target: 'server' | 'client' | 'all' | 'others';
171
- validate?: (args: Serializable[], sender: ClientId) => boolean;
172
- }
173
- /** RPC call */
174
- export interface RPCCall {
175
- id: string;
176
- method: string;
177
- args: Serializable[];
178
- senderId: ClientId;
179
- targetId?: ClientId;
180
- timestamp: number;
181
- }
182
- /** Network event types */
183
- export type NetworkEventType = 'connected' | 'disconnected' | 'reconnected' | 'error' | 'message' | 'client:joined' | 'client:left' | 'client:ready' | 'client:notReady' | 'room:created' | 'room:joined' | 'room:left' | 'room:closed' | 'room:stateChanged' | 'room:hostChanged' | 'lobby:joined' | 'lobby:left' | 'lobby:updated' | 'matchmaking:started' | 'matchmaking:found' | 'matchmaking:cancelled' | 'matchmaking:failed' | 'state:sync' | 'state:snapshot' | 'entity:spawned' | 'entity:destroyed' | 'entity:updated' | 'rpc:called' | 'ping:updated';
184
- /** Network event */
185
- export interface NetworkEvent {
186
- type: NetworkEventType;
187
- clientId?: ClientId;
188
- roomId?: RoomId;
189
- lobbyId?: LobbyId;
190
- entityId?: EntityId;
191
- message?: NetworkMessage;
192
- client?: ClientInfo;
193
- room?: Room;
194
- lobby?: Lobby;
195
- state?: Serializable;
196
- error?: Error;
197
- ping?: number;
198
- timestamp: number;
199
- }
200
- /** Event callback */
201
- export type NetworkEventCallback = (event: NetworkEvent) => void;
202
- /** Network configuration */
203
- export interface NetworkConfig {
204
- /** Server URL */
205
- serverUrl: string;
206
- /** Use WebSocket */
207
- useWebSocket: boolean;
208
- /** Use WebRTC */
209
- useWebRTC: boolean;
210
- /** Auto reconnect */
211
- autoReconnect: boolean;
212
- /** Reconnect attempts */
213
- reconnectAttempts: number;
214
- /** Reconnect delay (ms) */
215
- reconnectDelay: number;
216
- /** Heartbeat interval (ms) */
217
- heartbeatInterval: number;
218
- /** Connection timeout (ms) */
219
- connectionTimeout: number;
220
- /** Message buffer size */
221
- messageBufferSize: number;
222
- /** Enable compression */
223
- compression: boolean;
224
- /** Client prediction */
225
- clientPrediction: boolean;
226
- /** Server reconciliation */
227
- serverReconciliation: boolean;
228
- /** Interpolation delay (ms) */
229
- interpolationDelay: number;
230
- /** Tick rate (Hz) */
231
- tickRate: number;
232
- /** Send rate (Hz) */
233
- sendRate: number;
234
- /** Enable debug logging */
235
- debug: boolean;
236
- }
237
- /** Default configuration */
238
- export declare const DEFAULT_NETWORK_CONFIG: NetworkConfig;
239
- export declare class NiceNetwork extends EventEmitter<Record<NetworkEventType, [NetworkEvent]>> {
240
- private config;
241
- private connectionState;
242
- private localClientId;
243
- private role;
244
- private ws;
245
- private reconnectTimer?;
246
- private reconnectCount;
247
- private heartbeatTimer?;
248
- private rooms;
249
- private lobbies;
250
- private clients;
251
- private entities;
252
- private localEntities;
253
- private messageCounter;
254
- private pendingMessages;
255
- private messageHandlers;
256
- private rpcDefinitions;
257
- private rpcHandlers;
258
- private rpcCallbacks;
259
- private inputBuffer;
260
- private stateSnapshots;
261
- private lastAckedInput;
262
- private localSequence;
263
- private remoteSequence;
264
- private matchmakingRequest;
265
- private matchmakingTimer?;
266
- private lastTickTime;
267
- private lastSendTime;
268
- private serverTimeOffset;
269
- private pingHistory;
270
- private currentPing;
271
- constructor(config?: Partial<NetworkConfig>);
272
- /**
273
- * Connect to server
274
- */
275
- connect(serverUrl?: string): Promise<boolean>;
276
- /**
277
- * Connect via WebSocket
278
- */
279
- private connectWebSocket;
280
- /**
281
- * Handle successful connection
282
- */
283
- private handleConnected;
284
- /**
285
- * Handle disconnection
286
- */
287
- private handleDisconnected;
288
- /**
289
- * Schedule reconnection
290
- */
291
- private scheduleReconnect;
292
- /**
293
- * Handle connection error
294
- */
295
- private handleConnectionError;
296
- /**
297
- * Disconnect from server
298
- */
299
- disconnect(): void;
300
- /**
301
- * Check if connected
302
- */
303
- isConnected(): boolean;
304
- /**
305
- * Get connection state
306
- */
307
- getConnectionState(): ConnectionState;
308
- /**
309
- * Get local client ID
310
- */
311
- getLocalClientId(): ClientId | null;
312
- /**
313
- * Start heartbeat
314
- */
315
- private startHeartbeat;
316
- /**
317
- * Stop heartbeat
318
- */
319
- private stopHeartbeat;
320
- /**
321
- * Send ping
322
- */
323
- private sendPing;
324
- /**
325
- * Handle pong
326
- */
327
- private handlePong;
328
- /**
329
- * Get current ping
330
- */
331
- getPing(): number;
332
- /**
333
- * Get average ping
334
- */
335
- getAveragePing(): number;
336
- /**
337
- * Send handshake
338
- */
339
- private sendHandshake;
340
- /**
341
- * Handle incoming message
342
- */
343
- private handleMessage;
344
- /**
345
- * Handle handshake acknowledgment
346
- */
347
- private handleHandshakeAck;
348
- /**
349
- * Send message
350
- */
351
- sendMessage(type: string, payload: Serializable, priority?: MessagePriority, delivery?: DeliveryMode): void;
352
- /**
353
- * Send raw message
354
- */
355
- private sendRaw;
356
- /**
357
- * Serialize message
358
- */
359
- private serializeMessage;
360
- /**
361
- * Deserialize message
362
- */
363
- private deserializeMessage;
364
- /**
365
- * Register message handler
366
- */
367
- onMessage(type: string, handler: (msg: NetworkMessage) => void): () => void;
368
- /**
369
- * Flush pending messages
370
- */
371
- private flushPendingMessages;
372
- /**
373
- * Create room
374
- */
375
- createRoom(config: Partial<RoomConfig>): Promise<Room | null>;
376
- /**
377
- * Join room
378
- */
379
- joinRoom(roomId: RoomId, password?: string): Promise<boolean>;
380
- /**
381
- * Leave room
382
- */
383
- leaveRoom(roomId: RoomId): void;
384
- /**
385
- * Get room
386
- */
387
- getRoom(roomId: RoomId): Room | undefined;
388
- /**
389
- * Set ready state
390
- */
391
- setReady(roomId: RoomId, ready: boolean): void;
392
- /**
393
- * Start game (host only)
394
- */
395
- startGame(roomId: RoomId): void;
396
- /**
397
- * Join lobby
398
- */
399
- joinLobby(lobbyId: LobbyId): Promise<boolean>;
400
- /**
401
- * Leave lobby
402
- */
403
- leaveLobby(lobbyId: LobbyId): void;
404
- /**
405
- * Get room listings
406
- */
407
- getRoomListings(lobbyId: LobbyId): RoomListing[];
408
- /**
409
- * Refresh room listings
410
- */
411
- refreshRoomListings(lobbyId: LobbyId): void;
412
- /**
413
- * Start matchmaking
414
- */
415
- startMatchmaking(gameMode: string, options?: {
416
- rating?: number;
417
- region?: string;
418
- partyIds?: ClientId[];
419
- preferences?: Record<string, Serializable>;
420
- }): void;
421
- /**
422
- * Cancel matchmaking
423
- */
424
- cancelMatchmaking(): void;
425
- private cancelMatchmakingTimer;
426
- /**
427
- * Handle state sync
428
- */
429
- private handleStateSync;
430
- /**
431
- * Reconcile local state with server
432
- */
433
- private reconcileState;
434
- /**
435
- * Handle input acknowledgment
436
- */
437
- private handleInputAck;
438
- /**
439
- * Send input
440
- */
441
- sendInput(inputs: Serializable): void;
442
- /**
443
- * Get interpolated entity state
444
- */
445
- getInterpolatedState(entityId: EntityId): Serializable | undefined;
446
- /**
447
- * Interpolate between states
448
- */
449
- private interpolateStates;
450
- /**
451
- * Spawn entity
452
- */
453
- spawnEntity(type: string, state: Serializable, local?: boolean): EntityId;
454
- /**
455
- * Handle entity spawn from server
456
- */
457
- private handleEntitySpawn;
458
- /**
459
- * Destroy entity
460
- */
461
- destroyEntity(entityId: EntityId): void;
462
- /**
463
- * Handle entity destroy from server
464
- */
465
- private handleEntityDestroy;
466
- /**
467
- * Update entity state
468
- */
469
- updateEntity(entityId: EntityId, state: Serializable): void;
470
- /**
471
- * Handle entity update from server
472
- */
473
- private handleEntityUpdate;
474
- /**
475
- * Get entity
476
- */
477
- getEntity(entityId: EntityId): NetworkEntity | undefined;
478
- /**
479
- * Get all entities
480
- */
481
- getAllEntities(): NetworkEntity[];
482
- /**
483
- * Get local entities
484
- */
485
- getLocalEntities(): NetworkEntity[];
486
- /**
487
- * Register RPC
488
- */
489
- registerRPC(name: string, handler: (args: Serializable[], sender: ClientId) => Serializable | void, definition?: Partial<RPCDefinition>): void;
490
- /**
491
- * Call RPC
492
- */
493
- callRPC(method: string, args: Serializable[], target?: ClientId | 'all' | 'others'): void;
494
- /**
495
- * Call RPC with response
496
- */
497
- callRPCWithResponse<T extends Serializable>(method: string, args: Serializable[], timeout?: number): Promise<T>;
498
- /**
499
- * Handle RPC message
500
- */
501
- private handleRPCMessage;
502
- /**
503
- * Update network (call each frame)
504
- */
505
- update(_deltaTime: number): void;
506
- /**
507
- * Tick
508
- */
509
- private tick;
510
- /**
511
- * Flush queued messages
512
- */
513
- private flush;
514
- /**
515
- * Get server time
516
- */
517
- getServerTime(): number;
518
- /**
519
- * Get client info
520
- */
521
- getClient(id: ClientId): ClientInfo | undefined;
522
- /**
523
- * Get all clients
524
- */
525
- getAllClients(): ClientInfo[];
526
- /**
527
- * Get statistics
528
- */
529
- getStats(): {
530
- connectionState: ConnectionState;
531
- ping: number;
532
- avgPing: number;
533
- entityCount: number;
534
- localEntityCount: number;
535
- roomCount: number;
536
- inputBufferSize: number;
537
- messagesSent: number;
538
- };
539
- /**
540
- * Destroy the network system
541
- */
542
- destroy(): void;
543
- private agents;
544
- }
545
- /**
546
- * Create a network system
547
- */
548
- export declare function createNetworkSystem(config?: Partial<NetworkConfig>): NiceNetwork;
549
- /**
550
- * Create room config
551
- */
552
- export declare function roomConfig(options: Partial<RoomConfig> & {
553
- name: string;
554
- }): RoomConfig;
555
- /**
556
- * Create lobby config
557
- */
558
- export declare function lobbyConfig(options: Partial<LobbyConfig> & {
559
- name: string;
560
- }): LobbyConfig;
561
- /**
562
- * Estimate packet size
563
- */
564
- export declare function estimatePacketSize(data: Serializable): number;
565
- /**
566
- * Validate serializable
567
- */
568
- export declare function isSerializable(value: unknown): value is Serializable;