@rpgjs/client 5.0.0-beta.2 → 5.0.0-beta.22

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 (325) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/dist/Game/AnimationManager.d.ts +2 -1
  3. package/dist/Game/AnimationManager.js +21 -9
  4. package/dist/Game/AnimationManager.js.map +1 -1
  5. package/dist/Game/AnimationManager.spec.d.ts +1 -0
  6. package/dist/Game/ClientVisuals.d.ts +61 -0
  7. package/dist/Game/ClientVisuals.js +96 -0
  8. package/dist/Game/ClientVisuals.js.map +1 -0
  9. package/dist/Game/ClientVisuals.spec.d.ts +1 -0
  10. package/dist/Game/Event.js.map +1 -1
  11. package/dist/Game/EventComponentResolver.d.ts +16 -0
  12. package/dist/Game/EventComponentResolver.js +52 -0
  13. package/dist/Game/EventComponentResolver.js.map +1 -0
  14. package/dist/Game/EventComponentResolver.spec.d.ts +1 -0
  15. package/dist/Game/Map.d.ts +9 -1
  16. package/dist/Game/Map.js +83 -5
  17. package/dist/Game/Map.js.map +1 -1
  18. package/dist/Game/Object.d.ts +49 -15
  19. package/dist/Game/Object.js +101 -42
  20. package/dist/Game/Object.js.map +1 -1
  21. package/dist/Game/Object.spec.d.ts +1 -0
  22. package/dist/Game/Player.js.map +1 -1
  23. package/dist/Game/ProjectileManager.d.ts +98 -0
  24. package/dist/Game/ProjectileManager.js +196 -0
  25. package/dist/Game/ProjectileManager.js.map +1 -0
  26. package/dist/Game/ProjectileManager.spec.d.ts +1 -0
  27. package/dist/Gui/Gui.d.ts +20 -6
  28. package/dist/Gui/Gui.js +132 -57
  29. package/dist/Gui/Gui.js.map +1 -1
  30. package/dist/Gui/Gui.spec.d.ts +1 -0
  31. package/dist/Gui/NotificationManager.js.map +1 -1
  32. package/dist/Resource.js +1 -1
  33. package/dist/Resource.js.map +1 -1
  34. package/dist/RpgClient.d.ts +194 -15
  35. package/dist/RpgClientEngine.d.ts +191 -19
  36. package/dist/RpgClientEngine.js +693 -74
  37. package/dist/RpgClientEngine.js.map +1 -1
  38. package/dist/Sound.js.map +1 -1
  39. package/dist/_virtual/{_@oxc-project_runtime@0.122.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/decorate.js +1 -1
  40. package/dist/_virtual/{_@oxc-project_runtime@0.122.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/decorateMetadata.js +1 -1
  41. package/dist/_virtual/_rolldown/runtime.js +13 -0
  42. package/dist/components/animations/animation.ce.js +6 -5
  43. package/dist/components/animations/animation.ce.js.map +1 -1
  44. package/dist/components/animations/fx.ce.js +60 -0
  45. package/dist/components/animations/fx.ce.js.map +1 -0
  46. package/dist/components/animations/hit.ce.js +24 -28
  47. package/dist/components/animations/hit.ce.js.map +1 -1
  48. package/dist/components/animations/index.d.ts +1 -0
  49. package/dist/components/animations/index.js +6 -4
  50. package/dist/components/animations/index.js.map +1 -1
  51. package/dist/components/character.ce.js +748 -249
  52. package/dist/components/character.ce.js.map +1 -1
  53. package/dist/components/dynamics/bar.ce.js +99 -0
  54. package/dist/components/dynamics/bar.ce.js.map +1 -0
  55. package/dist/components/dynamics/image.ce.js +26 -0
  56. package/dist/components/dynamics/image.ce.js.map +1 -0
  57. package/dist/components/dynamics/parse-value.d.ts +3 -0
  58. package/dist/components/dynamics/parse-value.js +54 -35
  59. package/dist/components/dynamics/parse-value.js.map +1 -1
  60. package/dist/components/dynamics/parse-value.spec.d.ts +1 -0
  61. package/dist/components/dynamics/shape-utils.d.ts +16 -0
  62. package/dist/components/dynamics/shape-utils.js +73 -0
  63. package/dist/components/dynamics/shape-utils.js.map +1 -0
  64. package/dist/components/dynamics/shape-utils.spec.d.ts +1 -0
  65. package/dist/components/dynamics/shape.ce.js +86 -0
  66. package/dist/components/dynamics/shape.ce.js.map +1 -0
  67. package/dist/components/dynamics/text.ce.js +36 -56
  68. package/dist/components/dynamics/text.ce.js.map +1 -1
  69. package/dist/components/gui/box.ce.js +9 -9
  70. package/dist/components/gui/box.ce.js.map +1 -1
  71. package/dist/components/gui/dialogbox/index.ce.js +75 -65
  72. package/dist/components/gui/dialogbox/index.ce.js.map +1 -1
  73. package/dist/components/gui/gameover.ce.js +47 -68
  74. package/dist/components/gui/gameover.ce.js.map +1 -1
  75. package/dist/components/gui/hud/hud.ce.js +23 -31
  76. package/dist/components/gui/hud/hud.ce.js.map +1 -1
  77. package/dist/components/gui/menu/equip-menu.ce.js +121 -172
  78. package/dist/components/gui/menu/equip-menu.ce.js.map +1 -1
  79. package/dist/components/gui/menu/exit-menu.ce.js +15 -10
  80. package/dist/components/gui/menu/exit-menu.ce.js.map +1 -1
  81. package/dist/components/gui/menu/items-menu.ce.js +62 -77
  82. package/dist/components/gui/menu/items-menu.ce.js.map +1 -1
  83. package/dist/components/gui/menu/main-menu.ce.js +89 -104
  84. package/dist/components/gui/menu/main-menu.ce.js.map +1 -1
  85. package/dist/components/gui/menu/options-menu.ce.js +12 -8
  86. package/dist/components/gui/menu/options-menu.ce.js.map +1 -1
  87. package/dist/components/gui/menu/skills-menu.ce.js +17 -19
  88. package/dist/components/gui/menu/skills-menu.ce.js.map +1 -1
  89. package/dist/components/gui/mobile/index.d.ts +51 -2
  90. package/dist/components/gui/mobile/index.js +14 -6
  91. package/dist/components/gui/mobile/index.js.map +1 -1
  92. package/dist/components/gui/mobile/index.spec.d.ts +1 -0
  93. package/dist/components/gui/mobile/mobile.ce.js +309 -59
  94. package/dist/components/gui/mobile/mobile.ce.js.map +1 -1
  95. package/dist/components/gui/notification/notification.ce.js +28 -26
  96. package/dist/components/gui/notification/notification.ce.js.map +1 -1
  97. package/dist/components/gui/save-load.ce.js +81 -256
  98. package/dist/components/gui/save-load.ce.js.map +1 -1
  99. package/dist/components/gui/shop/shop.ce.js +107 -142
  100. package/dist/components/gui/shop/shop.ce.js.map +1 -1
  101. package/dist/components/gui/title-screen.ce.js +50 -73
  102. package/dist/components/gui/title-screen.ce.js.map +1 -1
  103. package/dist/components/index.d.ts +2 -1
  104. package/dist/components/index.js +1 -0
  105. package/dist/components/interaction-components.ce.js +22 -0
  106. package/dist/components/interaction-components.ce.js.map +1 -0
  107. package/dist/components/player-components-utils.d.ts +67 -0
  108. package/dist/components/player-components-utils.js +162 -0
  109. package/dist/components/player-components-utils.js.map +1 -0
  110. package/dist/components/player-components-utils.spec.d.ts +1 -0
  111. package/dist/components/player-components.ce.js +191 -0
  112. package/dist/components/player-components.ce.js.map +1 -0
  113. package/dist/components/prebuilt/hp-bar.ce.js +45 -45
  114. package/dist/components/prebuilt/hp-bar.ce.js.map +1 -1
  115. package/dist/components/prebuilt/light-halo.ce.js +39 -60
  116. package/dist/components/prebuilt/light-halo.ce.js.map +1 -1
  117. package/dist/components/scenes/canvas.ce.js +205 -27
  118. package/dist/components/scenes/canvas.ce.js.map +1 -1
  119. package/dist/components/scenes/draw-map.ce.js +39 -39
  120. package/dist/components/scenes/draw-map.ce.js.map +1 -1
  121. package/dist/components/scenes/event-layer.ce.js +51 -10
  122. package/dist/components/scenes/event-layer.ce.js.map +1 -1
  123. package/dist/core/inject.js +1 -1
  124. package/dist/core/inject.js.map +1 -1
  125. package/dist/core/setup.js +1 -1
  126. package/dist/core/setup.js.map +1 -1
  127. package/dist/decorators/spritesheet.d.ts +1 -0
  128. package/dist/decorators/spritesheet.js +11 -0
  129. package/dist/decorators/spritesheet.js.map +1 -0
  130. package/dist/i18n.d.ts +55 -0
  131. package/dist/i18n.js +60 -0
  132. package/dist/i18n.js.map +1 -0
  133. package/dist/i18n.spec.d.ts +1 -0
  134. package/dist/index.d.ts +8 -0
  135. package/dist/index.js +29 -21
  136. package/dist/module.js +45 -4
  137. package/dist/module.js.map +1 -1
  138. package/dist/node_modules/.pnpm/{@signe_di@2.9.0 → @signe_di@3.1.0}/node_modules/@signe/di/dist/index.js +7 -117
  139. package/dist/node_modules/.pnpm/@signe_di@3.1.0/node_modules/@signe/di/dist/index.js.map +1 -0
  140. package/dist/node_modules/.pnpm/@signe_reactive@3.1.0/node_modules/@signe/reactive/dist/index.js +239 -0
  141. package/dist/node_modules/.pnpm/@signe_reactive@3.1.0/node_modules/@signe/reactive/dist/index.js.map +1 -0
  142. package/dist/node_modules/.pnpm/@signe_room@3.1.0_react@19.2.7/node_modules/@signe/room/dist/chunk-EUXUH3YW.js +13 -0
  143. package/dist/node_modules/.pnpm/@signe_room@3.1.0_react@19.2.7/node_modules/@signe/room/dist/chunk-EUXUH3YW.js.map +1 -0
  144. package/dist/node_modules/.pnpm/@signe_room@3.1.0_react@19.2.7/node_modules/@signe/room/dist/index.js +698 -0
  145. package/dist/node_modules/.pnpm/@signe_room@3.1.0_react@19.2.7/node_modules/@signe/room/dist/index.js.map +1 -0
  146. package/dist/node_modules/.pnpm/@signe_sync@3.1.0_react@19.2.7/node_modules/@signe/sync/dist/client/index.js +43 -0
  147. package/dist/node_modules/.pnpm/@signe_sync@3.1.0_react@19.2.7/node_modules/@signe/sync/dist/client/index.js.map +1 -0
  148. package/dist/node_modules/.pnpm/{@signe_sync@2.9.0 → @signe_sync@3.1.0_react@19.2.7}/node_modules/@signe/sync/dist/index.js +57 -141
  149. package/dist/node_modules/.pnpm/@signe_sync@3.1.0_react@19.2.7/node_modules/@signe/sync/dist/index.js.map +1 -0
  150. package/dist/node_modules/.pnpm/{partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js → partysocket@1.2.0_react@19.2.7/node_modules/partysocket/dist/index.js} +30 -17
  151. package/dist/node_modules/.pnpm/partysocket@1.2.0_react@19.2.7/node_modules/partysocket/dist/index.js.map +1 -0
  152. package/dist/node_modules/.pnpm/{partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js → partysocket@1.2.0_react@19.2.7/node_modules/partysocket/dist/ws.js} +65 -34
  153. package/dist/node_modules/.pnpm/partysocket@1.2.0_react@19.2.7/node_modules/partysocket/dist/ws.js.map +1 -0
  154. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.js +13 -0
  155. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.js.map +1 -0
  156. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js +106 -0
  157. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js.map +1 -0
  158. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js +13 -0
  159. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js.map +1 -0
  160. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js +121 -0
  161. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js.map +1 -0
  162. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js +10 -0
  163. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
  164. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js +110 -0
  165. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
  166. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js +99 -0
  167. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js.map +1 -0
  168. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js +82 -0
  169. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js.map +1 -0
  170. package/dist/node_modules/.pnpm/{zod@3.24.2/node_modules/zod/lib/index.js → zod@3.25.76/node_modules/zod/v3/types.js} +74 -611
  171. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js.map +1 -0
  172. package/dist/presets/animation.js.map +1 -1
  173. package/dist/presets/faceset.js.map +1 -1
  174. package/dist/presets/icon.js.map +1 -1
  175. package/dist/presets/index.js.map +1 -1
  176. package/dist/presets/lpc.js.map +1 -1
  177. package/dist/presets/rmspritesheet.js.map +1 -1
  178. package/dist/services/AbstractSocket.d.ts +2 -0
  179. package/dist/services/AbstractSocket.js.map +1 -1
  180. package/dist/services/actionInput.d.ts +14 -0
  181. package/dist/services/actionInput.js +59 -0
  182. package/dist/services/actionInput.js.map +1 -0
  183. package/dist/services/actionInput.spec.d.ts +1 -0
  184. package/dist/services/cameraFollow.d.ts +51 -0
  185. package/dist/services/cameraFollow.js +134 -0
  186. package/dist/services/cameraFollow.js.map +1 -0
  187. package/dist/services/cameraFollow.spec.d.ts +1 -0
  188. package/dist/services/interactions.d.ts +159 -0
  189. package/dist/services/interactions.js +460 -0
  190. package/dist/services/interactions.js.map +1 -0
  191. package/dist/services/interactions.spec.d.ts +1 -0
  192. package/dist/services/keyboardControls.d.ts +1 -0
  193. package/dist/services/keyboardControls.js +1 -0
  194. package/dist/services/keyboardControls.js.map +1 -1
  195. package/dist/services/loadMap.d.ts +9 -0
  196. package/dist/services/loadMap.js +1 -1
  197. package/dist/services/loadMap.js.map +1 -1
  198. package/dist/services/mmorpg-connection.d.ts +5 -0
  199. package/dist/services/mmorpg-connection.js +50 -0
  200. package/dist/services/mmorpg-connection.js.map +1 -0
  201. package/dist/services/mmorpg-connection.spec.d.ts +1 -0
  202. package/dist/services/mmorpg.d.ts +11 -4
  203. package/dist/services/mmorpg.js +57 -33
  204. package/dist/services/mmorpg.js.map +1 -1
  205. package/dist/services/pointerContext.d.ts +11 -0
  206. package/dist/services/pointerContext.js +48 -0
  207. package/dist/services/pointerContext.js.map +1 -0
  208. package/dist/services/pointerContext.spec.d.ts +1 -0
  209. package/dist/services/save.js.map +1 -1
  210. package/dist/services/save.spec.d.ts +1 -0
  211. package/dist/services/standalone-message.d.ts +1 -0
  212. package/dist/services/standalone-message.js +9 -0
  213. package/dist/services/standalone-message.js.map +1 -0
  214. package/dist/services/standalone.d.ts +4 -1
  215. package/dist/services/standalone.js +36 -16
  216. package/dist/services/standalone.js.map +1 -1
  217. package/dist/services/standalone.spec.d.ts +1 -0
  218. package/dist/utils/getEntityProp.js +4 -3
  219. package/dist/utils/getEntityProp.js.map +1 -1
  220. package/dist/utils/getEntityProp.spec.d.ts +1 -0
  221. package/dist/utils/mapId.d.ts +1 -0
  222. package/dist/utils/mapId.js +6 -0
  223. package/dist/utils/mapId.js.map +1 -0
  224. package/dist/utils/readPropValue.d.ts +2 -0
  225. package/dist/utils/readPropValue.js +13 -0
  226. package/dist/utils/readPropValue.js.map +1 -0
  227. package/package.json +13 -13
  228. package/src/Game/AnimationManager.spec.ts +30 -0
  229. package/src/Game/AnimationManager.ts +26 -10
  230. package/src/Game/ClientVisuals.spec.ts +56 -0
  231. package/src/Game/ClientVisuals.ts +184 -0
  232. package/src/Game/EventComponentResolver.spec.ts +84 -0
  233. package/src/Game/EventComponentResolver.ts +74 -0
  234. package/src/Game/Map.ts +134 -2
  235. package/src/Game/Object.spec.ts +59 -0
  236. package/src/Game/Object.ts +181 -77
  237. package/src/Game/ProjectileManager.spec.ts +449 -0
  238. package/src/Game/ProjectileManager.ts +346 -0
  239. package/src/Gui/Gui.spec.ts +359 -0
  240. package/src/Gui/Gui.ts +178 -67
  241. package/src/Resource.ts +1 -2
  242. package/src/RpgClient.ts +220 -17
  243. package/src/RpgClientEngine.ts +995 -133
  244. package/src/components/animations/fx.ce +101 -0
  245. package/src/components/animations/index.ts +4 -2
  246. package/src/components/character.ce +839 -45
  247. package/src/components/dynamics/bar.ce +88 -0
  248. package/src/components/dynamics/image.ce +21 -0
  249. package/src/components/dynamics/parse-value.spec.ts +83 -0
  250. package/src/components/dynamics/parse-value.ts +111 -37
  251. package/src/components/dynamics/shape-utils.spec.ts +46 -0
  252. package/src/components/dynamics/shape-utils.ts +61 -0
  253. package/src/components/dynamics/shape.ce +90 -0
  254. package/src/components/dynamics/text.ce +35 -149
  255. package/src/components/gui/dialogbox/index.ce +52 -21
  256. package/src/components/gui/gameover.ce +6 -4
  257. package/src/components/gui/menu/equip-menu.ce +11 -9
  258. package/src/components/gui/menu/exit-menu.ce +6 -4
  259. package/src/components/gui/menu/items-menu.ce +11 -9
  260. package/src/components/gui/menu/main-menu.ce +14 -12
  261. package/src/components/gui/menu/options-menu.ce +4 -3
  262. package/src/components/gui/menu/skills-menu.ce +2 -1
  263. package/src/components/gui/mobile/index.spec.ts +94 -0
  264. package/src/components/gui/mobile/index.ts +74 -6
  265. package/src/components/gui/mobile/mobile.ce +347 -65
  266. package/src/components/gui/notification/notification.ce +7 -1
  267. package/src/components/gui/save-load.ce +13 -11
  268. package/src/components/gui/shop/shop.ce +20 -18
  269. package/src/components/gui/title-screen.ce +6 -4
  270. package/src/components/index.ts +2 -1
  271. package/src/components/interaction-components.ce +23 -0
  272. package/src/components/player-components-utils.spec.ts +109 -0
  273. package/src/components/player-components-utils.ts +205 -0
  274. package/src/components/player-components.ce +222 -0
  275. package/src/components/prebuilt/hp-bar.ce +4 -3
  276. package/src/components/prebuilt/light-halo.ce +2 -2
  277. package/src/components/scenes/canvas.ce +219 -15
  278. package/src/components/scenes/draw-map.ce +34 -22
  279. package/src/components/scenes/event-layer.ce +55 -4
  280. package/src/core/setup.ts +2 -2
  281. package/src/decorators/spritesheet.ts +8 -0
  282. package/src/i18n.spec.ts +39 -0
  283. package/src/i18n.ts +59 -0
  284. package/src/index.ts +19 -0
  285. package/src/module.ts +61 -11
  286. package/src/services/AbstractSocket.ts +3 -0
  287. package/src/services/actionInput.spec.ts +155 -0
  288. package/src/services/actionInput.ts +120 -0
  289. package/src/services/cameraFollow.spec.ts +220 -0
  290. package/src/services/cameraFollow.ts +222 -0
  291. package/src/services/interactions.spec.ts +175 -0
  292. package/src/services/interactions.ts +722 -0
  293. package/src/services/keyboardControls.ts +2 -1
  294. package/src/services/loadMap.ts +5 -1
  295. package/src/services/mmorpg-connection.spec.ts +99 -0
  296. package/src/services/mmorpg-connection.ts +69 -0
  297. package/src/services/mmorpg.ts +70 -36
  298. package/src/services/pointerContext.spec.ts +36 -0
  299. package/src/services/pointerContext.ts +84 -0
  300. package/src/services/save.spec.ts +127 -0
  301. package/src/services/standalone-message.ts +7 -0
  302. package/src/services/standalone.spec.ts +54 -0
  303. package/src/services/standalone.ts +44 -12
  304. package/src/utils/getEntityProp.spec.ts +96 -0
  305. package/src/utils/getEntityProp.ts +4 -3
  306. package/src/utils/mapId.ts +2 -0
  307. package/src/utils/readPropValue.ts +16 -0
  308. package/dist/node_modules/.pnpm/@signe_di@2.9.0/node_modules/@signe/di/dist/index.js.map +0 -1
  309. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js +0 -457
  310. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js.map +0 -1
  311. package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js +0 -463
  312. package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js.map +0 -1
  313. package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js +0 -2191
  314. package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js.map +0 -1
  315. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/chunk-7QVYU63E.js +0 -10
  316. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/chunk-7QVYU63E.js.map +0 -1
  317. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/client/index.js +0 -91
  318. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/client/index.js.map +0 -1
  319. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/index.js.map +0 -1
  320. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js +0 -14
  321. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js.map +0 -1
  322. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js.map +0 -1
  323. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js.map +0 -1
  324. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/index.js +0 -2
  325. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
  <div class="rpg-ui-main-menu rpg-anim-fade-in">
3
3
  <div class="rpg-ui-main-menu-layout">
4
4
  <div class="rpg-ui-main-menu-left rpg-ui-menu rpg-ui-panel">
5
- <div class="rpg-ui-menu-header">Menu</div>
5
+ <div class="rpg-ui-menu-header">{t("rpg.menu.title")}</div>
6
6
  <div class="rpg-ui-main-menu-list">
7
7
  @for ((entry,index) of menuEntries()) {
8
8
  <div
@@ -18,14 +18,14 @@
18
18
  <div class="rpg-ui-main-menu-right">
19
19
  @if (view() === "menu") {
20
20
  <div class="rpg-ui-panel">
21
- <div class="rpg-ui-main-menu-section-title">Status</div>
21
+ <div class="rpg-ui-main-menu-section-title">{t("rpg.menu.status")}</div>
22
22
  <div class="rpg-ui-main-menu-status-card">
23
23
  <div class="rpg-ui-main-menu-status-block">
24
- <div class="rpg-ui-main-menu-status-label">Level</div>
24
+ <div class="rpg-ui-main-menu-status-label">{t("rpg.menu.level")}</div>
25
25
  <div class="rpg-ui-main-menu-status-value">{level()}</div>
26
26
  </div>
27
27
  <div class="rpg-ui-main-menu-status-block">
28
- <div class="rpg-ui-main-menu-status-label">Gold</div>
28
+ <div class="rpg-ui-main-menu-status-label">{t("rpg.menu.gold")}</div>
29
29
  <div class="rpg-ui-main-menu-status-value">{gold()}</div>
30
30
  </div>
31
31
  <div class="rpg-ui-main-menu-status-block">
@@ -47,7 +47,7 @@
47
47
  </div>
48
48
  </div>
49
49
  </div>
50
- <div class="rpg-ui-main-menu-section-title">Parameters</div>
50
+ <div class="rpg-ui-main-menu-section-title">{t("rpg.menu.parameters")}</div>
51
51
  <div class="rpg-ui-main-menu-params">
52
52
  @for ((param,index) of paramsList) {
53
53
  <div class="rpg-ui-main-menu-param">
@@ -101,8 +101,10 @@
101
101
  import ExitMenu from "./exit-menu.ce";
102
102
  import { getEntityProp } from "../../../utils/getEntityProp";
103
103
  import { delay } from "@rpgjs/common";
104
+ import { getKeyboardControlBind } from "../../../services/actionInput";
104
105
 
105
106
  const engine = inject(RpgClientEngine);
107
+ const { t } = engine.i18n();
106
108
  const currentPlayer = engine.scene.currentPlayer;
107
109
  const keyboardControls = engine.globalConfig.keyboardControls;
108
110
 
@@ -110,12 +112,12 @@
110
112
  const { menus, items, skills, equips, saveLoad } = data();
111
113
 
112
114
  const defaultMenus = [
113
- { id: "items", label: "Items" },
114
- { id: "skills", label: "Skills" },
115
- { id: "equip", label: "Equip" },
116
- { id: "options", label: "Options" },
117
- { id: "save", label: "Save" },
118
- { id: "exit", label: "Exit" }
115
+ { id: "items", label: t("rpg.menu.items") },
116
+ { id: "skills", label: t("rpg.menu.skills") },
117
+ { id: "equip", label: t("rpg.menu.equip") },
118
+ { id: "options", label: t("rpg.menu.options") },
119
+ { id: "save", label: t("rpg.menu.save") },
120
+ { id: "exit", label: t("rpg.menu.exit") }
119
121
  ];
120
122
 
121
123
  const menuEntries = computed(() => {
@@ -259,7 +261,7 @@
259
261
  }
260
262
  },
261
263
  action: {
262
- bind: keyboardControls.action,
264
+ bind: getKeyboardControlBind(keyboardControls.action),
263
265
  keyDown() {
264
266
  if (saveOverlay()) return;
265
267
  if (view() !== "menu") return;
@@ -1,11 +1,11 @@
1
1
  <DOMContainer width="100%" height="100%" controls={controls}>
2
2
  <div class="rpg-ui-menu-panel rpg-ui-panel">
3
- <div class="rpg-ui-menu-panel-header">Options</div>
3
+ <div class="rpg-ui-menu-panel-header">{t("rpg.menu.options")}</div>
4
4
  <div class="rpg-ui-menu-panel-body">
5
5
  <div class="rpg-ui-menu-panel-details">
6
- <div class="rpg-ui-menu-panel-details-title">Options</div>
6
+ <div class="rpg-ui-menu-panel-details-title">{t("rpg.menu.options")}</div>
7
7
  <div class="rpg-ui-menu-panel-details-desc">
8
- Configure your preferences here.
8
+ {t("rpg.menu.options-help")}
9
9
  </div>
10
10
  </div>
11
11
  </div>
@@ -18,6 +18,7 @@
18
18
  import { RpgClientEngine } from "../../../RpgClientEngine";
19
19
 
20
20
  const engine = inject(RpgClientEngine);
21
+ const { t } = engine.i18n();
21
22
  const keyboardControls = engine.globalConfig.keyboardControls;
22
23
  const { onBack } = defineProps();
23
24
 
@@ -1,6 +1,6 @@
1
1
  <DOMContainer width="100%" height="100%">
2
2
  <div class="rpg-ui-menu-panel rpg-ui-panel">
3
- <div class="rpg-ui-menu-panel-header">Skills</div>
3
+ <div class="rpg-ui-menu-panel-header">{t("rpg.menu.skills")}</div>
4
4
  <div class="rpg-ui-menu-panel-body rpg-ui-menu-panel-body-stacked">
5
5
  <div class="rpg-ui-menu-panel-details rpg-ui-panel">
6
6
  @if (currentSkill) {
@@ -38,6 +38,7 @@
38
38
  import { RpgClientEngine } from "../../../RpgClientEngine";
39
39
 
40
40
  const engine = inject(RpgClientEngine);
41
+ const { t } = engine.i18n();
41
42
  const keyboardControls = engine.globalConfig.keyboardControls;
42
43
 
43
44
  const selectedSkill = signal(0);
@@ -0,0 +1,94 @@
1
+ import { describe, expect, test, vi } from "vitest";
2
+ import { signal } from "canvasengine";
3
+
4
+ const fakeEngine = {
5
+ controlsReady: signal(true),
6
+ };
7
+
8
+ vi.mock("../../../core/inject", () => ({
9
+ inject: vi.fn(() => fakeEngine),
10
+ }));
11
+
12
+ describe("withMobile", () => {
13
+ test("registers the mobile GUI with default options", async () => {
14
+ const { withMobile } = await import("./index");
15
+
16
+ const module = withMobile();
17
+ const gui = module.gui[0];
18
+
19
+ expect(gui.id).toBe("mobile-gui");
20
+ expect(gui.autoDisplay).toBe(true);
21
+ expect(gui.data).toEqual({});
22
+ });
23
+
24
+ test("passes options to the GUI and resolves enabled dependencies", async () => {
25
+ const { withMobile } = await import("./index");
26
+ const CustomJoystick = vi.fn();
27
+ const CustomActionButton = vi.fn();
28
+
29
+ const module = withMobile({
30
+ id: "touch-controls",
31
+ enabled: "always",
32
+ layout: {
33
+ joystickSide: "right",
34
+ gap: 18,
35
+ buttonsMargin: 44,
36
+ joystickMargin: [24, 60, 24, 24],
37
+ },
38
+ components: {
39
+ joystick: CustomJoystick,
40
+ buttons: {
41
+ action: CustomActionButton,
42
+ },
43
+ },
44
+ joystick: {
45
+ outerColor: "#111111",
46
+ innerColor: "#eeeeee",
47
+ scale: 0.8,
48
+ outerScale: { x: 0.8, y: 0.8 },
49
+ innerScale: { x: 0.9, y: 0.9 },
50
+ moveInterval: 40,
51
+ threshold: 0.2,
52
+ },
53
+ buttons: {
54
+ action: {
55
+ enabled: true,
56
+ width: 72,
57
+ },
58
+ back: false,
59
+ dash: true,
60
+ },
61
+ });
62
+ const gui = module.gui[0];
63
+ const dependencies = gui.dependencies();
64
+
65
+ expect(gui.id).toBe("touch-controls");
66
+ expect(gui.data.layout?.joystickSide).toBe("right");
67
+ expect(gui.data.components?.joystick).toBe(CustomJoystick);
68
+ expect(gui.data.components?.buttons?.action).toBe(CustomActionButton);
69
+ expect(gui.data.buttons?.action).toMatchObject({
70
+ enabled: true,
71
+ width: 72,
72
+ });
73
+ expect(gui.data.buttons?.dash).toBe(true);
74
+ expect(gui.data.joystick).toMatchObject({
75
+ outerColor: "#111111",
76
+ innerColor: "#eeeeee",
77
+ scale: 0.8,
78
+ outerScale: { x: 0.8, y: 0.8 },
79
+ innerScale: { x: 0.9, y: 0.9 },
80
+ moveInterval: 40,
81
+ threshold: 0.2,
82
+ });
83
+ expect(dependencies[0]()).toBe(true);
84
+ expect(dependencies[1]()).toBe(true);
85
+ });
86
+
87
+ test("keeps the auto detector unresolved when mobile is disabled", async () => {
88
+ const { withMobile } = await import("./index");
89
+
90
+ const dependencies = withMobile({ enabled: "never" }).gui[0].dependencies();
91
+
92
+ expect(dependencies[0]()).toBeUndefined();
93
+ });
94
+ });
@@ -1,24 +1,92 @@
1
1
  import { inject } from "../../../core/inject";
2
2
  import { RpgClientEngine } from "../../../RpgClientEngine";
3
3
  import MobileGui from "./mobile.ce";
4
- import { signal } from "canvasengine";
4
+ import { computed } from "canvasengine";
5
+ import type { ButtonProps, ComponentFunction, JoystickSettings } from "canvasengine";
6
+
7
+ export type MobileGuiEnabled = "auto" | "always" | "never" | (() => boolean);
8
+ export type MobileGuiJoystickSide = "left" | "right";
9
+ export type MobileGuiMargin = number | [number, number, number, number];
10
+
11
+ export interface MobileGuiLayoutOptions {
12
+ joystickSide?: MobileGuiJoystickSide;
13
+ margin?: MobileGuiMargin;
14
+ buttonsMargin?: MobileGuiMargin;
15
+ joystickMargin?: MobileGuiMargin;
16
+ gap?: number;
17
+ }
18
+
19
+ export interface MobileJoystickComponentProps extends JoystickSettings {
20
+ defaultProps: JoystickSettings;
21
+ }
22
+
23
+ export interface MobileButtonComponentProps extends ButtonProps {
24
+ controlName: "action" | "back" | "dash";
25
+ defaultProps: ButtonProps;
26
+ }
27
+
28
+ export interface MobileGuiComponentsOptions {
29
+ joystick?: ComponentFunction<MobileJoystickComponentProps>;
30
+ buttons?: {
31
+ action?: ComponentFunction<MobileButtonComponentProps>;
32
+ back?: ComponentFunction<MobileButtonComponentProps>;
33
+ dash?: ComponentFunction<MobileButtonComponentProps>;
34
+ };
35
+ }
36
+
37
+ export interface MobileGuiButtonOptions extends Partial<ButtonProps> {
38
+ enabled?: boolean;
39
+ component?: ComponentFunction<MobileButtonComponentProps>;
40
+ container?: Record<string, unknown>;
41
+ }
42
+
43
+ export interface MobileGuiJoystickOptions extends Partial<JoystickSettings> {
44
+ component?: ComponentFunction<MobileJoystickComponentProps>;
45
+ moveInterval?: number;
46
+ threshold?: number;
47
+ }
48
+
49
+ export interface MobileGuiOptions {
50
+ id?: string;
51
+ enabled?: MobileGuiEnabled;
52
+ layout?: MobileGuiLayoutOptions;
53
+ components?: MobileGuiComponentsOptions;
54
+ joystick?: false | MobileGuiJoystickOptions;
55
+ buttons?: {
56
+ action?: boolean | MobileGuiButtonOptions;
57
+ back?: boolean | MobileGuiButtonOptions;
58
+ dash?: boolean | MobileGuiButtonOptions;
59
+ };
60
+ }
5
61
 
6
62
  function isMobile() {
63
+ if (typeof navigator === "undefined") return false;
7
64
  return /Android|iPhone|iPad|iPod|Windows Phone|webOS|BlackBerry/i.test(navigator.userAgent);
8
- }
65
+ }
66
+
67
+ function resolveEnabled(enabled: MobileGuiEnabled = "auto") {
68
+ if (enabled === "always") return true;
69
+ if (enabled === "never") return false;
70
+ if (typeof enabled === "function") return enabled();
71
+ return isMobile();
72
+ }
9
73
 
10
- export const withMobile = () => (
74
+ export const withMobile = (options: MobileGuiOptions = {}) => (
11
75
  {
12
76
  gui: [
13
77
  {
14
- id: 'mobile-gui',
78
+ id: options.id ?? 'mobile-gui',
15
79
  component: MobileGui,
16
80
  autoDisplay: true,
81
+ data: options,
17
82
  dependencies: () => {
18
83
  const engine = inject(RpgClientEngine);
19
- return [signal(isMobile() ||undefined), engine.controlsReady]
84
+ return [
85
+ computed(() => resolveEnabled(options.enabled) || undefined),
86
+ engine.controlsReady
87
+ ]
20
88
  }
21
89
  }
22
90
  ]
23
91
  }
24
- )
92
+ )