@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.
- package/CHANGELOG.md +130 -0
- package/dist/Game/AnimationManager.d.ts +2 -1
- package/dist/Game/AnimationManager.js +21 -9
- package/dist/Game/AnimationManager.js.map +1 -1
- package/dist/Game/AnimationManager.spec.d.ts +1 -0
- package/dist/Game/ClientVisuals.d.ts +61 -0
- package/dist/Game/ClientVisuals.js +96 -0
- package/dist/Game/ClientVisuals.js.map +1 -0
- package/dist/Game/ClientVisuals.spec.d.ts +1 -0
- package/dist/Game/Event.js.map +1 -1
- package/dist/Game/EventComponentResolver.d.ts +16 -0
- package/dist/Game/EventComponentResolver.js +52 -0
- package/dist/Game/EventComponentResolver.js.map +1 -0
- package/dist/Game/EventComponentResolver.spec.d.ts +1 -0
- package/dist/Game/Map.d.ts +9 -1
- package/dist/Game/Map.js +83 -5
- package/dist/Game/Map.js.map +1 -1
- package/dist/Game/Object.d.ts +49 -15
- package/dist/Game/Object.js +101 -42
- package/dist/Game/Object.js.map +1 -1
- package/dist/Game/Object.spec.d.ts +1 -0
- package/dist/Game/Player.js.map +1 -1
- package/dist/Game/ProjectileManager.d.ts +98 -0
- package/dist/Game/ProjectileManager.js +196 -0
- package/dist/Game/ProjectileManager.js.map +1 -0
- package/dist/Game/ProjectileManager.spec.d.ts +1 -0
- package/dist/Gui/Gui.d.ts +20 -6
- package/dist/Gui/Gui.js +132 -57
- package/dist/Gui/Gui.js.map +1 -1
- package/dist/Gui/Gui.spec.d.ts +1 -0
- package/dist/Gui/NotificationManager.js.map +1 -1
- package/dist/Resource.js +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/RpgClient.d.ts +194 -15
- package/dist/RpgClientEngine.d.ts +191 -19
- package/dist/RpgClientEngine.js +693 -74
- package/dist/RpgClientEngine.js.map +1 -1
- package/dist/Sound.js.map +1 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.122.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/decorate.js +1 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.122.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/decorateMetadata.js +1 -1
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/components/animations/animation.ce.js +6 -5
- package/dist/components/animations/animation.ce.js.map +1 -1
- package/dist/components/animations/fx.ce.js +60 -0
- package/dist/components/animations/fx.ce.js.map +1 -0
- package/dist/components/animations/hit.ce.js +24 -28
- package/dist/components/animations/hit.ce.js.map +1 -1
- package/dist/components/animations/index.d.ts +1 -0
- package/dist/components/animations/index.js +6 -4
- package/dist/components/animations/index.js.map +1 -1
- package/dist/components/character.ce.js +748 -249
- package/dist/components/character.ce.js.map +1 -1
- package/dist/components/dynamics/bar.ce.js +99 -0
- package/dist/components/dynamics/bar.ce.js.map +1 -0
- package/dist/components/dynamics/image.ce.js +26 -0
- package/dist/components/dynamics/image.ce.js.map +1 -0
- package/dist/components/dynamics/parse-value.d.ts +3 -0
- package/dist/components/dynamics/parse-value.js +54 -35
- package/dist/components/dynamics/parse-value.js.map +1 -1
- package/dist/components/dynamics/parse-value.spec.d.ts +1 -0
- package/dist/components/dynamics/shape-utils.d.ts +16 -0
- package/dist/components/dynamics/shape-utils.js +73 -0
- package/dist/components/dynamics/shape-utils.js.map +1 -0
- package/dist/components/dynamics/shape-utils.spec.d.ts +1 -0
- package/dist/components/dynamics/shape.ce.js +86 -0
- package/dist/components/dynamics/shape.ce.js.map +1 -0
- package/dist/components/dynamics/text.ce.js +36 -56
- package/dist/components/dynamics/text.ce.js.map +1 -1
- package/dist/components/gui/box.ce.js +9 -9
- package/dist/components/gui/box.ce.js.map +1 -1
- package/dist/components/gui/dialogbox/index.ce.js +75 -65
- package/dist/components/gui/dialogbox/index.ce.js.map +1 -1
- package/dist/components/gui/gameover.ce.js +47 -68
- package/dist/components/gui/gameover.ce.js.map +1 -1
- package/dist/components/gui/hud/hud.ce.js +23 -31
- package/dist/components/gui/hud/hud.ce.js.map +1 -1
- package/dist/components/gui/menu/equip-menu.ce.js +121 -172
- package/dist/components/gui/menu/equip-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/exit-menu.ce.js +15 -10
- package/dist/components/gui/menu/exit-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/items-menu.ce.js +62 -77
- package/dist/components/gui/menu/items-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/main-menu.ce.js +89 -104
- package/dist/components/gui/menu/main-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/options-menu.ce.js +12 -8
- package/dist/components/gui/menu/options-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/skills-menu.ce.js +17 -19
- package/dist/components/gui/menu/skills-menu.ce.js.map +1 -1
- package/dist/components/gui/mobile/index.d.ts +51 -2
- package/dist/components/gui/mobile/index.js +14 -6
- package/dist/components/gui/mobile/index.js.map +1 -1
- package/dist/components/gui/mobile/index.spec.d.ts +1 -0
- package/dist/components/gui/mobile/mobile.ce.js +309 -59
- package/dist/components/gui/mobile/mobile.ce.js.map +1 -1
- package/dist/components/gui/notification/notification.ce.js +28 -26
- package/dist/components/gui/notification/notification.ce.js.map +1 -1
- package/dist/components/gui/save-load.ce.js +81 -256
- package/dist/components/gui/save-load.ce.js.map +1 -1
- package/dist/components/gui/shop/shop.ce.js +107 -142
- package/dist/components/gui/shop/shop.ce.js.map +1 -1
- package/dist/components/gui/title-screen.ce.js +50 -73
- package/dist/components/gui/title-screen.ce.js.map +1 -1
- package/dist/components/index.d.ts +2 -1
- package/dist/components/index.js +1 -0
- package/dist/components/interaction-components.ce.js +22 -0
- package/dist/components/interaction-components.ce.js.map +1 -0
- package/dist/components/player-components-utils.d.ts +67 -0
- package/dist/components/player-components-utils.js +162 -0
- package/dist/components/player-components-utils.js.map +1 -0
- package/dist/components/player-components-utils.spec.d.ts +1 -0
- package/dist/components/player-components.ce.js +191 -0
- package/dist/components/player-components.ce.js.map +1 -0
- package/dist/components/prebuilt/hp-bar.ce.js +45 -45
- package/dist/components/prebuilt/hp-bar.ce.js.map +1 -1
- package/dist/components/prebuilt/light-halo.ce.js +39 -60
- package/dist/components/prebuilt/light-halo.ce.js.map +1 -1
- package/dist/components/scenes/canvas.ce.js +205 -27
- package/dist/components/scenes/canvas.ce.js.map +1 -1
- package/dist/components/scenes/draw-map.ce.js +39 -39
- package/dist/components/scenes/draw-map.ce.js.map +1 -1
- package/dist/components/scenes/event-layer.ce.js +51 -10
- package/dist/components/scenes/event-layer.ce.js.map +1 -1
- package/dist/core/inject.js +1 -1
- package/dist/core/inject.js.map +1 -1
- package/dist/core/setup.js +1 -1
- package/dist/core/setup.js.map +1 -1
- package/dist/decorators/spritesheet.d.ts +1 -0
- package/dist/decorators/spritesheet.js +11 -0
- package/dist/decorators/spritesheet.js.map +1 -0
- package/dist/i18n.d.ts +55 -0
- package/dist/i18n.js +60 -0
- package/dist/i18n.js.map +1 -0
- package/dist/i18n.spec.d.ts +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +29 -21
- package/dist/module.js +45 -4
- package/dist/module.js.map +1 -1
- package/dist/node_modules/.pnpm/{@signe_di@2.9.0 → @signe_di@3.1.0}/node_modules/@signe/di/dist/index.js +7 -117
- package/dist/node_modules/.pnpm/@signe_di@3.1.0/node_modules/@signe/di/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@signe_reactive@3.1.0/node_modules/@signe/reactive/dist/index.js +239 -0
- package/dist/node_modules/.pnpm/@signe_reactive@3.1.0/node_modules/@signe/reactive/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@signe_room@3.1.0_react@19.2.7/node_modules/@signe/room/dist/chunk-EUXUH3YW.js +13 -0
- 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
- package/dist/node_modules/.pnpm/@signe_room@3.1.0_react@19.2.7/node_modules/@signe/room/dist/index.js +698 -0
- package/dist/node_modules/.pnpm/@signe_room@3.1.0_react@19.2.7/node_modules/@signe/room/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@signe_sync@3.1.0_react@19.2.7/node_modules/@signe/sync/dist/client/index.js +43 -0
- 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
- 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
- package/dist/node_modules/.pnpm/@signe_sync@3.1.0_react@19.2.7/node_modules/@signe/sync/dist/index.js.map +1 -0
- 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
- package/dist/node_modules/.pnpm/partysocket@1.2.0_react@19.2.7/node_modules/partysocket/dist/index.js.map +1 -0
- 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
- package/dist/node_modules/.pnpm/partysocket@1.2.0_react@19.2.7/node_modules/partysocket/dist/ws.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.js +13 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js +106 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js +13 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js +121 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js +10 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js +110 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js +99 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js +82 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js.map +1 -0
- 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
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js.map +1 -0
- package/dist/presets/animation.js.map +1 -1
- package/dist/presets/faceset.js.map +1 -1
- package/dist/presets/icon.js.map +1 -1
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/lpc.js.map +1 -1
- package/dist/presets/rmspritesheet.js.map +1 -1
- package/dist/services/AbstractSocket.d.ts +2 -0
- package/dist/services/AbstractSocket.js.map +1 -1
- package/dist/services/actionInput.d.ts +14 -0
- package/dist/services/actionInput.js +59 -0
- package/dist/services/actionInput.js.map +1 -0
- package/dist/services/actionInput.spec.d.ts +1 -0
- package/dist/services/cameraFollow.d.ts +51 -0
- package/dist/services/cameraFollow.js +134 -0
- package/dist/services/cameraFollow.js.map +1 -0
- package/dist/services/cameraFollow.spec.d.ts +1 -0
- package/dist/services/interactions.d.ts +159 -0
- package/dist/services/interactions.js +460 -0
- package/dist/services/interactions.js.map +1 -0
- package/dist/services/interactions.spec.d.ts +1 -0
- package/dist/services/keyboardControls.d.ts +1 -0
- package/dist/services/keyboardControls.js +1 -0
- package/dist/services/keyboardControls.js.map +1 -1
- package/dist/services/loadMap.d.ts +9 -0
- package/dist/services/loadMap.js +1 -1
- package/dist/services/loadMap.js.map +1 -1
- package/dist/services/mmorpg-connection.d.ts +5 -0
- package/dist/services/mmorpg-connection.js +50 -0
- package/dist/services/mmorpg-connection.js.map +1 -0
- package/dist/services/mmorpg-connection.spec.d.ts +1 -0
- package/dist/services/mmorpg.d.ts +11 -4
- package/dist/services/mmorpg.js +57 -33
- package/dist/services/mmorpg.js.map +1 -1
- package/dist/services/pointerContext.d.ts +11 -0
- package/dist/services/pointerContext.js +48 -0
- package/dist/services/pointerContext.js.map +1 -0
- package/dist/services/pointerContext.spec.d.ts +1 -0
- package/dist/services/save.js.map +1 -1
- package/dist/services/save.spec.d.ts +1 -0
- package/dist/services/standalone-message.d.ts +1 -0
- package/dist/services/standalone-message.js +9 -0
- package/dist/services/standalone-message.js.map +1 -0
- package/dist/services/standalone.d.ts +4 -1
- package/dist/services/standalone.js +36 -16
- package/dist/services/standalone.js.map +1 -1
- package/dist/services/standalone.spec.d.ts +1 -0
- package/dist/utils/getEntityProp.js +4 -3
- package/dist/utils/getEntityProp.js.map +1 -1
- package/dist/utils/getEntityProp.spec.d.ts +1 -0
- package/dist/utils/mapId.d.ts +1 -0
- package/dist/utils/mapId.js +6 -0
- package/dist/utils/mapId.js.map +1 -0
- package/dist/utils/readPropValue.d.ts +2 -0
- package/dist/utils/readPropValue.js +13 -0
- package/dist/utils/readPropValue.js.map +1 -0
- package/package.json +13 -13
- package/src/Game/AnimationManager.spec.ts +30 -0
- package/src/Game/AnimationManager.ts +26 -10
- package/src/Game/ClientVisuals.spec.ts +56 -0
- package/src/Game/ClientVisuals.ts +184 -0
- package/src/Game/EventComponentResolver.spec.ts +84 -0
- package/src/Game/EventComponentResolver.ts +74 -0
- package/src/Game/Map.ts +134 -2
- package/src/Game/Object.spec.ts +59 -0
- package/src/Game/Object.ts +181 -77
- package/src/Game/ProjectileManager.spec.ts +449 -0
- package/src/Game/ProjectileManager.ts +346 -0
- package/src/Gui/Gui.spec.ts +359 -0
- package/src/Gui/Gui.ts +178 -67
- package/src/Resource.ts +1 -2
- package/src/RpgClient.ts +220 -17
- package/src/RpgClientEngine.ts +995 -133
- package/src/components/animations/fx.ce +101 -0
- package/src/components/animations/index.ts +4 -2
- package/src/components/character.ce +839 -45
- package/src/components/dynamics/bar.ce +88 -0
- package/src/components/dynamics/image.ce +21 -0
- package/src/components/dynamics/parse-value.spec.ts +83 -0
- package/src/components/dynamics/parse-value.ts +111 -37
- package/src/components/dynamics/shape-utils.spec.ts +46 -0
- package/src/components/dynamics/shape-utils.ts +61 -0
- package/src/components/dynamics/shape.ce +90 -0
- package/src/components/dynamics/text.ce +35 -149
- package/src/components/gui/dialogbox/index.ce +52 -21
- package/src/components/gui/gameover.ce +6 -4
- package/src/components/gui/menu/equip-menu.ce +11 -9
- package/src/components/gui/menu/exit-menu.ce +6 -4
- package/src/components/gui/menu/items-menu.ce +11 -9
- package/src/components/gui/menu/main-menu.ce +14 -12
- package/src/components/gui/menu/options-menu.ce +4 -3
- package/src/components/gui/menu/skills-menu.ce +2 -1
- package/src/components/gui/mobile/index.spec.ts +94 -0
- package/src/components/gui/mobile/index.ts +74 -6
- package/src/components/gui/mobile/mobile.ce +347 -65
- package/src/components/gui/notification/notification.ce +7 -1
- package/src/components/gui/save-load.ce +13 -11
- package/src/components/gui/shop/shop.ce +20 -18
- package/src/components/gui/title-screen.ce +6 -4
- package/src/components/index.ts +2 -1
- package/src/components/interaction-components.ce +23 -0
- package/src/components/player-components-utils.spec.ts +109 -0
- package/src/components/player-components-utils.ts +205 -0
- package/src/components/player-components.ce +222 -0
- package/src/components/prebuilt/hp-bar.ce +4 -3
- package/src/components/prebuilt/light-halo.ce +2 -2
- package/src/components/scenes/canvas.ce +219 -15
- package/src/components/scenes/draw-map.ce +34 -22
- package/src/components/scenes/event-layer.ce +55 -4
- package/src/core/setup.ts +2 -2
- package/src/decorators/spritesheet.ts +8 -0
- package/src/i18n.spec.ts +39 -0
- package/src/i18n.ts +59 -0
- package/src/index.ts +19 -0
- package/src/module.ts +61 -11
- package/src/services/AbstractSocket.ts +3 -0
- package/src/services/actionInput.spec.ts +155 -0
- package/src/services/actionInput.ts +120 -0
- package/src/services/cameraFollow.spec.ts +220 -0
- package/src/services/cameraFollow.ts +222 -0
- package/src/services/interactions.spec.ts +175 -0
- package/src/services/interactions.ts +722 -0
- package/src/services/keyboardControls.ts +2 -1
- package/src/services/loadMap.ts +5 -1
- package/src/services/mmorpg-connection.spec.ts +99 -0
- package/src/services/mmorpg-connection.ts +69 -0
- package/src/services/mmorpg.ts +70 -36
- package/src/services/pointerContext.spec.ts +36 -0
- package/src/services/pointerContext.ts +84 -0
- package/src/services/save.spec.ts +127 -0
- package/src/services/standalone-message.ts +7 -0
- package/src/services/standalone.spec.ts +54 -0
- package/src/services/standalone.ts +44 -12
- package/src/utils/getEntityProp.spec.ts +96 -0
- package/src/utils/getEntityProp.ts +4 -3
- package/src/utils/mapId.ts +2 -0
- package/src/utils/readPropValue.ts +16 -0
- package/dist/node_modules/.pnpm/@signe_di@2.9.0/node_modules/@signe/di/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js +0 -457
- package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js +0 -463
- package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js +0 -2191
- package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/chunk-7QVYU63E.js +0 -10
- package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/chunk-7QVYU63E.js.map +0 -1
- package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/client/index.js +0 -91
- package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/client/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js +0 -14
- package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js.map +0 -1
- package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js.map +0 -1
- package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/index.js +0 -2
- 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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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: "
|
|
114
|
-
{ id: "skills", label: "
|
|
115
|
-
{ id: "equip", label: "
|
|
116
|
-
{ id: "options", label: "
|
|
117
|
-
{ id: "save", label: "
|
|
118
|
-
{ id: "exit", label: "
|
|
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">
|
|
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">
|
|
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
|
-
|
|
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">
|
|
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 {
|
|
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 [
|
|
84
|
+
return [
|
|
85
|
+
computed(() => resolveEnabled(options.enabled) || undefined),
|
|
86
|
+
engine.controlsReady
|
|
87
|
+
]
|
|
20
88
|
}
|
|
21
89
|
}
|
|
22
90
|
]
|
|
23
91
|
}
|
|
24
|
-
)
|
|
92
|
+
)
|