@rpgjs/client 5.0.0-alpha.43 → 5.0.0-alpha.44

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 (137) hide show
  1. package/dist/Game/AnimationManager.js +25 -24
  2. package/dist/Game/AnimationManager.js.map +1 -1
  3. package/dist/Game/Event.js +11 -10
  4. package/dist/Game/Event.js.map +1 -1
  5. package/dist/Game/Map.js +78 -94
  6. package/dist/Game/Map.js.map +1 -1
  7. package/dist/Game/Object.js +182 -216
  8. package/dist/Game/Object.js.map +1 -1
  9. package/dist/Game/Player.js +11 -10
  10. package/dist/Game/Player.js.map +1 -1
  11. package/dist/Gui/Gui.js +440 -473
  12. package/dist/Gui/Gui.js.map +1 -1
  13. package/dist/Gui/NotificationManager.js +48 -50
  14. package/dist/Gui/NotificationManager.js.map +1 -1
  15. package/dist/Resource.js +132 -113
  16. package/dist/Resource.js.map +1 -1
  17. package/dist/RpgClientEngine.js +1333 -1486
  18. package/dist/RpgClientEngine.js.map +1 -1
  19. package/dist/Sound.js +162 -92
  20. package/dist/Sound.js.map +1 -1
  21. package/dist/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorate.js +9 -0
  22. package/dist/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorateMetadata.js +6 -0
  23. package/dist/components/animations/animation.ce.js +22 -19
  24. package/dist/components/animations/animation.ce.js.map +1 -1
  25. package/dist/components/animations/hit.ce.js +67 -68
  26. package/dist/components/animations/hit.ce.js.map +1 -1
  27. package/dist/components/animations/index.js +9 -8
  28. package/dist/components/animations/index.js.map +1 -1
  29. package/dist/components/character.ce.js +390 -314
  30. package/dist/components/character.ce.js.map +1 -1
  31. package/dist/components/dynamics/parse-value.js +42 -52
  32. package/dist/components/dynamics/parse-value.js.map +1 -1
  33. package/dist/components/dynamics/text.ce.js +71 -139
  34. package/dist/components/dynamics/text.ce.js.map +1 -1
  35. package/dist/components/gui/box.ce.js +26 -25
  36. package/dist/components/gui/box.ce.js.map +1 -1
  37. package/dist/components/gui/dialogbox/index.ce.js +202 -149
  38. package/dist/components/gui/dialogbox/index.ce.js.map +1 -1
  39. package/dist/components/gui/gameover.ce.js +190 -138
  40. package/dist/components/gui/gameover.ce.js.map +1 -1
  41. package/dist/components/gui/hud/hud.ce.js +90 -33
  42. package/dist/components/gui/hud/hud.ce.js.map +1 -1
  43. package/dist/components/gui/index.js +14 -0
  44. package/dist/components/gui/menu/equip-menu.ce.js +478 -346
  45. package/dist/components/gui/menu/equip-menu.ce.js.map +1 -1
  46. package/dist/components/gui/menu/exit-menu.ce.js +52 -33
  47. package/dist/components/gui/menu/exit-menu.ce.js.map +1 -1
  48. package/dist/components/gui/menu/items-menu.ce.js +341 -226
  49. package/dist/components/gui/menu/items-menu.ce.js.map +1 -1
  50. package/dist/components/gui/menu/main-menu.ce.js +414 -205
  51. package/dist/components/gui/menu/main-menu.ce.js.map +1 -1
  52. package/dist/components/gui/menu/options-menu.ce.js +46 -26
  53. package/dist/components/gui/menu/options-menu.ce.js.map +1 -1
  54. package/dist/components/gui/menu/skills-menu.ce.js +104 -50
  55. package/dist/components/gui/menu/skills-menu.ce.js.map +1 -1
  56. package/dist/components/gui/mobile/index.js +18 -21
  57. package/dist/components/gui/mobile/index.js.map +1 -1
  58. package/dist/components/gui/mobile/mobile.ce.js +76 -15
  59. package/dist/components/gui/mobile/mobile.ce.js.map +1 -1
  60. package/dist/components/gui/notification/notification.ce.js +62 -36
  61. package/dist/components/gui/notification/notification.ce.js.map +1 -1
  62. package/dist/components/gui/save-load.ce.js +386 -239
  63. package/dist/components/gui/save-load.ce.js.map +1 -1
  64. package/dist/components/gui/shop/shop.ce.js +649 -319
  65. package/dist/components/gui/shop/shop.ce.js.map +1 -1
  66. package/dist/components/gui/title-screen.ce.js +187 -145
  67. package/dist/components/gui/title-screen.ce.js.map +1 -1
  68. package/dist/components/index.js +4 -0
  69. package/dist/components/prebuilt/hp-bar.ce.js +114 -104
  70. package/dist/components/prebuilt/hp-bar.ce.js.map +1 -1
  71. package/dist/components/prebuilt/index.js +2 -0
  72. package/dist/components/prebuilt/light-halo.ce.js +92 -74
  73. package/dist/components/prebuilt/light-halo.ce.js.map +1 -1
  74. package/dist/components/scenes/canvas.ce.js +58 -42
  75. package/dist/components/scenes/canvas.ce.js.map +1 -1
  76. package/dist/components/scenes/draw-map.ce.js +87 -64
  77. package/dist/components/scenes/draw-map.ce.js.map +1 -1
  78. package/dist/components/scenes/event-layer.ce.js +26 -16
  79. package/dist/components/scenes/event-layer.ce.js.map +1 -1
  80. package/dist/core/inject.js +11 -10
  81. package/dist/core/inject.js.map +1 -1
  82. package/dist/core/setup.js +13 -13
  83. package/dist/core/setup.js.map +1 -1
  84. package/dist/index.js +44 -41
  85. package/dist/module.js +169 -168
  86. package/dist/module.js.map +1 -1
  87. package/dist/node_modules/.pnpm/@signe_di@2.8.3/node_modules/@signe/di/dist/index.js +209 -298
  88. package/dist/node_modules/.pnpm/@signe_di@2.8.3/node_modules/@signe/di/dist/index.js.map +1 -1
  89. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js +430 -507
  90. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js.map +1 -1
  91. package/dist/node_modules/.pnpm/@signe_room@2.8.3/node_modules/@signe/room/dist/index.js +2062 -2571
  92. package/dist/node_modules/.pnpm/@signe_room@2.8.3/node_modules/@signe/room/dist/index.js.map +1 -1
  93. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/chunk-7QVYU63E.js +8 -3
  94. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/chunk-7QVYU63E.js.map +1 -1
  95. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/client/index.js +78 -101
  96. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/client/index.js.map +1 -1
  97. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/index.js +264 -401
  98. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/index.js.map +1 -1
  99. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js +9 -7
  100. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js.map +1 -1
  101. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js +106 -165
  102. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js.map +1 -1
  103. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js +361 -461
  104. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js.map +1 -1
  105. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/index.js +2 -0
  106. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js +3633 -4280
  107. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js.map +1 -1
  108. package/dist/presets/animation.js +37 -25
  109. package/dist/presets/animation.js.map +1 -1
  110. package/dist/presets/faceset.js +49 -22
  111. package/dist/presets/faceset.js.map +1 -1
  112. package/dist/presets/icon.js +13 -13
  113. package/dist/presets/icon.js.map +1 -1
  114. package/dist/presets/index.js +15 -14
  115. package/dist/presets/index.js.map +1 -1
  116. package/dist/presets/lpc.js +96 -93
  117. package/dist/presets/lpc.js.map +1 -1
  118. package/dist/presets/rmspritesheet.js +40 -39
  119. package/dist/presets/rmspritesheet.js.map +1 -1
  120. package/dist/services/AbstractSocket.js +10 -8
  121. package/dist/services/AbstractSocket.js.map +1 -1
  122. package/dist/services/keyboardControls.js +20 -18
  123. package/dist/services/keyboardControls.js.map +1 -1
  124. package/dist/services/loadMap.js +120 -36
  125. package/dist/services/loadMap.js.map +1 -1
  126. package/dist/services/mmorpg.js +128 -136
  127. package/dist/services/mmorpg.js.map +1 -1
  128. package/dist/services/save.js +74 -66
  129. package/dist/services/save.js.map +1 -1
  130. package/dist/services/standalone.js +165 -167
  131. package/dist/services/standalone.js.map +1 -1
  132. package/dist/utils/getEntityProp.js +49 -51
  133. package/dist/utils/getEntityProp.js.map +1 -1
  134. package/package.json +8 -8
  135. package/src/components/character.ce +1 -1
  136. package/src/components/scenes/draw-map.ce +3 -1
  137. package/dist/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"main-menu.ce.js","sources":["../../../../src/components/gui/menu/main-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\" controls={menuControls}>\n <div class=\"rpg-ui-main-menu rpg-anim-fade-in\">\n <div class=\"rpg-ui-main-menu-layout\">\n <div class=\"rpg-ui-main-menu-left rpg-ui-menu rpg-ui-panel\">\n <div class=\"rpg-ui-menu-header\">Menu</div>\n <div class=\"rpg-ui-main-menu-list\">\n @for ((entry,index) of menuEntries()) {\n <div\n class=\"rpg-ui-menu-item\"\n class={{disabled: isMenuDisabled(entry)}}\n data-selected={selectedMenu() === index ? \"true\" : \"false\"}\n tabindex={index}\n click={selectMenu(index)}\n >{entry.label}</div>\n }\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-right\">\n @if (view() === \"menu\") {\n <div class=\"rpg-ui-panel\">\n <div class=\"rpg-ui-main-menu-section-title\">Status</div>\n <div class=\"rpg-ui-main-menu-status-card\">\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">Level</div>\n <div class=\"rpg-ui-main-menu-status-value\">{level()}</div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">Gold</div>\n <div class=\"rpg-ui-main-menu-status-value\">{gold()}</div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">HP {hp()}/{hpMax()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill hp\" style={{width: hpPercent}}></div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">SP {sp()}/{spMax()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill sp\" style={{width: spPercent}}></div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\" style={{gridColumn: \"span 2\"}}>\n <div class=\"rpg-ui-main-menu-status-label\">EXP {exp()}/{expForNextlevel()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill exp\" style={{width: expPercent}}></div>\n </div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-section-title\">Parameters</div>\n <div class=\"rpg-ui-main-menu-params\">\n @for ((param,index) of paramsList) {\n <div class=\"rpg-ui-main-menu-param\">\n <span>{param.label}</span>\n <span>{param.value}</span>\n </div>\n }\n </div>\n </div>\n }\n @if (view() === \"items\") {\n <ItemsMenu data={data} onInteraction={onInteraction} onBack={goBack} />\n }\n @if (view() === \"skills\") {\n <SkillsMenu data={data} onBack={goBack} />\n }\n @if (view() === \"equip\") {\n <EquipMenu data={data} onInteraction={onInteraction} onBack={goBack} />\n }\n @if (view() === \"options\") {\n <OptionsMenu onBack={goBack} />\n }\n @if (view() === \"exit\") {\n <ExitMenu onConfirm={confirmExit} onBack={goBack} />\n }\n </div>\n </div>\n @if (saveOverlay) {\n <div class=\"rpg-ui-main-menu-overlay\">\n <div class=\"rpg-ui-main-menu-overlay-backdrop\"></div>\n <div class=\"rpg-ui-main-menu-overlay-content\">\n <SaveLoadComponent\n data={saveLoadData}\n onFinish={closeSaveOverlay}\n />\n </div>\n </div>\n }\n </div>\n</DOMContainer>\n\n<script>\n import { signal, computed, effect, mount } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n import SaveLoadComponent from \"../save-load.ce\";\n import ItemsMenu from \"./items-menu.ce\";\n import SkillsMenu from \"./skills-menu.ce\";\n import EquipMenu from \"./equip-menu.ce\";\n import OptionsMenu from \"./options-menu.ce\";\n import ExitMenu from \"./exit-menu.ce\";\n import { getEntityProp } from \"../../../utils/getEntityProp\";\n import { delay } from \"@rpgjs/common\";\n\n const engine = inject(RpgClientEngine);\n const currentPlayer = engine.scene.currentPlayer;\n const keyboardControls = engine.globalConfig.keyboardControls;\n\n const { data, onFinish, onInteraction } = defineProps();\n const { menus, items, skills, equips, saveLoad } = data();\n\n const defaultMenus = [\n { id: \"items\", label: \"Items\" },\n { id: \"skills\", label: \"Skills\" },\n { id: \"equip\", label: \"Equip\" },\n { id: \"options\", label: \"Options\" },\n { id: \"save\", label: \"Save\" },\n { id: \"exit\", label: \"Exit\" }\n ];\n\n const menuEntries = computed(() => {\n if (menus && Array.isArray(menus) && menus.length) return menus;\n return defaultMenus;\n });\n\n const resolveProp = (value) => typeof value === \"function\" ? value() : value;\n const saveLoadData = computed(() => resolveProp(saveLoad) || {});\n const saveLoadMode = computed(() => saveLoadData().mode || \"load\");\n const saveLoadSlots = computed(() => saveLoadData().slots || []);\n const saveLoadCanSave = computed(() => saveLoadData().canSave !== false);\n\n const isMenuDisabled = (entry) => {\n if (!entry) return true;\n if (entry.disabled) return true;\n if (entry.enabled === false) return true;\n if (entry.id === \"save\" && !saveLoadCanSave()) return true;\n return false;\n };\n\n const selectedMenu = signal(0);\n const view = signal(\"menu\");\n const saveOverlay = signal(false);\n\n const selectableIndexes = computed(() => {\n const entries = menuEntries();\n return entries\n .map((entry, index) => (isMenuDisabled(entry) ? null : index))\n .filter((value) => value !== null);\n });\n\n effect(() => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedMenu();\n if (!available.includes(current)) {\n selectedMenu.set(available[0]);\n }\n });\n\n const moveMenu = (delta) => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedMenu();\n const currentIndex = Math.max(0, available.indexOf(current));\n const nextIndex = (currentIndex + delta + available.length) % available.length;\n selectedMenu.set(available[nextIndex]);\n };\n\n function selectMenu(index) {\n return function() {\n selectedMenu.set(index);\n openMenu();\n }\n }\n\n const openMenu = () => {\n const entry = menuEntries()[selectedMenu()];\n if (!entry || isMenuDisabled(entry)) return;\n if (entry.id === \"save\") {\n saveOverlay.set(true);\n return;\n }\n if (entry.id === \"exit\") {\n view.set(\"exit\");\n return;\n }\n view.set(entry.id);\n };\n\n const goBack = () => {\n delay(() => {\n view.set(\"menu\");\n });\n };\n\n const closeSaveOverlay = () => {\n delay(() => {\n saveOverlay.set(false);\n view.set(\"menu\");\n });\n };\n\n const confirmExit = () => {\n if (onInteraction) onInteraction(\"exit\");\n };\n\n const hp = getEntityProp(currentPlayer, \"hp\");\n const hpMax = getEntityProp(currentPlayer, \"params.maxHp\");\n const sp = getEntityProp(currentPlayer, \"sp\");\n const spMax = getEntityProp(currentPlayer, \"params.maxSp\");\n const level = getEntityProp(currentPlayer, \"level\");\n const exp = getEntityProp(currentPlayer, \"exp\");\n const gold = getEntityProp(currentPlayer, \"gold\");\n const expForNextlevel = computed(() => data().expForNextlevel || 0);\n const hpPercent = computed(() => {\n const max = hpMax() || 1;\n return `${Math.max(0, Math.min(100, (hp() / max) * 100))}%`;\n });\n const spPercent = computed(() => {\n const max = spMax() || 1;\n return `${Math.max(0, Math.min(100, (sp() / max) * 100))}%`;\n });\n const expPercent = computed(() => {\n const max = expForNextlevel() || 1;\n return `${Math.max(0, Math.min(100, (exp() / max) * 100))}%`;\n });\n\n const paramsList = computed(() => {\n return [\n { label: \"ATK\", value: data().playerStats.atk },\n { label: \"PDEF\", value: data().playerStats.pdef },\n { label: \"SDEF\", value: data().playerStats.sdef },\n { label: \"STR\", value: data().playerStats.str },\n { label: \"DEX\", value: data().playerStats.dex },\n { label: \"INT\", value: data().playerStats.int },\n { label: \"AGI\", value: data().playerStats.agi }\n ]\n }\n\n const menuControls = signal({\n up: {\n repeat: true,\n bind: keyboardControls.up,\n throttle: 150,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n moveMenu(-1);\n }\n },\n down: {\n repeat: true,\n bind: keyboardControls.down,\n throttle: 150,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n moveMenu(1);\n }\n },\n action: {\n bind: keyboardControls.action,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n openMenu();\n }\n },\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") {\n goBack();\n return;\n }\n onFinish()\n }\n },\n gamepad: {\n enabled: true\n }\n });\n\n mount((element) => {\n engine.gamePause.set(true);\n return () => {\n delay(() => {\n engine.stopProcessingInput = false;\n engine.gamePause.set(false);\n });\n }\n });\n</script>\n"],"names":["ItemsMenu","SkillsMenu","EquipMenu","OptionsMenu","ExitMenu","SaveLoadComponent"],"mappings":"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"}
1
+ {"version":3,"file":"main-menu.ce.js","names":[],"sources":["../../../../src/components/gui/menu/main-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\" controls={menuControls}>\n <div class=\"rpg-ui-main-menu rpg-anim-fade-in\">\n <div class=\"rpg-ui-main-menu-layout\">\n <div class=\"rpg-ui-main-menu-left rpg-ui-menu rpg-ui-panel\">\n <div class=\"rpg-ui-menu-header\">Menu</div>\n <div class=\"rpg-ui-main-menu-list\">\n @for ((entry,index) of menuEntries()) {\n <div\n class=\"rpg-ui-menu-item\"\n class={{disabled: isMenuDisabled(entry)}}\n data-selected={selectedMenu() === index ? \"true\" : \"false\"}\n tabindex={index}\n click={selectMenu(index)}\n >{entry.label}</div>\n }\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-right\">\n @if (view() === \"menu\") {\n <div class=\"rpg-ui-panel\">\n <div class=\"rpg-ui-main-menu-section-title\">Status</div>\n <div class=\"rpg-ui-main-menu-status-card\">\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">Level</div>\n <div class=\"rpg-ui-main-menu-status-value\">{level()}</div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">Gold</div>\n <div class=\"rpg-ui-main-menu-status-value\">{gold()}</div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">HP {hp()}/{hpMax()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill hp\" style={{width: hpPercent}}></div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">SP {sp()}/{spMax()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill sp\" style={{width: spPercent}}></div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\" style={{gridColumn: \"span 2\"}}>\n <div class=\"rpg-ui-main-menu-status-label\">EXP {exp()}/{expForNextlevel()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill exp\" style={{width: expPercent}}></div>\n </div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-section-title\">Parameters</div>\n <div class=\"rpg-ui-main-menu-params\">\n @for ((param,index) of paramsList) {\n <div class=\"rpg-ui-main-menu-param\">\n <span>{param.label}</span>\n <span>{param.value}</span>\n </div>\n }\n </div>\n </div>\n }\n @if (view() === \"items\") {\n <ItemsMenu data={data} onInteraction={onInteraction} onBack={goBack} />\n }\n @if (view() === \"skills\") {\n <SkillsMenu data={data} onBack={goBack} />\n }\n @if (view() === \"equip\") {\n <EquipMenu data={data} onInteraction={onInteraction} onBack={goBack} />\n }\n @if (view() === \"options\") {\n <OptionsMenu onBack={goBack} />\n }\n @if (view() === \"exit\") {\n <ExitMenu onConfirm={confirmExit} onBack={goBack} />\n }\n </div>\n </div>\n @if (saveOverlay) {\n <div class=\"rpg-ui-main-menu-overlay\">\n <div class=\"rpg-ui-main-menu-overlay-backdrop\"></div>\n <div class=\"rpg-ui-main-menu-overlay-content\">\n <SaveLoadComponent\n data={saveLoadData}\n onFinish={closeSaveOverlay}\n />\n </div>\n </div>\n }\n </div>\n</DOMContainer>\n\n<script>\n import { signal, computed, effect, mount } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n import SaveLoadComponent from \"../save-load.ce\";\n import ItemsMenu from \"./items-menu.ce\";\n import SkillsMenu from \"./skills-menu.ce\";\n import EquipMenu from \"./equip-menu.ce\";\n import OptionsMenu from \"./options-menu.ce\";\n import ExitMenu from \"./exit-menu.ce\";\n import { getEntityProp } from \"../../../utils/getEntityProp\";\n import { delay } from \"@rpgjs/common\";\n\n const engine = inject(RpgClientEngine);\n const currentPlayer = engine.scene.currentPlayer;\n const keyboardControls = engine.globalConfig.keyboardControls;\n\n const { data, onFinish, onInteraction } = defineProps();\n const { menus, items, skills, equips, saveLoad } = data();\n\n const defaultMenus = [\n { id: \"items\", label: \"Items\" },\n { id: \"skills\", label: \"Skills\" },\n { id: \"equip\", label: \"Equip\" },\n { id: \"options\", label: \"Options\" },\n { id: \"save\", label: \"Save\" },\n { id: \"exit\", label: \"Exit\" }\n ];\n\n const menuEntries = computed(() => {\n if (menus && Array.isArray(menus) && menus.length) return menus;\n return defaultMenus;\n });\n\n const resolveProp = (value) => typeof value === \"function\" ? value() : value;\n const saveLoadData = computed(() => resolveProp(saveLoad) || {});\n const saveLoadMode = computed(() => saveLoadData().mode || \"load\");\n const saveLoadSlots = computed(() => saveLoadData().slots || []);\n const saveLoadCanSave = computed(() => saveLoadData().canSave !== false);\n\n const isMenuDisabled = (entry) => {\n if (!entry) return true;\n if (entry.disabled) return true;\n if (entry.enabled === false) return true;\n if (entry.id === \"save\" && !saveLoadCanSave()) return true;\n return false;\n };\n\n const selectedMenu = signal(0);\n const view = signal(\"menu\");\n const saveOverlay = signal(false);\n\n const selectableIndexes = computed(() => {\n const entries = menuEntries();\n return entries\n .map((entry, index) => (isMenuDisabled(entry) ? null : index))\n .filter((value) => value !== null);\n });\n\n effect(() => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedMenu();\n if (!available.includes(current)) {\n selectedMenu.set(available[0]);\n }\n });\n\n const moveMenu = (delta) => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedMenu();\n const currentIndex = Math.max(0, available.indexOf(current));\n const nextIndex = (currentIndex + delta + available.length) % available.length;\n selectedMenu.set(available[nextIndex]);\n };\n\n function selectMenu(index) {\n return function() {\n selectedMenu.set(index);\n openMenu();\n }\n }\n\n const openMenu = () => {\n const entry = menuEntries()[selectedMenu()];\n if (!entry || isMenuDisabled(entry)) return;\n if (entry.id === \"save\") {\n saveOverlay.set(true);\n return;\n }\n if (entry.id === \"exit\") {\n view.set(\"exit\");\n return;\n }\n view.set(entry.id);\n };\n\n const goBack = () => {\n delay(() => {\n view.set(\"menu\");\n });\n };\n\n const closeSaveOverlay = () => {\n delay(() => {\n saveOverlay.set(false);\n view.set(\"menu\");\n });\n };\n\n const confirmExit = () => {\n if (onInteraction) onInteraction(\"exit\");\n };\n\n const hp = getEntityProp(currentPlayer, \"hp\");\n const hpMax = getEntityProp(currentPlayer, \"params.maxHp\");\n const sp = getEntityProp(currentPlayer, \"sp\");\n const spMax = getEntityProp(currentPlayer, \"params.maxSp\");\n const level = getEntityProp(currentPlayer, \"level\");\n const exp = getEntityProp(currentPlayer, \"exp\");\n const gold = getEntityProp(currentPlayer, \"gold\");\n const expForNextlevel = computed(() => data().expForNextlevel || 0);\n const hpPercent = computed(() => {\n const max = hpMax() || 1;\n return `${Math.max(0, Math.min(100, (hp() / max) * 100))}%`;\n });\n const spPercent = computed(() => {\n const max = spMax() || 1;\n return `${Math.max(0, Math.min(100, (sp() / max) * 100))}%`;\n });\n const expPercent = computed(() => {\n const max = expForNextlevel() || 1;\n return `${Math.max(0, Math.min(100, (exp() / max) * 100))}%`;\n });\n\n const paramsList = computed(() => {\n return [\n { label: \"ATK\", value: data().playerStats.atk },\n { label: \"PDEF\", value: data().playerStats.pdef },\n { label: \"SDEF\", value: data().playerStats.sdef },\n { label: \"STR\", value: data().playerStats.str },\n { label: \"DEX\", value: data().playerStats.dex },\n { label: \"INT\", value: data().playerStats.int },\n { label: \"AGI\", value: data().playerStats.agi }\n ]\n }\n\n const menuControls = signal({\n up: {\n repeat: true,\n bind: keyboardControls.up,\n throttle: 150,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n moveMenu(-1);\n }\n },\n down: {\n repeat: true,\n bind: keyboardControls.down,\n throttle: 150,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n moveMenu(1);\n }\n },\n action: {\n bind: keyboardControls.action,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n openMenu();\n }\n },\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") {\n goBack();\n return;\n }\n onFinish()\n }\n },\n gamepad: {\n enabled: true\n }\n });\n\n mount((element) => {\n engine.gamePause.set(true);\n return () => {\n delay(() => {\n engine.stopProcessingInput = false;\n engine.gamePause.set(false);\n });\n }\n });\n</script>\n"],"mappings":"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"}
@@ -1,28 +1,48 @@
1
- import { useProps, useDefineProps, signal, h, DOMContainer, DOMElement } from 'canvasengine';
2
- import { inject } from '../../../core/inject.js';
3
- import { RpgClientEngine } from '../../../RpgClientEngine.js';
4
-
1
+ import { inject } from "../../../core/inject.js";
2
+ import { RpgClientEngine } from "../../../RpgClientEngine.js";
3
+ import { DOMContainer, DOMElement, h, signal, useDefineProps, useProps } from "canvasengine";
4
+ //#region src/components/gui/menu/options-menu.ce
5
5
  function component($$props) {
6
- useProps($$props);
7
- const defineProps = useDefineProps($$props);
8
- var engine = inject(RpgClientEngine);
9
- var keyboardControls = engine.globalConfig.keyboardControls;
10
- var onBack = defineProps().onBack;
11
- var controls = signal({
12
- escape: {
13
- bind: keyboardControls.escape,
14
- keyDown: function () {
15
- if (onBack)
16
- onBack();
17
- }
18
- },
19
- gamepad: {
20
- enabled: true
21
- }
22
- });
23
- let $this = h(DOMContainer, { width: '100%', height: '100%', controls: controls }, h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel rpg-ui-panel' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-header' }, textContent: 'Options' }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-body' } }, h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-details' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-details-title' }, textContent: 'Options' }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-details-desc' }, textContent: 'Configure your preferences here.\n ' })]))]));
24
- return $this
25
- }
26
-
6
+ useProps($$props);
7
+ const defineProps = useDefineProps($$props);
8
+ var keyboardControls = inject(RpgClientEngine).globalConfig.keyboardControls;
9
+ var onBack = defineProps().onBack;
10
+ return h(DOMContainer, {
11
+ width: "100%",
12
+ height: "100%",
13
+ controls: signal({
14
+ escape: {
15
+ bind: keyboardControls.escape,
16
+ keyDown: function() {
17
+ if (onBack) onBack();
18
+ }
19
+ },
20
+ gamepad: { enabled: true }
21
+ })
22
+ }, h(DOMElement, {
23
+ element: "div",
24
+ attrs: { class: "rpg-ui-menu-panel rpg-ui-panel" }
25
+ }, [h(DOMElement, {
26
+ element: "div",
27
+ attrs: { class: "rpg-ui-menu-panel-header" },
28
+ textContent: "Options"
29
+ }), h(DOMElement, {
30
+ element: "div",
31
+ attrs: { class: "rpg-ui-menu-panel-body" }
32
+ }, h(DOMElement, {
33
+ element: "div",
34
+ attrs: { class: "rpg-ui-menu-panel-details" }
35
+ }, [h(DOMElement, {
36
+ element: "div",
37
+ attrs: { class: "rpg-ui-menu-panel-details-title" },
38
+ textContent: "Options"
39
+ }), h(DOMElement, {
40
+ element: "div",
41
+ attrs: { class: "rpg-ui-menu-panel-details-desc" },
42
+ textContent: "Configure your preferences here.\n "
43
+ })]))]));
44
+ }
45
+ //#endregion
27
46
  export { component as default };
28
- //# sourceMappingURL=options-menu.ce.js.map
47
+
48
+ //# sourceMappingURL=options-menu.ce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options-menu.ce.js","sources":["../../../../src/components/gui/menu/options-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\" controls={controls}>\n <div class=\"rpg-ui-menu-panel rpg-ui-panel\">\n <div class=\"rpg-ui-menu-panel-header\">Options</div>\n <div class=\"rpg-ui-menu-panel-body\">\n <div class=\"rpg-ui-menu-panel-details\">\n <div class=\"rpg-ui-menu-panel-details-title\">Options</div>\n <div class=\"rpg-ui-menu-panel-details-desc\">\n Configure your preferences here.\n </div>\n </div>\n </div>\n </div>\n</DOMContainer>\n\n<script>\n import { signal } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n\n const engine = inject(RpgClientEngine);\n const keyboardControls = engine.globalConfig.keyboardControls;\n const { onBack } = defineProps();\n\n const controls = signal({\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (onBack) onBack();\n }\n },\n gamepad: {\n enabled: true\n }\n });\n</script>\n"],"names":[],"mappings":";;;;AASqB,SAAS,SAAS,CAAC,OAAO,EAAE;AACjD,QAAuB,QAAQ,CAAC,OAAO;AACvC,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO;AAClD,QAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AAC5C,IAAI,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB;AAC3D,IAAI,MAAM,GAAG,WAAW,EAAE,CAAC,MAAM;AACjC,IAAI,QAAQ,GAAG,MAAM,CAAC;AACtB,IAAI,MAAM,EAAE;AACZ,QAAQ,IAAI,EAAE,gBAAgB,CAAC,MAAM;AACrC,QAAQ,OAAO,EAAE,YAAY;AAC7B,YAAY,IAAI,MAAM;AACtB,gBAAgB,MAAM,EAAE;AACxB,QAAQ;AACR,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,OAAO,EAAE;AACjB;AACA,CAAC,CAAC;AACF,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,WAAW,EAAE,oDAAoD,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxsB,QAAQ,OAAO;AACf,MAAM;;;;"}
1
+ {"version":3,"file":"options-menu.ce.js","names":[],"sources":["../../../../src/components/gui/menu/options-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\" controls={controls}>\n <div class=\"rpg-ui-menu-panel rpg-ui-panel\">\n <div class=\"rpg-ui-menu-panel-header\">Options</div>\n <div class=\"rpg-ui-menu-panel-body\">\n <div class=\"rpg-ui-menu-panel-details\">\n <div class=\"rpg-ui-menu-panel-details-title\">Options</div>\n <div class=\"rpg-ui-menu-panel-details-desc\">\n Configure your preferences here.\n </div>\n </div>\n </div>\n </div>\n</DOMContainer>\n\n<script>\n import { signal } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n\n const engine = inject(RpgClientEngine);\n const keyboardControls = engine.globalConfig.keyboardControls;\n const { onBack } = defineProps();\n\n const controls = signal({\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (onBack) onBack();\n }\n },\n gamepad: {\n enabled: true\n }\n });\n</script>\n"],"mappings":";;;;AASM,SAAW,UAAA,SAAA;AACJ,UAAA,QAAA;CACP,MAAG,cAAA,eAAA,QAAA;wBACK,OAAA,gBAAA,CAAA,aAAA;CAEd,IAAC,SAAM,aAAA,CAAA;AAcC,QADY,EAAA,cAAgB;EAAA,OAAA;EAAA,QAAA;EAAA,UAZvB,OAAS;GAClB,QAAQ;IACR,MAAS,iBAAkB;;AAErB,SAAM,OACN,SAAA;;;GAGN,SAAM,EACF,SAAQ,MACX;GACJ,CAAC;EACkC,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kCAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,4BAAA;EAAA,aAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,0BAAA;EAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,6BAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,mCAAA;EAAA,aAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kCAAA;EAAA,aAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -1,53 +1,107 @@
1
- import { useProps, useDefineProps, signal, computed, createTabindexNavigator, h, DOMContainer, DOMElement, cond, Navigation, loop } from 'canvasengine';
2
- import { inject } from '../../../core/inject.js';
3
- import { RpgClientEngine } from '../../../RpgClientEngine.js';
4
-
1
+ import { inject } from "../../../core/inject.js";
2
+ import { RpgClientEngine } from "../../../RpgClientEngine.js";
3
+ import { DOMContainer, DOMElement, Navigation, computed, cond, createTabindexNavigator, h, loop, signal, useDefineProps, useProps } from "canvasengine";
4
+ //#region src/components/gui/menu/skills-menu.ce
5
5
  function component($$props) {
6
- useProps($$props);
7
- const defineProps = useDefineProps($$props);
8
- var engine = inject(RpgClientEngine);
9
- var keyboardControls = engine.globalConfig.keyboardControls;
10
- var selectedSkill = signal(0);
11
- var _a = defineProps(), data = _a.data, onBack = _a.onBack;
12
- var skills = computed(function () { return data().skills; });
13
- var nav = createTabindexNavigator(selectedSkill, { count: function () { return skills().length; } }, "wrap");
14
- var currentSkill = computed(function () { return skills()[selectedSkill()]; });
15
- function selectSkill(index) {
16
- return function () {
17
- selectedSkill.set(index);
18
- };
6
+ useProps($$props);
7
+ const defineProps = useDefineProps($$props);
8
+ var keyboardControls = inject(RpgClientEngine).globalConfig.keyboardControls;
9
+ var selectedSkill = signal(0);
10
+ var _a = defineProps(), data = _a.data, onBack = _a.onBack;
11
+ var skills = computed(function() {
12
+ return data().skills;
13
+ });
14
+ var nav = createTabindexNavigator(selectedSkill, { count: function() {
15
+ return skills().length;
16
+ } }, "wrap");
17
+ var currentSkill = computed(function() {
18
+ return skills()[selectedSkill()];
19
+ });
20
+ function selectSkill(index) {
21
+ return function() {
22
+ selectedSkill.set(index);
23
+ };
24
+ }
25
+ var controls = signal({
26
+ up: {
27
+ repeat: true,
28
+ bind: keyboardControls.up,
29
+ throttle: 150,
30
+ keyDown: function() {
31
+ nav.next(-1);
32
+ }
33
+ },
34
+ down: {
35
+ repeat: true,
36
+ bind: keyboardControls.down,
37
+ throttle: 150,
38
+ keyDown: function() {
39
+ nav.next(1);
40
+ }
41
+ },
42
+ escape: {
43
+ bind: keyboardControls.escape,
44
+ keyDown: function() {
45
+ if (onBack) onBack();
46
+ }
47
+ },
48
+ gamepad: { enabled: true }
49
+ });
50
+ return h(DOMContainer, {
51
+ width: "100%",
52
+ height: "100%"
53
+ }, h(DOMElement, {
54
+ element: "div",
55
+ attrs: { class: "rpg-ui-menu-panel rpg-ui-panel" }
56
+ }, [h(DOMElement, {
57
+ element: "div",
58
+ attrs: { class: "rpg-ui-menu-panel-header" },
59
+ textContent: "Skills"
60
+ }), h(DOMElement, {
61
+ element: "div",
62
+ attrs: { class: "rpg-ui-menu-panel-body rpg-ui-menu-panel-body-stacked" }
63
+ }, [h(DOMElement, {
64
+ element: "div",
65
+ attrs: { class: "rpg-ui-menu-panel-details rpg-ui-panel" }
66
+ }, cond(currentSkill, () => h(DOMElement, {
67
+ element: "div",
68
+ attrs: { class: "rpg-ui-menu-panel-hero" }
69
+ }, [h(DOMElement, {
70
+ element: "div",
71
+ attrs: { class: "rpg-ui-menu-panel-hero-icon" },
72
+ textContent: "✨"
73
+ }), h(DOMElement, { element: "div" }, [h(DOMElement, {
74
+ element: "div",
75
+ attrs: { class: "rpg-ui-menu-panel-details-title" },
76
+ textContent: computed(() => currentSkill()?.name)
77
+ }), h(DOMElement, {
78
+ element: "div",
79
+ attrs: { class: "rpg-ui-menu-panel-details-desc" },
80
+ textContent: computed(() => currentSkill()?.description || "")
81
+ })])]))), h(DOMElement, {
82
+ element: "div",
83
+ attrs: { class: "rpg-ui-menu-panel-list rpg-ui-menu rpg-ui-menu-panel-list-full" }
84
+ }, h(Navigation, {
85
+ tabindex: selectedSkill,
86
+ controls
87
+ }, loop(skills, (skill, index) => h(DOMElement, {
88
+ element: "div",
89
+ attrs: {
90
+ class: "rpg-ui-menu-item rpg-ui-menu-row",
91
+ "data-selected": computed(() => selectedSkill() === index ? "true" : "false"),
92
+ tabindex: index,
93
+ click: selectSkill(index)
94
+ }
95
+ }, [h(DOMElement, {
96
+ element: "span",
97
+ textContent: skill.name
98
+ }), h(DOMElement, {
99
+ element: "span",
100
+ attrs: { class: "rpg-ui-menu-row-end" },
101
+ textContent: "SP " + skill.spCost
102
+ })]))))])]));
19
103
  }
20
- var controls = signal({
21
- up: {
22
- repeat: true,
23
- bind: keyboardControls.up,
24
- throttle: 150,
25
- keyDown: function () {
26
- nav.next(-1);
27
- }
28
- },
29
- down: {
30
- repeat: true,
31
- bind: keyboardControls.down,
32
- throttle: 150,
33
- keyDown: function () {
34
- nav.next(1);
35
- }
36
- },
37
- escape: {
38
- bind: keyboardControls.escape,
39
- keyDown: function () {
40
- if (onBack)
41
- onBack();
42
- }
43
- },
44
- gamepad: {
45
- enabled: true
46
- }
47
- });
48
- let $this = h(DOMContainer, { width: '100%', height: '100%' }, h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel rpg-ui-panel' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-header' }, textContent: 'Skills' }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-body rpg-ui-menu-panel-body-stacked' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-details rpg-ui-panel' } }, cond(currentSkill, () => h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-hero' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-hero-icon' }, textContent: '✨' }), h(DOMElement, { element: "div" }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-details-title' }, textContent: computed(() => currentSkill()?.name) }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-details-desc' }, textContent: computed(() => currentSkill()?.description || "") })])]))), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-panel-list rpg-ui-menu rpg-ui-menu-panel-list-full' } }, h(Navigation, { tabindex: selectedSkill, controls: controls }, loop(skills, (skill, index) => h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-item rpg-ui-menu-row', 'data-selected': computed(() => selectedSkill() === index ? "true" : "false"), tabindex: index, click: selectSkill(index) } }, [h(DOMElement, { element: "span", textContent: skill.name }), h(DOMElement, { element: "span", attrs: { class: 'rpg-ui-menu-row-end' }, textContent: 'SP ' + skill.spCost ?? 0 })]))))])]));
49
- return $this
50
- }
51
-
104
+ //#endregion
52
105
  export { component as default };
53
- //# sourceMappingURL=skills-menu.ce.js.map
106
+
107
+ //# sourceMappingURL=skills-menu.ce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills-menu.ce.js","sources":["../../../../src/components/gui/menu/skills-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\">\n <div class=\"rpg-ui-menu-panel rpg-ui-panel\">\n <div class=\"rpg-ui-menu-panel-header\">Skills</div>\n <div class=\"rpg-ui-menu-panel-body rpg-ui-menu-panel-body-stacked\">\n <div class=\"rpg-ui-menu-panel-details rpg-ui-panel\">\n @if (currentSkill) {\n <div class=\"rpg-ui-menu-panel-hero\">\n <div class=\"rpg-ui-menu-panel-hero-icon\">✨</div>\n <div>\n <div class=\"rpg-ui-menu-panel-details-title\">{currentSkill()?.name}</div>\n <div class=\"rpg-ui-menu-panel-details-desc\">{currentSkill()?.description || \"\"}</div>\n </div>\n </div>\n }\n </div>\n <div class=\"rpg-ui-menu-panel-list rpg-ui-menu rpg-ui-menu-panel-list-full\">\n <Navigation tabindex={selectedSkill} controls={controls}>\n @for ((skill,index) of skills) {\n <div\n class=\"rpg-ui-menu-item rpg-ui-menu-row\"\n data-selected={selectedSkill() === index ? \"true\" : \"false\"}\n tabindex={index}\n click={selectSkill(index)}\n >\n <span>{skill.name}</span>\n <span class=\"rpg-ui-menu-row-end\">SP {skill.spCost ?? 0}</span>\n </div>\n }\n </Navigation>\n </div>\n </div>\n </div>\n</DOMContainer>\n\n<script>\n import { signal, computed, createTabindexNavigator } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n\n const engine = inject(RpgClientEngine);\n const keyboardControls = engine.globalConfig.keyboardControls;\n\n const selectedSkill = signal(0);\n const { data, onBack } = defineProps();\n const skills = computed(() => data().skills);\n\n const nav = createTabindexNavigator(selectedSkill, { count: () => skills().length }, \"wrap\");\n const currentSkill = computed(() => skills()[selectedSkill()]);\n\n function selectSkill(index) {\n return function() {\n selectedSkill.set(index);\n }\n }\n\n const controls = signal({\n up: {\n repeat: true,\n bind: keyboardControls.up,\n throttle: 150,\n keyDown() {\n nav.next(-1);\n }\n },\n down: {\n repeat: true,\n bind: keyboardControls.down,\n throttle: 150,\n keyDown() {\n nav.next(1);\n }\n },\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (onBack) onBack();\n }\n },\n gamepad: {\n enabled: true\n }\n });\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-menu.ce.js","names":[],"sources":["../../../../src/components/gui/menu/skills-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\">\n <div class=\"rpg-ui-menu-panel rpg-ui-panel\">\n <div class=\"rpg-ui-menu-panel-header\">Skills</div>\n <div class=\"rpg-ui-menu-panel-body rpg-ui-menu-panel-body-stacked\">\n <div class=\"rpg-ui-menu-panel-details rpg-ui-panel\">\n @if (currentSkill) {\n <div class=\"rpg-ui-menu-panel-hero\">\n <div class=\"rpg-ui-menu-panel-hero-icon\">✨</div>\n <div>\n <div class=\"rpg-ui-menu-panel-details-title\">{currentSkill()?.name}</div>\n <div class=\"rpg-ui-menu-panel-details-desc\">{currentSkill()?.description || \"\"}</div>\n </div>\n </div>\n }\n </div>\n <div class=\"rpg-ui-menu-panel-list rpg-ui-menu rpg-ui-menu-panel-list-full\">\n <Navigation tabindex={selectedSkill} controls={controls}>\n @for ((skill,index) of skills) {\n <div\n class=\"rpg-ui-menu-item rpg-ui-menu-row\"\n data-selected={selectedSkill() === index ? \"true\" : \"false\"}\n tabindex={index}\n click={selectSkill(index)}\n >\n <span>{skill.name}</span>\n <span class=\"rpg-ui-menu-row-end\">SP {skill.spCost ?? 0}</span>\n </div>\n }\n </Navigation>\n </div>\n </div>\n </div>\n</DOMContainer>\n\n<script>\n import { signal, computed, createTabindexNavigator } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n\n const engine = inject(RpgClientEngine);\n const keyboardControls = engine.globalConfig.keyboardControls;\n\n const selectedSkill = signal(0);\n const { data, onBack } = defineProps();\n const skills = computed(() => data().skills);\n\n const nav = createTabindexNavigator(selectedSkill, { count: () => skills().length }, \"wrap\");\n const currentSkill = computed(() => skills()[selectedSkill()]);\n\n function selectSkill(index) {\n return function() {\n selectedSkill.set(index);\n }\n }\n\n const controls = signal({\n up: {\n repeat: true,\n bind: keyboardControls.up,\n throttle: 150,\n keyDown() {\n nav.next(-1);\n }\n },\n down: {\n repeat: true,\n bind: keyboardControls.down,\n throttle: 150,\n keyDown() {\n nav.next(1);\n }\n },\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (onBack) onBack();\n }\n },\n gamepad: {\n enabled: true\n }\n });\n</script>\n"],"mappings":";;;;AAUM,SAAuB,UAAW,SAAO;AACxB,UAAM,QAAA;CACrB,MAAM,cAAW,eAAA,QAAA;CAEzB,IAAI,mBADY,OAAA,gBAAA,CACC,aAAA;CACjB,IAAI,gBAAa,OAAU,EAAC;CAC5B,IAAI,KAAK,aAAQ,EAAA,OAAW,GAAA,MAAU,SAAA,GAAc;CACpD,IAAI,SAAS,SAAQ,WAAY;AAAA,SAAU,MAAM,CAAC;GAAC;CACnD,IAAI,MAAM,wBAAe,eAAA,EAAA,OAAA,WAAA;AAAA,SAAA,QAAA,CAAA;IAAA,EAAA,OAAA;CACzB,IAAI,eAAe,SAAS,WAAW;AAAG,SAAK,QAAS,CAAE,eAAS;GAAA;CACnE,SAAS,YAAY,OAAO;AACxB,SAAO,WAAY;AACf,iBAAc,IAAI,MAAE;;;CAG5B,IAAI,WAAW,OAAO;EAClB,IAAI;GACA,QAAQ;GACR,MAAM,iBAAc;GACpB,UAAS;GACT,SAAK,WAAA;AACJ,QAAA,KAAA,GAAA;;;EAGR,MAAM;GACH,QAAS;GACT,MAAS,iBAAkB;GAC3B,UAAS;;AAEH,QAAM,KAAG,EAAA;;;EAGf,QAAM;GACN,MAAQ,iBAAiB;GACzB,SAAa,WAAY;eAEb,SAAA;;;EAGZ,SAAS,EACL,SAAO,MACV;EACJ,CAAC;QACE,EAAA,cAAA;EAAA,OAAA;EAAA,QAAA;EAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kCAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,4BAAA;EAAA,aAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,yDAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,0CAAA;EAAA,EAAA,KAAA,oBAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,0BAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,+BAAA;EAAA,aAAA;EAAA,CAAA,EAAA,EAAA,YAAA,EAAA,SAAA,OAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,mCAAA;EAAA,aAAA,eAAA,cAAA,EAAA,KAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kCAAA;EAAA,aAAA,eAAA,cAAA,EAAA,eAAA,GAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kEAAA;EAAA,EAAA,EAAA,YAAA;EAAA,UAAA;EAAA;EAAA,EAAA,KAAA,SAAA,OAAA,UAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA;GAAA,OAAA;GAAA,iBAAA,eAAA,eAAA,KAAA,QAAA,SAAA,QAAA;GAAA,UAAA;GAAA,OAAA,YAAA,MAAA;GAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,aAAA,MAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,uBAAA;EAAA,aAAA,QAAA,MAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -1,24 +1,21 @@
1
- import { inject } from '../../../core/inject.js';
2
- import { RpgClientEngine } from '../../../RpgClientEngine.js';
3
- import component from './mobile.ce.js';
4
- import { signal } from 'canvasengine';
5
-
1
+ import { inject } from "../../../core/inject.js";
2
+ import { RpgClientEngine } from "../../../RpgClientEngine.js";
3
+ import component from "./mobile.ce.js";
4
+ import { signal } from "canvasengine";
5
+ //#region src/components/gui/mobile/index.ts
6
6
  function isMobile() {
7
- return /Android|iPhone|iPad|iPod|Windows Phone|webOS|BlackBerry/i.test(navigator.userAgent);
7
+ return /Android|iPhone|iPad|iPod|Windows Phone|webOS|BlackBerry/i.test(navigator.userAgent);
8
8
  }
9
- const withMobile = () => ({
10
- gui: [
11
- {
12
- id: "mobile-gui",
13
- component: component,
14
- autoDisplay: true,
15
- dependencies: () => {
16
- const engine = inject(RpgClientEngine);
17
- return [signal(isMobile() || void 0), engine.controlsReady];
18
- }
19
- }
20
- ]
21
- });
22
-
9
+ var withMobile = () => ({ gui: [{
10
+ id: "mobile-gui",
11
+ component,
12
+ autoDisplay: true,
13
+ dependencies: () => {
14
+ const engine = inject(RpgClientEngine);
15
+ return [signal(isMobile() || void 0), engine.controlsReady];
16
+ }
17
+ }] });
18
+ //#endregion
23
19
  export { withMobile };
24
- //# sourceMappingURL=index.js.map
20
+
21
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/gui/mobile/index.ts"],"sourcesContent":["import { inject } from \"../../../core/inject\";\nimport { RpgClientEngine } from \"../../../RpgClientEngine\";\nimport MobileGui from \"./mobile.ce\";\nimport { signal } from \"canvasengine\";\n\nfunction isMobile() {\n return /Android|iPhone|iPad|iPod|Windows Phone|webOS|BlackBerry/i.test(navigator.userAgent);\n }\n\nexport const withMobile = () => (\n {\n gui: [\n {\n id: 'mobile-gui',\n component: MobileGui,\n autoDisplay: true,\n dependencies: () => {\n const engine = inject(RpgClientEngine);\n return [signal(isMobile() ||undefined), engine.controlsReady]\n }\n }\n ]\n }\n)"],"names":["MobileGui"],"mappings":";;;;;AAKA,SAAS,QAAA,GAAW;AAChB,EAAA,OAAO,0DAAA,CAA2D,IAAA,CAAK,SAAA,CAAU,SAAS,CAAA;AAC5F;AAEK,MAAM,aAAa,OACtB;AAAA,EACI,GAAA,EAAK;AAAA,IACD;AAAA,MACI,EAAA,EAAI,YAAA;AAAA,MACJ,SAAA,EAAWA,SAAA;AAAA,MACX,WAAA,EAAa,IAAA;AAAA,MACb,cAAc,MAAM;AAChB,QAAA,MAAM,MAAA,GAAS,OAAO,eAAe,CAAA;AACrC,QAAA,OAAO,CAAC,MAAA,CAAO,QAAA,MAAa,MAAS,CAAA,EAAG,OAAO,aAAa,CAAA;AAAA,MAChE;AAAA;AACJ;AAER,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/gui/mobile/index.ts"],"sourcesContent":["import { inject } from \"../../../core/inject\";\nimport { RpgClientEngine } from \"../../../RpgClientEngine\";\nimport MobileGui from \"./mobile.ce\";\nimport { signal } from \"canvasengine\";\n\nfunction isMobile() {\n return /Android|iPhone|iPad|iPod|Windows Phone|webOS|BlackBerry/i.test(navigator.userAgent);\n }\n\nexport const withMobile = () => (\n {\n gui: [\n {\n id: 'mobile-gui',\n component: MobileGui,\n autoDisplay: true,\n dependencies: () => {\n const engine = inject(RpgClientEngine);\n return [signal(isMobile() ||undefined), engine.controlsReady]\n }\n }\n ]\n }\n)"],"mappings":";;;;;AAKA,SAAS,WAAW;AAChB,QAAO,2DAA2D,KAAK,UAAU,UAAU;;AAG/F,IAAa,oBACT,EACI,KAAK,CACD;CACI,IAAI;CACO;CACX,aAAa;CACb,oBAAoB;EAChB,MAAM,SAAS,OAAO,gBAAgB;AACtC,SAAO,CAAC,OAAO,UAAU,IAAG,KAAA,EAAU,EAAE,OAAO,cAAc;;CAEpE,CACJ,EACJ"}
@@ -1,17 +1,78 @@
1
- import { useProps, useDefineProps, signal, mount, h, Container, Button, Joystick } from 'canvasengine';
2
- import { inject } from '../../../core/inject.js';
3
-
1
+ import { inject } from "../../../core/inject.js";
2
+ import { Button, Container, Joystick, h, mount, signal, useDefineProps, useProps } from "canvasengine";
3
+ //#region src/components/gui/mobile/mobile.ce
4
4
  function component($$props) {
5
- useProps($$props);
6
- useDefineProps($$props);
7
- var controlsInstance = signal(null);
8
- mount(function (element) {
9
- var control = inject('KeyboardControls');
10
- controlsInstance.set(control);
11
- });
12
- let $this = h(Container, { justifyContent: 'space-between', alignItems: 'flex-end', width: '100%', height: '100%' }, [h(Container, { justifyContent: 'flex-start', alignItems: 'flex-end', gap: 20 }, h(Container, { display: 'flex', direction: 'column', gap: 20, margin: 50 }, [h(Button, { text: 'A', shape: 'circle', width: 70, height: 70, controls: controlsInstance, controlName: 'action', style: { backgroundColor: { normal: "#2ecc71", hover: "#27ae60", pressed: "#229954", disabled: "#7f8c8d" }, text: { fontSize: 24, fontFamily: "Arial Bold", color: "#ffffff" } } }), h(Button, { text: 'B', shape: 'circle', width: 70, height: 70, controls: controlsInstance, controlName: 'back', style: { backgroundColor: { normal: "#e74c3c", hover: "#c0392b", pressed: "#a93226", disabled: "#7f8c8d" }, text: { fontSize: 24, fontFamily: "Arial Bold", color: "#ffffff" } } })])), h(Container, { margin: 100, alignItems: 'flex-end' }, h(Container, null, h(Joystick, { controls: controlsInstance, outerColor: '#34495e', innerColor: '#3498db' })))]);
13
- return $this
14
- }
15
-
5
+ useProps($$props);
6
+ useDefineProps($$props);
7
+ var controlsInstance = signal(null);
8
+ mount(function(element) {
9
+ var control = inject("KeyboardControls");
10
+ controlsInstance.set(control);
11
+ });
12
+ return h(Container, {
13
+ justifyContent: "space-between",
14
+ alignItems: "flex-end",
15
+ width: "100%",
16
+ height: "100%"
17
+ }, [h(Container, {
18
+ justifyContent: "flex-start",
19
+ alignItems: "flex-end",
20
+ gap: 20
21
+ }, h(Container, {
22
+ display: "flex",
23
+ direction: "column",
24
+ gap: 20,
25
+ margin: 50
26
+ }, [h(Button, {
27
+ text: "A",
28
+ shape: "circle",
29
+ width: 70,
30
+ height: 70,
31
+ controls: controlsInstance,
32
+ controlName: "action",
33
+ style: {
34
+ backgroundColor: {
35
+ normal: "#2ecc71",
36
+ hover: "#27ae60",
37
+ pressed: "#229954",
38
+ disabled: "#7f8c8d"
39
+ },
40
+ text: {
41
+ fontSize: 24,
42
+ fontFamily: "Arial Bold",
43
+ color: "#ffffff"
44
+ }
45
+ }
46
+ }), h(Button, {
47
+ text: "B",
48
+ shape: "circle",
49
+ width: 70,
50
+ height: 70,
51
+ controls: controlsInstance,
52
+ controlName: "back",
53
+ style: {
54
+ backgroundColor: {
55
+ normal: "#e74c3c",
56
+ hover: "#c0392b",
57
+ pressed: "#a93226",
58
+ disabled: "#7f8c8d"
59
+ },
60
+ text: {
61
+ fontSize: 24,
62
+ fontFamily: "Arial Bold",
63
+ color: "#ffffff"
64
+ }
65
+ }
66
+ })])), h(Container, {
67
+ margin: 100,
68
+ alignItems: "flex-end"
69
+ }, h(Container, null, h(Joystick, {
70
+ controls: controlsInstance,
71
+ outerColor: "#34495e",
72
+ innerColor: "#3498db"
73
+ })))]);
74
+ }
75
+ //#endregion
16
76
  export { component as default };
17
- //# sourceMappingURL=mobile.ce.js.map
77
+
78
+ //# sourceMappingURL=mobile.ce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mobile.ce.js","sources":["../../../../src/components/gui/mobile/mobile.ce"],"sourcesContent":["<Container justifyContent=\"space-between\" alignItems=\"flex-end\" width=\"100%\" height=\"100%\">\n <!-- Gamepad buttons A and B (left side) -->\n <Container justifyContent=\"flex-start\" alignItems=\"flex-end\" gap={20}>\n <Container display=\"flex\" direction=\"column\" gap={20} margin={50}>\n <!-- Button B (top) -->\n \n <!-- Button A (bottom) -->\n <Button \n text=\"A\"\n shape=\"circle\"\n width={70}\n height={70}\n controls={controlsInstance}\n controlName=\"action\"\n style={{\n backgroundColor: {\n normal: \"#2ecc71\",\n hover: \"#27ae60\",\n pressed: \"#229954\",\n disabled: \"#7f8c8d\"\n },\n text: {\n fontSize: 24,\n fontFamily: \"Arial Bold\",\n color: \"#ffffff\"\n }\n }}\n />\n\n <Button \n text=\"B\"\n shape=\"circle\"\n width={70}\n height={70}\n controls={controlsInstance}\n controlName=\"back\"\n style={{\n backgroundColor: {\n normal: \"#e74c3c\",\n hover: \"#c0392b\",\n pressed: \"#a93226\",\n disabled: \"#7f8c8d\"\n },\n text: {\n fontSize: 24,\n fontFamily: \"Arial Bold\",\n color: \"#ffffff\"\n }\n }}\n />\n\n </Container>\n </Container>\n \n <Container margin={100} alignItems=\"flex-end\">\n <Container>\n <Joystick \n controls={controlsInstance}\n outerColor=\"#34495e\"\n innerColor=\"#3498db\"\n />\n </Container>\n </Container>\n</Container>\n\n<script>\n import { signal, mount } from 'canvasengine'\n import { Button } from 'canvasengine'\n import { inject } from '../../../core/inject'\n import { RpgClientEngine } from '../../../RpgClientEngine'\n import { Direction } from '@rpgjs/common'\n\n\n const controlsInstance = signal(null)\n\n mount((element) => {\n const control = inject('KeyboardControls')\n controlsInstance.set(control)\n })\n</script>"],"names":[],"mappings":";;;AASqB,SAAS,SAAS,CAAC,OAAO,EAAE;AACjD,QAAuB,QAAQ,CAAC,OAAO;AACvC,QAA4B,cAAc,CAAC,OAAO;AAClD,QAAQ,IAAI,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC;AAC3C,KAAK,CAAC,UAAU,OAAO,EAAE;AACzB,IAAI,IAAI,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC5C,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;AACjC,CAAC,CAAC;AACF,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/gC,QAAQ,OAAO;AACf,MAAM;;;;"}
1
+ {"version":3,"file":"mobile.ce.js","names":[],"sources":["../../../../src/components/gui/mobile/mobile.ce"],"sourcesContent":["<Container justifyContent=\"space-between\" alignItems=\"flex-end\" width=\"100%\" height=\"100%\">\n <!-- Gamepad buttons A and B (left side) -->\n <Container justifyContent=\"flex-start\" alignItems=\"flex-end\" gap={20}>\n <Container display=\"flex\" direction=\"column\" gap={20} margin={50}>\n <!-- Button B (top) -->\n \n <!-- Button A (bottom) -->\n <Button \n text=\"A\"\n shape=\"circle\"\n width={70}\n height={70}\n controls={controlsInstance}\n controlName=\"action\"\n style={{\n backgroundColor: {\n normal: \"#2ecc71\",\n hover: \"#27ae60\",\n pressed: \"#229954\",\n disabled: \"#7f8c8d\"\n },\n text: {\n fontSize: 24,\n fontFamily: \"Arial Bold\",\n color: \"#ffffff\"\n }\n }}\n />\n\n <Button \n text=\"B\"\n shape=\"circle\"\n width={70}\n height={70}\n controls={controlsInstance}\n controlName=\"back\"\n style={{\n backgroundColor: {\n normal: \"#e74c3c\",\n hover: \"#c0392b\",\n pressed: \"#a93226\",\n disabled: \"#7f8c8d\"\n },\n text: {\n fontSize: 24,\n fontFamily: \"Arial Bold\",\n color: \"#ffffff\"\n }\n }}\n />\n\n </Container>\n </Container>\n \n <Container margin={100} alignItems=\"flex-end\">\n <Container>\n <Joystick \n controls={controlsInstance}\n outerColor=\"#34495e\"\n innerColor=\"#3498db\"\n />\n </Container>\n </Container>\n</Container>\n\n<script>\n import { signal, mount } from 'canvasengine'\n import { Button } from 'canvasengine'\n import { inject } from '../../../core/inject'\n import { RpgClientEngine } from '../../../RpgClientEngine'\n import { Direction } from '@rpgjs/common'\n\n\n const controlsInstance = signal(null)\n\n mount((element) => {\n const control = inject('KeyboardControls')\n controlsInstance.set(control)\n })\n</script>"],"mappings":";;;AASM,SAAuB,UAAA,SAAA;AACN,UAAE,QAAA;AACC,gBAAA,QAAA;CAClB,IAAI,mBAAc,OAAA,KAAgB;AAC1C,OAAM,SAAU,SAAA;EACZ,IAAI,UAAQ,OAAO,mBAAA;AACnB,mBAAgB,IAAA,QAAA;GAClB;AAEM,QADY,EAAE,WAAW;EAAA,gBAAO;EAAA,YAAA;EAAA,OAAA;EAAA,QAAA;EAAA,EAAA,CAAA,EAAA,WAAA;EAAA,gBAAA;EAAA,YAAA;EAAA,KAAA;EAAA,EAAA,EAAA,WAAA;EAAA,SAAA;EAAA,WAAA;EAAA,KAAA;EAAA,QAAA;EAAA,EAAA,CAAA,EAAA,QAAA;EAAA,MAAA;EAAA,OAAA;EAAA,OAAA;EAAA,QAAA;EAAA,UAAA;EAAA,aAAA;EAAA,OAAA;GAAA,iBAAA;IAAA,QAAA;IAAA,OAAA;IAAA,SAAA;IAAA,UAAA;IAAA;GAAA,MAAA;IAAA,UAAA;IAAA,YAAA;IAAA,OAAA;IAAA;GAAA;EAAA,CAAA,EAAA,EAAA,QAAA;EAAA,MAAA;EAAA,OAAA;EAAA,OAAA;EAAA,QAAA;EAAA,UAAA;EAAA,aAAA;EAAA,OAAA;GAAA,iBAAA;IAAA,QAAA;IAAA,OAAA;IAAA,SAAA;IAAA,UAAA;IAAA;GAAA,MAAA;IAAA,UAAA;IAAA,YAAA;IAAA,OAAA;IAAA;GAAA;EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,WAAA;EAAA,QAAA;EAAA,YAAA;EAAA,EAAA,EAAA,WAAA,MAAA,EAAA,UAAA;EAAA,UAAA;EAAA,YAAA;EAAA,YAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}