@open-core/framework 0.2.9 → 0.3.1

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 (313) hide show
  1. package/dist/adapters/contracts/IPlatformCapabilities.d.ts +79 -0
  2. package/dist/adapters/contracts/IPlatformCapabilities.js +31 -0
  3. package/dist/adapters/contracts/IPlayerInfo.d.ts +1 -1
  4. package/dist/adapters/contracts/{IPedAppearanceClient.d.ts → client/IPedAppearanceClient.d.ts} +1 -1
  5. package/dist/adapters/contracts/server/IEntityServer.d.ts +188 -0
  6. package/dist/adapters/contracts/server/IEntityServer.js +39 -0
  7. package/dist/adapters/contracts/{IPlayerServer.d.ts → server/IPlayerServer.d.ts} +52 -9
  8. package/dist/adapters/contracts/server/IPlayerServer.js +39 -0
  9. package/dist/adapters/contracts/types/identifier.d.ts +67 -0
  10. package/dist/adapters/contracts/types/identifier.js +64 -0
  11. package/dist/adapters/contracts/types/index.d.ts +1 -0
  12. package/dist/{kernel/shared/appearance → adapters/contracts/types}/index.js +1 -1
  13. package/dist/adapters/fivem/fivem-capabilities.d.ts +18 -0
  14. package/dist/adapters/fivem/fivem-capabilities.js +67 -0
  15. package/dist/adapters/fivem/fivem-engine-events.js +17 -4
  16. package/dist/adapters/fivem/fivem-entity-server.d.ts +6 -2
  17. package/dist/adapters/fivem/fivem-entity-server.js +14 -1
  18. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +1 -1
  19. package/dist/adapters/fivem/fivem-ped-appearance-client.js +1 -1
  20. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +1 -1
  21. package/dist/adapters/fivem/fivem-ped-appearance-server.js +1 -1
  22. package/dist/adapters/fivem/fivem-platform.d.ts +5 -0
  23. package/dist/adapters/fivem/fivem-platform.js +100 -0
  24. package/dist/adapters/fivem/fivem-player-server.d.ts +7 -1
  25. package/dist/adapters/fivem/fivem-player-server.js +19 -1
  26. package/dist/adapters/fivem/fivem-playerinfo.d.ts +1 -1
  27. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +1 -1
  28. package/dist/adapters/fivem/fivem-vehicle-server.js +1 -1
  29. package/dist/adapters/fivem/index.d.ts +13 -0
  30. package/dist/adapters/fivem/index.js +31 -0
  31. package/dist/adapters/index.d.ts +8 -7
  32. package/dist/adapters/index.js +13 -12
  33. package/dist/adapters/node/index.d.ts +5 -0
  34. package/dist/adapters/node/index.js +13 -1
  35. package/dist/adapters/node/node-capabilities.d.ts +19 -0
  36. package/dist/adapters/node/node-capabilities.js +54 -0
  37. package/dist/adapters/node/node-entity-server.d.ts +17 -6
  38. package/dist/adapters/node/node-entity-server.js +41 -15
  39. package/dist/adapters/node/node-net-transport.js +2 -2
  40. package/dist/adapters/node/node-ped-appearance-client.d.ts +1 -1
  41. package/dist/adapters/node/node-ped-appearance-client.js +1 -1
  42. package/dist/adapters/node/node-ped-appearance-server.d.ts +1 -1
  43. package/dist/adapters/node/node-ped-appearance-server.js +1 -1
  44. package/dist/adapters/node/node-platform.d.ts +5 -0
  45. package/dist/adapters/node/node-platform.js +103 -0
  46. package/dist/adapters/node/node-player-server.d.ts +19 -3
  47. package/dist/adapters/node/node-player-server.js +43 -9
  48. package/dist/adapters/node/node-playerinfo.d.ts +2 -2
  49. package/dist/adapters/node/node-playerinfo.js +14 -3
  50. package/dist/adapters/node/node-vehicle-server.d.ts +1 -1
  51. package/dist/adapters/node/node-vehicle-server.js +1 -1
  52. package/dist/adapters/platform/index.d.ts +1 -0
  53. package/dist/{runtime/server/database.js → adapters/platform/index.js} +1 -7
  54. package/dist/adapters/platform/platform-registry.d.ts +101 -0
  55. package/dist/adapters/platform/platform-registry.js +122 -0
  56. package/dist/adapters/register-capabilities.d.ts +52 -2
  57. package/dist/adapters/register-capabilities.js +69 -130
  58. package/dist/adapters/register-client-capabilities.js +1 -1
  59. package/dist/index.d.ts +2 -5
  60. package/dist/index.js +5 -31
  61. package/dist/kernel/di/container.d.ts +4 -2
  62. package/dist/kernel/di/container.js +5 -3
  63. package/dist/kernel/di/metadata.scanner.d.ts +2 -1
  64. package/dist/kernel/di/metadata.scanner.js +3 -2
  65. package/dist/kernel/{utils/error → error}/app.error.d.ts +2 -2
  66. package/dist/kernel/error/common.error-codes.d.ts +1 -0
  67. package/dist/kernel/error/framework.error-codes.d.ts +12 -0
  68. package/dist/kernel/error/index.d.ts +4 -0
  69. package/dist/kernel/error/index.js +18 -0
  70. package/dist/kernel/{utils/error → error}/security.error.d.ts +1 -1
  71. package/dist/kernel/error/security.types.js +2 -0
  72. package/dist/kernel/index.d.ts +4 -5
  73. package/dist/kernel/index.js +6 -11
  74. package/dist/kernel/{shared/logger → logger}/core-logger.d.ts +0 -19
  75. package/dist/kernel/{shared/logger → logger}/core-logger.js +10 -24
  76. package/dist/kernel/{shared/logger → logger}/logger.env.d.ts +12 -5
  77. package/dist/kernel/{shared/logger → logger}/logger.env.js +29 -13
  78. package/dist/kernel/{shared/logger → logger}/logger.service.d.ts +14 -0
  79. package/dist/kernel/{shared/logger → logger}/logger.service.js +20 -2
  80. package/dist/kernel/logger/transports/transport.interface.js +2 -0
  81. package/dist/kernel/shared/index.d.ts +1 -2
  82. package/dist/kernel/shared/index.js +1 -2
  83. package/dist/kernel/utils/index.d.ts +0 -2
  84. package/dist/kernel/utils/index.js +0 -2
  85. package/dist/kernel/utils/result.d.ts +1 -1
  86. package/dist/runtime/client/api.d.ts +7 -0
  87. package/dist/runtime/client/api.js +23 -0
  88. package/dist/runtime/client/client-bootstrap.js +1 -1
  89. package/dist/runtime/client/controllers/spawner.controller.d.ts +1 -1
  90. package/dist/runtime/client/decorators/index.d.ts +2 -2
  91. package/dist/runtime/client/decorators/index.js +2 -2
  92. package/dist/runtime/client/decorators/key.d.ts +2 -2
  93. package/dist/runtime/client/decorators/key.js +3 -3
  94. package/dist/runtime/client/decorators/localEvent.d.ts +1 -1
  95. package/dist/runtime/client/decorators/localEvent.js +1 -1
  96. package/dist/runtime/client/decorators/{tick.d.ts → onTick.d.ts} +1 -1
  97. package/dist/runtime/client/decorators/{tick.js → onTick.js} +2 -2
  98. package/dist/runtime/client/decorators/{nui.d.ts → onView.d.ts} +4 -4
  99. package/dist/runtime/client/decorators/{nui.js → onView.js} +5 -5
  100. package/dist/runtime/client/index.d.ts +1 -7
  101. package/dist/runtime/client/index.js +26 -12
  102. package/dist/runtime/client/player/player.d.ts +1 -1
  103. package/dist/runtime/client/player/player.loader.js +3 -3
  104. package/dist/runtime/client/services/appearance.service.d.ts +1 -1
  105. package/dist/runtime/client/services/appearance.service.js +1 -1
  106. package/dist/runtime/client/services/blip.service.d.ts +1 -1
  107. package/dist/runtime/client/services/marker.service.d.ts +1 -1
  108. package/dist/runtime/client/services/ped.service.d.ts +1 -1
  109. package/dist/runtime/client/services/spawn.service.d.ts +2 -2
  110. package/dist/runtime/client/services/spawn.service.js +12 -12
  111. package/dist/runtime/client/services/textui.service.d.ts +1 -1
  112. package/dist/runtime/client/services/vehicle-client.service.d.ts +1 -1
  113. package/dist/runtime/client/services/vehicle.service.d.ts +1 -1
  114. package/dist/runtime/client/system/processors/export.processor.js +1 -1
  115. package/dist/runtime/client/system/processors/gameEvent.processor.js +1 -1
  116. package/dist/runtime/client/system/processors/interval.processor.js +1 -1
  117. package/dist/runtime/client/system/processors/localEvent.processor.js +1 -1
  118. package/dist/runtime/client/system/processors/netEvent.processor.js +1 -1
  119. package/dist/runtime/client/system/processors/nui.processor.js +1 -1
  120. package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +1 -1
  121. package/dist/runtime/client/system/processors/tick.processor.js +1 -1
  122. package/dist/runtime/client/ui-bridge.js +1 -1
  123. package/dist/runtime/core/entity.d.ts +168 -0
  124. package/dist/runtime/core/entity.js +226 -0
  125. package/dist/runtime/core/index.d.ts +3 -0
  126. package/dist/runtime/core/index.js +19 -0
  127. package/dist/runtime/core/spatial.d.ts +5 -0
  128. package/dist/runtime/core/spatial.js +2 -0
  129. package/dist/runtime/core/world.d.ts +13 -0
  130. package/dist/runtime/core/world.js +64 -0
  131. package/dist/runtime/server/api.d.ts +12 -0
  132. package/dist/runtime/server/api.js +34 -0
  133. package/dist/runtime/server/bootstrap.js +84 -108
  134. package/dist/runtime/server/bus/internal-event.bus.js +1 -1
  135. package/dist/runtime/server/contracts/index.d.ts +1 -2
  136. package/dist/runtime/server/contracts/index.js +2 -3
  137. package/dist/runtime/server/contracts/player-persistence.contract.d.ts +16 -18
  138. package/dist/runtime/server/contracts/player-persistence.contract.js +16 -18
  139. package/dist/runtime/server/contracts/security/command-error-observer.contract.d.ts +73 -0
  140. package/dist/runtime/server/contracts/security/command-error-observer.contract.js +9 -0
  141. package/dist/runtime/server/contracts/security/permission.types.d.ts +2 -2
  142. package/dist/runtime/server/contracts/security/principal-provider.contract.d.ts +3 -3
  143. package/dist/runtime/server/contracts/security/principal-provider.contract.js +2 -2
  144. package/dist/runtime/server/contracts/security/security-handler.contract.d.ts +2 -2
  145. package/dist/runtime/server/controllers/chat.controller.d.ts +1 -1
  146. package/dist/runtime/server/controllers/chat.controller.js +5 -0
  147. package/dist/runtime/server/controllers/command-export.controller.d.ts +12 -3
  148. package/dist/runtime/server/controllers/command-export.controller.js +94 -28
  149. package/dist/runtime/server/controllers/player-export.controller.d.ts +2 -2
  150. package/dist/runtime/server/controllers/player-export.controller.js +5 -0
  151. package/dist/runtime/server/controllers/principal-export.controller.js +8 -7
  152. package/dist/runtime/server/controllers/ready.controller.d.ts +4 -0
  153. package/dist/runtime/server/controllers/ready.controller.js +32 -0
  154. package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +10 -1
  155. package/dist/runtime/server/controllers/remote-command-execution.controller.js +79 -13
  156. package/dist/runtime/server/controllers/session.controller.d.ts +2 -2
  157. package/dist/runtime/server/controllers/session.controller.js +25 -17
  158. package/dist/runtime/server/controllers/vehicle.controller.d.ts +3 -38
  159. package/dist/runtime/server/controllers/vehicle.controller.js +6 -152
  160. package/dist/runtime/server/decorators/guard.js +2 -2
  161. package/dist/runtime/server/decorators/index.d.ts +1 -1
  162. package/dist/runtime/server/decorators/index.js +1 -1
  163. package/dist/runtime/server/decorators/{onFiveMEvent.d.ts → onRuntimeEvent.d.ts} +5 -4
  164. package/dist/runtime/server/decorators/{onFiveMEvent.js → onRuntimeEvent.js} +7 -6
  165. package/dist/runtime/server/decorators/requiresState.js +3 -3
  166. package/dist/runtime/server/decorators/throttle.d.ts +1 -1
  167. package/dist/runtime/server/decorators/throttle.js +1 -1
  168. package/dist/runtime/server/decorators/utils.d.ts +1 -1
  169. package/dist/runtime/server/decorators/utils.js +1 -1
  170. package/dist/runtime/server/devmode/dev-mode.service.d.ts +7 -8
  171. package/dist/runtime/server/devmode/dev-mode.service.js +18 -46
  172. package/dist/runtime/server/devmode/index.d.ts +1 -3
  173. package/dist/runtime/server/devmode/index.js +1 -18
  174. package/dist/runtime/server/devmode/player-simulator.service.js +3 -3
  175. package/dist/runtime/server/devmode/state-inspector.service.js +2 -2
  176. package/dist/runtime/server/devmode/types.d.ts +67 -31
  177. package/dist/runtime/server/devmode/types.js +1 -4
  178. package/dist/runtime/server/entities/player.d.ts +80 -66
  179. package/dist/runtime/server/entities/player.js +137 -98
  180. package/dist/runtime/server/entities/vehicle.d.ts +3 -3
  181. package/dist/runtime/server/error-handler.js +5 -5
  182. package/dist/runtime/server/helpers/command-validation.helper.d.ts +0 -3
  183. package/dist/runtime/server/helpers/command-validation.helper.js +3 -7
  184. package/dist/runtime/server/helpers/normalize-app-error.d.ts +9 -0
  185. package/dist/runtime/server/helpers/normalize-app-error.js +20 -0
  186. package/dist/runtime/server/helpers/process-tuple-schema.d.ts +20 -0
  187. package/dist/runtime/server/helpers/process-tuple-schema.js +51 -0
  188. package/dist/runtime/server/helpers/resolve-method.js +3 -3
  189. package/dist/runtime/server/index.d.ts +1 -13
  190. package/dist/runtime/server/index.js +25 -23
  191. package/dist/runtime/server/runtime.d.ts +32 -281
  192. package/dist/runtime/server/runtime.js +46 -60
  193. package/dist/runtime/server/services/appearance.service.d.ts +5 -5
  194. package/dist/runtime/server/services/appearance.service.js +5 -5
  195. package/dist/runtime/server/services/chat.service.d.ts +5 -3
  196. package/dist/runtime/server/services/chat.service.js +17 -12
  197. package/dist/runtime/server/services/core/command.service.d.ts +9 -1
  198. package/dist/runtime/server/services/core/command.service.js +16 -7
  199. package/dist/runtime/server/services/core/player.service.d.ts +12 -16
  200. package/dist/runtime/server/services/core/player.service.js +42 -47
  201. package/dist/runtime/server/services/core/principal.service.js +5 -5
  202. package/dist/runtime/server/services/core/session-recovery.service.d.ts +1 -1
  203. package/dist/runtime/server/services/core/session-recovery.service.js +2 -2
  204. package/dist/runtime/server/services/default/default-command-error-observer.d.ts +14 -0
  205. package/dist/runtime/server/services/default/default-command-error-observer.js +43 -0
  206. package/dist/runtime/server/services/default/default-principal.provider.d.ts +13 -0
  207. package/dist/runtime/server/services/default/default-principal.provider.js +38 -0
  208. package/dist/runtime/server/services/default/default-security.handler.d.ts +1 -1
  209. package/dist/runtime/server/services/default/default-security.handler.js +1 -1
  210. package/dist/runtime/server/services/index.d.ts +0 -3
  211. package/dist/runtime/server/services/index.js +1 -6
  212. package/dist/runtime/server/services/persistence.service.js +3 -3
  213. package/dist/runtime/server/services/ports/command-execution.port.d.ts +7 -0
  214. package/dist/runtime/server/services/ports/principal.port.d.ts +1 -1
  215. package/dist/runtime/server/services/remote/remote-command.service.d.ts +1 -0
  216. package/dist/runtime/server/services/remote/remote-command.service.js +30 -11
  217. package/dist/runtime/server/services/remote/remote-player.service.d.ts +2 -2
  218. package/dist/runtime/server/services/remote/remote-player.service.js +3 -3
  219. package/dist/runtime/server/services/remote/server-bridge.js +2 -2
  220. package/dist/runtime/server/services/services.register.d.ts +2 -5
  221. package/dist/runtime/server/services/services.register.js +29 -41
  222. package/dist/runtime/server/services/vehicle-modification.service.js +1 -1
  223. package/dist/runtime/server/services/vehicle.service.d.ts +3 -3
  224. package/dist/runtime/server/services/vehicle.service.js +5 -5
  225. package/dist/runtime/server/setup.d.ts +2 -3
  226. package/dist/runtime/server/setup.js +10 -11
  227. package/dist/runtime/server/system/metadata-server.keys.d.ts +1 -1
  228. package/dist/runtime/server/system/metadata-server.keys.js +1 -1
  229. package/dist/runtime/server/system/processors/command.processor.js +4 -0
  230. package/dist/runtime/server/system/processors/export.processor.js +1 -1
  231. package/dist/runtime/server/system/processors/internalEvent.processor.js +1 -1
  232. package/dist/runtime/server/system/processors/netEvent.processor.js +11 -10
  233. package/dist/runtime/server/system/processors/{fivemEvent.processor.d.ts → runtimeEvent.processor.d.ts} +1 -1
  234. package/dist/runtime/server/system/processors/{fivemEvent.processor.js → runtimeEvent.processor.js} +8 -8
  235. package/dist/runtime/server/system/processors/tick.processor.js +1 -1
  236. package/dist/runtime/server/system/processors.register.js +16 -11
  237. package/dist/runtime/server/system/schema-generator.js +5 -3
  238. package/dist/runtime/server/types/core-exports.d.ts +6 -6
  239. package/dist/runtime/server/types/index.d.ts +1 -1
  240. package/dist/runtime/server/types/index.js +1 -1
  241. package/dist/runtime/server/types/internal-events.d.ts +1 -1
  242. package/dist/runtime/server/types/vehicle.types.d.ts +1 -1
  243. package/package.json +7 -15
  244. package/dist/adapters/contracts/IEntityServer.d.ts +0 -88
  245. package/dist/adapters/contracts/IEntityServer.js +0 -13
  246. package/dist/adapters/contracts/IPlayerServer.js +0 -13
  247. package/dist/adapters/database/oxmysql.adapter.d.ts +0 -89
  248. package/dist/adapters/database/oxmysql.adapter.js +0 -149
  249. package/dist/adapters/database/resource.adapter.d.ts +0 -12
  250. package/dist/adapters/database/resource.adapter.js +0 -68
  251. package/dist/kernel/shared/appearance/index.d.ts +0 -1
  252. package/dist/runtime/index.d.ts +0 -2
  253. package/dist/runtime/index.js +0 -39
  254. package/dist/runtime/server/bootstrap.validation.d.ts +0 -12
  255. package/dist/runtime/server/bootstrap.validation.js +0 -104
  256. package/dist/runtime/server/contracts/auth-provider.contract.d.ts +0 -58
  257. package/dist/runtime/server/contracts/auth-provider.contract.js +0 -23
  258. package/dist/runtime/server/contracts/repository/index.d.ts +0 -57
  259. package/dist/runtime/server/contracts/repository/index.js +0 -61
  260. package/dist/runtime/server/contracts/repository/repository.contract.d.ts +0 -224
  261. package/dist/runtime/server/contracts/repository/repository.contract.js +0 -341
  262. package/dist/runtime/server/contracts/repository/repository.types.d.ts +0 -51
  263. package/dist/runtime/server/contracts/repository/repository.types.js +0 -7
  264. package/dist/runtime/server/database/adapter.registry.d.ts +0 -4
  265. package/dist/runtime/server/database/adapter.registry.js +0 -14
  266. package/dist/runtime/server/database/database.contract.d.ts +0 -128
  267. package/dist/runtime/server/database/database.contract.js +0 -29
  268. package/dist/runtime/server/database/database.service.d.ts +0 -188
  269. package/dist/runtime/server/database/database.service.js +0 -287
  270. package/dist/runtime/server/database/index.d.ts +0 -5
  271. package/dist/runtime/server/database/index.js +0 -25
  272. package/dist/runtime/server/database/types.d.ts +0 -67
  273. package/dist/runtime/server/database/types.js +0 -7
  274. package/dist/runtime/server/database.d.ts +0 -7
  275. package/dist/runtime/server/devmode/hot-reload.server.d.ts +0 -74
  276. package/dist/runtime/server/devmode/hot-reload.server.js +0 -261
  277. package/dist/runtime/server/services/config.service.d.ts +0 -75
  278. package/dist/runtime/server/services/config.service.js +0 -116
  279. package/dist/runtime/server/services/http/http.service.d.ts +0 -50
  280. package/dist/runtime/server/services/http/http.service.js +0 -126
  281. /package/dist/adapters/contracts/{IPedAppearanceClient.js → client/IPedAppearanceClient.js} +0 -0
  282. /package/dist/adapters/contracts/{IPedAppearanceServer.d.ts → server/IPedAppearanceServer.d.ts} +0 -0
  283. /package/dist/adapters/contracts/{IPedAppearanceServer.js → server/IPedAppearanceServer.js} +0 -0
  284. /package/dist/adapters/contracts/{IVehicleServer.d.ts → server/IVehicleServer.d.ts} +0 -0
  285. /package/dist/adapters/contracts/{IVehicleServer.js → server/IVehicleServer.js} +0 -0
  286. /package/dist/kernel/{utils/error → error}/app.error.js +0 -0
  287. /package/dist/kernel/{shared/logger/transports/transport.interface.js → error/common.error-codes.js} +0 -0
  288. /package/dist/{runtime/server/types/security.types.js → kernel/error/framework.error-codes.js} +0 -0
  289. /package/dist/kernel/{utils/error → error}/security.error.js +0 -0
  290. /package/dist/{runtime/server/types → kernel/error}/security.types.d.ts +0 -0
  291. /package/dist/kernel/{shared/logger → logger}/index.d.ts +0 -0
  292. /package/dist/kernel/{shared/logger → logger}/index.js +0 -0
  293. /package/dist/kernel/{shared/logger → logger}/logger.config.d.ts +0 -0
  294. /package/dist/kernel/{shared/logger → logger}/logger.config.js +0 -0
  295. /package/dist/kernel/{shared/logger → logger}/logger.types.d.ts +0 -0
  296. /package/dist/kernel/{shared/logger → logger}/logger.types.js +0 -0
  297. /package/dist/kernel/{shared/logger → logger}/transports/buffered.transport.d.ts +0 -0
  298. /package/dist/kernel/{shared/logger → logger}/transports/buffered.transport.js +0 -0
  299. /package/dist/kernel/{shared/logger → logger}/transports/console.transport.d.ts +0 -0
  300. /package/dist/kernel/{shared/logger → logger}/transports/console.transport.js +0 -0
  301. /package/dist/kernel/{shared/logger → logger}/transports/dev-transport.factory.d.ts +0 -0
  302. /package/dist/kernel/{shared/logger → logger}/transports/dev-transport.factory.js +0 -0
  303. /package/dist/kernel/{shared/logger → logger}/transports/http.transport.d.ts +0 -0
  304. /package/dist/kernel/{shared/logger → logger}/transports/http.transport.js +0 -0
  305. /package/dist/kernel/{shared/logger → logger}/transports/index.d.ts +0 -0
  306. /package/dist/kernel/{shared/logger → logger}/transports/index.js +0 -0
  307. /package/dist/kernel/{shared/logger → logger}/transports/simple-console.transport.d.ts +0 -0
  308. /package/dist/kernel/{shared/logger → logger}/transports/simple-console.transport.js +0 -0
  309. /package/dist/kernel/{shared/logger → logger}/transports/transport.interface.d.ts +0 -0
  310. /package/dist/kernel/{shared/logger → logger}/transports/websocket.transport.d.ts +0 -0
  311. /package/dist/kernel/{shared/logger → logger}/transports/websocket.transport.js +0 -0
  312. /package/dist/kernel/shared/{appearance/appearance.interface.d.ts → player-appearance.types.d.ts} +0 -0
  313. /package/dist/kernel/shared/{appearance/appearance.interface.js → player-appearance.types.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { Vector3 } from '../../../kernel/utils';
1
+ import { Vector3 } from '../../../kernel/utils/vector3';
2
2
  export interface PedSpawnOptions {
3
3
  /** Model name or hash */
4
4
  model: string;
@@ -1,5 +1,5 @@
1
- import { PlayerAppearance } from '../../../kernel/shared';
2
- import { Vector3 } from '../../../kernel/utils';
1
+ import { PlayerAppearance } from '../../../kernel';
2
+ import { Vector3 } from '../../../kernel/utils/vector3';
3
3
  import { AppearanceService } from './appearance.service';
4
4
  interface SpawnOptions {
5
5
  /** Optional: Apply complete character appearance (RP clothing, face, props, tattoos...) */
@@ -11,7 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SpawnService = void 0;
13
13
  const tsyringe_1 = require("tsyringe");
14
- const shared_1 = require("../../../kernel/shared");
14
+ const kernel_1 = require("../../../kernel");
15
15
  const appearance_service_1 = require("./appearance.service");
16
16
  const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
17
17
  const NETWORK_TIMEOUT_MS = 15000;
@@ -37,7 +37,7 @@ let SpawnService = class SpawnService {
37
37
  this.spawning = false;
38
38
  }
39
39
  async init() {
40
- shared_1.loggers.spawn.debug('SpawnService initialized');
40
+ kernel_1.loggers.spawn.debug('SpawnService initialized');
41
41
  }
42
42
  /**
43
43
  * Performs the first spawn of the player.
@@ -57,7 +57,7 @@ let SpawnService = class SpawnService {
57
57
  */
58
58
  async spawn(position, model, heading = 0.0, options) {
59
59
  if (this.spawning) {
60
- shared_1.loggers.spawn.warn('Spawn requested while a spawn is already in progress');
60
+ kernel_1.loggers.spawn.warn('Spawn requested while a spawn is already in progress');
61
61
  return;
62
62
  }
63
63
  this.spawning = true;
@@ -82,13 +82,13 @@ let SpawnService = class SpawnService {
82
82
  if (!IsScreenFadedIn() && !IsScreenFadingIn()) {
83
83
  DoScreenFadeIn(500);
84
84
  }
85
- shared_1.loggers.spawn.info('Player spawned successfully (first spawn)', {
85
+ kernel_1.loggers.spawn.info('Player spawned successfully (first spawn)', {
86
86
  position: { x: position.x, y: position.y, z: position.z },
87
87
  model,
88
88
  });
89
89
  }
90
90
  catch (err) {
91
- shared_1.loggers.spawn.error('Failed to spawn player', {
91
+ kernel_1.loggers.spawn.error('Failed to spawn player', {
92
92
  error: err instanceof Error ? err.message : String(err),
93
93
  });
94
94
  throw err;
@@ -126,7 +126,7 @@ let SpawnService = class SpawnService {
126
126
  const finalPed = await this.ensurePed();
127
127
  await this.setupPedForGameplay(finalPed);
128
128
  await this.teleportTo(position, heading);
129
- shared_1.loggers.spawn.info('Player respawned', {
129
+ kernel_1.loggers.spawn.info('Player respawned', {
130
130
  position: { x: position.x, y: position.y, z: position.z },
131
131
  heading,
132
132
  });
@@ -149,7 +149,7 @@ let SpawnService = class SpawnService {
149
149
  const start = GetGameTimer();
150
150
  while (!NetworkIsSessionStarted()) {
151
151
  if (GetGameTimer() - start > NETWORK_TIMEOUT_MS) {
152
- shared_1.loggers.spawn.error('Network session did not start in time');
152
+ kernel_1.loggers.spawn.error('Network session did not start in time');
153
153
  throw new Error('NETWORK_TIMEOUT');
154
154
  }
155
155
  await delay(0);
@@ -168,7 +168,7 @@ let SpawnService = class SpawnService {
168
168
  async setPlayerModel(model) {
169
169
  const modelHash = GetHashKey(model);
170
170
  if (!IsModelInCdimage(modelHash) || !IsModelValid(modelHash)) {
171
- shared_1.loggers.spawn.error('Invalid model requested', { model });
171
+ kernel_1.loggers.spawn.error('Invalid model requested', { model });
172
172
  throw new Error('MODEL_INVALID');
173
173
  }
174
174
  RequestModel(modelHash);
@@ -187,7 +187,7 @@ let SpawnService = class SpawnService {
187
187
  let ped = PlayerPedId();
188
188
  while (ped === 0) {
189
189
  if (GetGameTimer() - start > PED_TIMEOUT_MS) {
190
- shared_1.loggers.spawn.error('PlayerPedId() did not become valid in time');
190
+ kernel_1.loggers.spawn.error('PlayerPedId() did not become valid in time');
191
191
  throw new Error('PED_TIMEOUT');
192
192
  }
193
193
  await delay(0);
@@ -200,7 +200,7 @@ let SpawnService = class SpawnService {
200
200
  const start = GetGameTimer();
201
201
  while (!HasCollisionLoadedAroundEntity(ped)) {
202
202
  if (GetGameTimer() - start > COLLISION_TIMEOUT_MS) {
203
- shared_1.loggers.spawn.warn('Collision did not fully load around entity in time', {
203
+ kernel_1.loggers.spawn.warn('Collision did not fully load around entity in time', {
204
204
  x: position.x,
205
205
  y: position.y,
206
206
  z: position.z,
@@ -235,7 +235,7 @@ let SpawnService = class SpawnService {
235
235
  }
236
236
  const validation = this.appearanceService.validateAppearance(appearance);
237
237
  if (!validation.valid) {
238
- shared_1.loggers.spawn.warn('Invalid appearance data', { errors: validation.errors });
238
+ kernel_1.loggers.spawn.warn('Invalid appearance data', { errors: validation.errors });
239
239
  SetPedDefaultComponentVariation(ped);
240
240
  return;
241
241
  }
@@ -243,7 +243,7 @@ let SpawnService = class SpawnService {
243
243
  await this.appearanceService.applyAppearance(ped, appearance);
244
244
  }
245
245
  catch (error) {
246
- shared_1.loggers.spawn.error('Failed to apply appearance, using default variation', {
246
+ kernel_1.loggers.spawn.error('Failed to apply appearance, using default variation', {
247
247
  error: error instanceof Error ? error.message : String(error),
248
248
  });
249
249
  SetPedDefaultComponentVariation(ped);
@@ -1,4 +1,4 @@
1
- import { Vector3 } from '../../../kernel/utils';
1
+ import { Vector3 } from '../../../kernel/utils/vector3';
2
2
  export interface TextUIOptions {
3
3
  /** Font (0-8) */
4
4
  font?: number;
@@ -1,4 +1,4 @@
1
- import { Vector3 } from '../../../kernel/utils';
1
+ import { Vector3 } from '../../../kernel/utils/vector3';
2
2
  import { SerializedVehicleData, VehicleCreateOptions, VehicleSpawnResult } from '../../server/types/vehicle.types';
3
3
  /**
4
4
  * Client-side vehicle service.
@@ -1,4 +1,4 @@
1
- import { Vector3 } from '../../../kernel/utils';
1
+ import { Vector3 } from '../../../kernel/utils/vector3';
2
2
  export interface VehicleSpawnOptions {
3
3
  /** Model name or hash */
4
4
  model: string;
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.ClientExportProcessor = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const logger_1 = require("../../../../kernel/shared/logger");
11
+ const logger_1 = require("../../../../kernel/logger");
12
12
  const metadata_client_keys_1 = require("../metadata-client.keys");
13
13
  const clientExport = logger_1.coreLogger.child('Export', logger_1.LogDomain.CLIENT);
14
14
  let ClientExportProcessor = class ClientExportProcessor {
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.GameEventProcessor = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const logger_1 = require("../../../../kernel/shared/logger");
11
+ const logger_1 = require("../../../../kernel/logger");
12
12
  const game_events_1 = require("../../types/game-events");
13
13
  const metadata_client_keys_1 = require("../metadata-client.keys");
14
14
  const clientGameEvent = logger_1.coreLogger.child('GameEvent', logger_1.LogDomain.CLIENT);
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.IntervalProcessor = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const logger_1 = require("../../../../kernel/shared/logger");
11
+ const logger_1 = require("../../../../kernel/logger");
12
12
  const metadata_client_keys_1 = require("../metadata-client.keys");
13
13
  const clientInterval = logger_1.coreLogger.child('Interval', logger_1.LogDomain.CLIENT);
14
14
  let IntervalProcessor = class IntervalProcessor {
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.LocalEventProcessor = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const logger_1 = require("../../../../kernel/shared/logger");
11
+ const logger_1 = require("../../../../kernel/logger");
12
12
  const metadata_client_keys_1 = require("../metadata-client.keys");
13
13
  const clientLocalEvent = logger_1.coreLogger.child('LocalEvent', logger_1.LogDomain.CLIENT);
14
14
  let LocalEventProcessor = class LocalEventProcessor {
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.ClientNetEventProcessor = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const logger_1 = require("../../../../kernel/shared/logger");
11
+ const logger_1 = require("../../../../kernel/logger");
12
12
  const metadata_client_keys_1 = require("../metadata-client.keys");
13
13
  const clientNetEvent = logger_1.coreLogger.child('NetEvent', logger_1.LogDomain.CLIENT);
14
14
  let ClientNetEventProcessor = class ClientNetEventProcessor {
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.NuiProcessor = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const logger_1 = require("../../../../kernel/shared/logger");
11
+ const logger_1 = require("../../../../kernel/logger");
12
12
  const metadata_client_keys_1 = require("../metadata-client.keys");
13
13
  let NuiProcessor = class NuiProcessor {
14
14
  constructor() {
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.ResourceStopProcessor = exports.ResourceStartProcessor = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const logger_1 = require("../../../../kernel/shared/logger");
11
+ const logger_1 = require("../../../../kernel/logger");
12
12
  const metadata_client_keys_1 = require("../metadata-client.keys");
13
13
  const clientLifecycle = logger_1.coreLogger.child('Lifecycle', logger_1.LogDomain.CLIENT);
14
14
  let ResourceStartProcessor = class ResourceStartProcessor {
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.TickProcessor = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const logger_1 = require("../../../../kernel/shared/logger");
11
+ const logger_1 = require("../../../../kernel/logger");
12
12
  const metadata_client_keys_1 = require("../metadata-client.keys");
13
13
  const clientTick = logger_1.coreLogger.child('Tick', logger_1.LogDomain.CLIENT);
14
14
  let TickProcessor = class TickProcessor {
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.NUI = exports.NuiBridge = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const logger_1 = require("../../kernel/shared/logger");
11
+ const logger_1 = require("../../kernel/logger");
12
12
  const nuiLogger = logger_1.coreLogger.child('NUI', logger_1.LogDomain.CLIENT);
13
13
  /**
14
14
  * Type-safe NUI (Native UI) Bridge for client-server communication.
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Entity identifier format: `kind:id`
3
+ * @example 'player:1', 'vehicle:42', 'npc:spawn-1'
4
+ */
5
+ export type EntityId = `${string}:${string | number}`;
6
+ /**
7
+ * Entity metadata storage type.
8
+ */
9
+ export type EntityMeta = Record<string, unknown>;
10
+ /**
11
+ * Base entity class for all game entities.
12
+ *
13
+ * @remarks
14
+ * Provides common functionality for all entities in the game world:
15
+ * - Unique identification
16
+ * - State flags (active states like 'dead', 'frozen', etc.)
17
+ * - Metadata storage
18
+ * - Dimension/world support
19
+ *
20
+ * This class is platform-agnostic and should be extended by
21
+ * platform-specific entity implementations.
22
+ */
23
+ export declare abstract class BaseEntity {
24
+ /**
25
+ * Unique identifier for this entity.
26
+ * Format: `kind:id` (e.g., 'player:1', 'vehicle:42')
27
+ */
28
+ readonly id: EntityId;
29
+ /**
30
+ * Entity kind extracted from the ID.
31
+ * @example 'player', 'vehicle', 'npc'
32
+ */
33
+ readonly kind: string;
34
+ /**
35
+ * Active state flags.
36
+ */
37
+ private state;
38
+ /**
39
+ * Transient metadata storage.
40
+ */
41
+ private meta;
42
+ /**
43
+ * Current dimension/world ID.
44
+ * 0 is the default shared world.
45
+ */
46
+ protected _dimension: number;
47
+ /**
48
+ * Stream distance for this entity.
49
+ * Determines how far away players can see this entity.
50
+ */
51
+ protected _streamDistance: number;
52
+ /**
53
+ * Creates a new entity.
54
+ * @param id - Unique entity identifier in format 'kind:id'
55
+ */
56
+ constructor(id: EntityId);
57
+ /**
58
+ * Adds a state flag to the entity.
59
+ * @param state - State identifier (e.g., 'dead', 'frozen', 'invisible')
60
+ */
61
+ add(state: string): void;
62
+ /**
63
+ * Checks if the entity has a state flag.
64
+ * @param key - State identifier to check
65
+ */
66
+ has(key: string): boolean;
67
+ /**
68
+ * Gets all active state flags.
69
+ * @returns Array of state identifiers
70
+ */
71
+ all(): string[];
72
+ /**
73
+ * Removes a state flag from the entity.
74
+ * @param key - State identifier to remove
75
+ */
76
+ delete(key: string): void;
77
+ /**
78
+ * Clears all state flags.
79
+ */
80
+ clearStates(): void;
81
+ /**
82
+ * Toggles a state flag.
83
+ * @param state - State identifier
84
+ * @param force - Optional force value (true = add, false = remove)
85
+ * @returns The new state (true if added, false if removed)
86
+ */
87
+ toggle(state: string, force?: boolean): boolean;
88
+ /**
89
+ * Sets a metadata value.
90
+ * @param key - Metadata key
91
+ * @param value - Value to store
92
+ */
93
+ setMeta<T = unknown>(key: string, value: T): void;
94
+ /**
95
+ * Gets a metadata value.
96
+ * @param key - Metadata key
97
+ * @returns The stored value or undefined
98
+ */
99
+ getMeta<T = unknown>(key: string): T | undefined;
100
+ /**
101
+ * Checks if a metadata key exists.
102
+ * @param key - Metadata key
103
+ */
104
+ hasMeta(key: string): boolean;
105
+ /**
106
+ * Deletes a metadata value.
107
+ * @param key - Metadata key
108
+ */
109
+ deleteMeta(key: string): void;
110
+ /**
111
+ * Gets all metadata.
112
+ * @returns Copy of the metadata object
113
+ */
114
+ getAllMeta(): EntityMeta;
115
+ /**
116
+ * Clears all metadata.
117
+ */
118
+ clearMeta(): void;
119
+ /**
120
+ * Gets the current dimension/world ID.
121
+ *
122
+ * @remarks
123
+ * Override this in platform-specific implementations to sync
124
+ * with the actual game engine dimension system.
125
+ */
126
+ get dimension(): number;
127
+ /**
128
+ * Sets the dimension/world ID.
129
+ *
130
+ * @remarks
131
+ * Override this in platform-specific implementations to sync
132
+ * with the actual game engine dimension system.
133
+ */
134
+ set dimension(value: number);
135
+ /**
136
+ * Gets the stream distance for this entity.
137
+ *
138
+ * @remarks
139
+ * Stream distance determines how far away players can see this entity.
140
+ * Not all platforms support custom stream distances.
141
+ */
142
+ get streamDistance(): number;
143
+ /**
144
+ * Sets the stream distance for this entity.
145
+ */
146
+ set streamDistance(value: number);
147
+ /**
148
+ * Creates a snapshot of the entity state.
149
+ * @returns Plain object with entity data
150
+ */
151
+ snapshot(): EntitySnapshot;
152
+ /**
153
+ * Restores entity state from a snapshot.
154
+ * @param snapshot - Snapshot to restore from
155
+ */
156
+ restore(snapshot: Partial<EntitySnapshot>): void;
157
+ }
158
+ /**
159
+ * Entity snapshot for serialization.
160
+ */
161
+ export interface EntitySnapshot {
162
+ id: EntityId;
163
+ kind: string;
164
+ states: string[];
165
+ meta: EntityMeta;
166
+ dimension: number;
167
+ streamDistance: number;
168
+ }
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseEntity = void 0;
4
+ /**
5
+ * Base entity class for all game entities.
6
+ *
7
+ * @remarks
8
+ * Provides common functionality for all entities in the game world:
9
+ * - Unique identification
10
+ * - State flags (active states like 'dead', 'frozen', etc.)
11
+ * - Metadata storage
12
+ * - Dimension/world support
13
+ *
14
+ * This class is platform-agnostic and should be extended by
15
+ * platform-specific entity implementations.
16
+ */
17
+ class BaseEntity {
18
+ /**
19
+ * Creates a new entity.
20
+ * @param id - Unique entity identifier in format 'kind:id'
21
+ */
22
+ constructor(id) {
23
+ /**
24
+ * Active state flags.
25
+ */
26
+ this.state = new Set();
27
+ /**
28
+ * Transient metadata storage.
29
+ */
30
+ this.meta = {};
31
+ /**
32
+ * Current dimension/world ID.
33
+ * 0 is the default shared world.
34
+ */
35
+ this._dimension = 0;
36
+ /**
37
+ * Stream distance for this entity.
38
+ * Determines how far away players can see this entity.
39
+ */
40
+ this._streamDistance = 100;
41
+ this.id = id;
42
+ this.kind = id.split(':')[0];
43
+ }
44
+ // ─────────────────────────────────────────────────────────────────
45
+ // State Management
46
+ // ─────────────────────────────────────────────────────────────────
47
+ /**
48
+ * Adds a state flag to the entity.
49
+ * @param state - State identifier (e.g., 'dead', 'frozen', 'invisible')
50
+ */
51
+ add(state) {
52
+ this.state.add(state);
53
+ }
54
+ /**
55
+ * Checks if the entity has a state flag.
56
+ * @param key - State identifier to check
57
+ */
58
+ has(key) {
59
+ return this.state.has(key);
60
+ }
61
+ /**
62
+ * Gets all active state flags.
63
+ * @returns Array of state identifiers
64
+ */
65
+ all() {
66
+ return Array.from(this.state);
67
+ }
68
+ /**
69
+ * Removes a state flag from the entity.
70
+ * @param key - State identifier to remove
71
+ */
72
+ delete(key) {
73
+ this.state.delete(key);
74
+ }
75
+ /**
76
+ * Clears all state flags.
77
+ */
78
+ clearStates() {
79
+ this.state.clear();
80
+ }
81
+ /**
82
+ * Toggles a state flag.
83
+ * @param state - State identifier
84
+ * @param force - Optional force value (true = add, false = remove)
85
+ * @returns The new state (true if added, false if removed)
86
+ */
87
+ toggle(state, force) {
88
+ if (force !== undefined) {
89
+ force ? this.add(state) : this.delete(state);
90
+ return force;
91
+ }
92
+ if (this.has(state)) {
93
+ this.delete(state);
94
+ return false;
95
+ }
96
+ this.add(state);
97
+ return true;
98
+ }
99
+ // ─────────────────────────────────────────────────────────────────
100
+ // Metadata Management
101
+ // ─────────────────────────────────────────────────────────────────
102
+ /**
103
+ * Sets a metadata value.
104
+ * @param key - Metadata key
105
+ * @param value - Value to store
106
+ */
107
+ setMeta(key, value) {
108
+ this.meta[key] = value;
109
+ }
110
+ /**
111
+ * Gets a metadata value.
112
+ * @param key - Metadata key
113
+ * @returns The stored value or undefined
114
+ */
115
+ getMeta(key) {
116
+ return this.meta[key];
117
+ }
118
+ /**
119
+ * Checks if a metadata key exists.
120
+ * @param key - Metadata key
121
+ */
122
+ hasMeta(key) {
123
+ return key in this.meta;
124
+ }
125
+ /**
126
+ * Deletes a metadata value.
127
+ * @param key - Metadata key
128
+ */
129
+ deleteMeta(key) {
130
+ delete this.meta[key];
131
+ }
132
+ /**
133
+ * Gets all metadata.
134
+ * @returns Copy of the metadata object
135
+ */
136
+ getAllMeta() {
137
+ return Object.assign({}, this.meta);
138
+ }
139
+ /**
140
+ * Clears all metadata.
141
+ */
142
+ clearMeta() {
143
+ this.meta = {};
144
+ }
145
+ // ─────────────────────────────────────────────────────────────────
146
+ // Dimension/World Support
147
+ // ─────────────────────────────────────────────────────────────────
148
+ /**
149
+ * Gets the current dimension/world ID.
150
+ *
151
+ * @remarks
152
+ * Override this in platform-specific implementations to sync
153
+ * with the actual game engine dimension system.
154
+ */
155
+ get dimension() {
156
+ return this._dimension;
157
+ }
158
+ /**
159
+ * Sets the dimension/world ID.
160
+ *
161
+ * @remarks
162
+ * Override this in platform-specific implementations to sync
163
+ * with the actual game engine dimension system.
164
+ */
165
+ set dimension(value) {
166
+ this._dimension = value;
167
+ }
168
+ // ─────────────────────────────────────────────────────────────────
169
+ // Stream Distance
170
+ // ─────────────────────────────────────────────────────────────────
171
+ /**
172
+ * Gets the stream distance for this entity.
173
+ *
174
+ * @remarks
175
+ * Stream distance determines how far away players can see this entity.
176
+ * Not all platforms support custom stream distances.
177
+ */
178
+ get streamDistance() {
179
+ return this._streamDistance;
180
+ }
181
+ /**
182
+ * Sets the stream distance for this entity.
183
+ */
184
+ set streamDistance(value) {
185
+ this._streamDistance = Math.max(0, value);
186
+ }
187
+ // ─────────────────────────────────────────────────────────────────
188
+ // Serialization
189
+ // ─────────────────────────────────────────────────────────────────
190
+ /**
191
+ * Creates a snapshot of the entity state.
192
+ * @returns Plain object with entity data
193
+ */
194
+ snapshot() {
195
+ return {
196
+ id: this.id,
197
+ kind: this.kind,
198
+ states: this.all(),
199
+ meta: this.getAllMeta(),
200
+ dimension: this._dimension,
201
+ streamDistance: this._streamDistance,
202
+ };
203
+ }
204
+ /**
205
+ * Restores entity state from a snapshot.
206
+ * @param snapshot - Snapshot to restore from
207
+ */
208
+ restore(snapshot) {
209
+ if (snapshot.states) {
210
+ this.clearStates();
211
+ for (const s of snapshot.states) {
212
+ this.add(s);
213
+ }
214
+ }
215
+ if (snapshot.meta) {
216
+ this.meta = Object.assign({}, snapshot.meta);
217
+ }
218
+ if (snapshot.dimension !== undefined) {
219
+ this._dimension = snapshot.dimension;
220
+ }
221
+ if (snapshot.streamDistance !== undefined) {
222
+ this._streamDistance = snapshot.streamDistance;
223
+ }
224
+ }
225
+ }
226
+ exports.BaseEntity = BaseEntity;
@@ -0,0 +1,3 @@
1
+ export * from './entity';
2
+ export * from './spatial';
3
+ export * from './world';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./entity"), exports);
18
+ __exportStar(require("./spatial"), exports);
19
+ __exportStar(require("./world"), exports);
@@ -0,0 +1,5 @@
1
+ import { Vector3 } from '../../kernel/utils/vector3';
2
+ export interface Spatial {
3
+ getPosition(): Vector3;
4
+ setPosition(v: Vector3): void;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });