@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,54 +1,52 @@
1
- import { computed } from 'canvasengine';
2
-
3
- const entityPropMap = {
4
- level: (entity) => entity._level(),
5
- exp: (entity) => entity._exp(),
6
- gold: (entity) => entity._gold(),
7
- hp: (entity) => entity.hpSignal(),
8
- sp: (entity) => entity.spSignal(),
9
- name: (entity) => entity.name(),
10
- type: (entity) => entity.type(),
11
- x: (entity) => entity.x(),
12
- y: (entity) => entity.y(),
13
- z: (entity) => entity.z(),
14
- tint: (entity) => entity.tint(),
15
- direction: (entity) => entity.direction(),
16
- speed: (entity) => entity.speed(),
17
- hitbox: (entity) => entity.hitbox(),
18
- animation: (entity) => entity.animationName(),
19
- canMove: (entity) => entity.canMove(),
20
- graphics: (entity) => entity.graphics(),
21
- items: (entity) => entity.items(),
22
- equipments: (entity) => entity.equipments(),
23
- states: (entity) => entity.states(),
24
- skills: (entity) => entity.skills(),
25
- effects: (entity) => entity._effects(),
26
- componentsTop: (entity) => entity.componentsTop(),
27
- componentsBottom: (entity) => entity.componentsBottom(),
28
- componentsCenter: (entity) => entity.componentsCenter(),
29
- componentsLeft: (entity) => entity.componentsLeft(),
30
- componentsRight: (entity) => entity.componentsRight()
1
+ import { computed } from "canvasengine";
2
+ //#region src/utils/getEntityProp.ts
3
+ var entityPropMap = {
4
+ level: (entity) => entity._level(),
5
+ exp: (entity) => entity._exp(),
6
+ gold: (entity) => entity._gold(),
7
+ hp: (entity) => entity.hpSignal(),
8
+ sp: (entity) => entity.spSignal(),
9
+ name: (entity) => entity.name(),
10
+ type: (entity) => entity.type(),
11
+ x: (entity) => entity.x(),
12
+ y: (entity) => entity.y(),
13
+ z: (entity) => entity.z(),
14
+ tint: (entity) => entity.tint(),
15
+ direction: (entity) => entity.direction(),
16
+ speed: (entity) => entity.speed(),
17
+ hitbox: (entity) => entity.hitbox(),
18
+ animation: (entity) => entity.animationName(),
19
+ canMove: (entity) => entity.canMove(),
20
+ graphics: (entity) => entity.graphics(),
21
+ items: (entity) => entity.items(),
22
+ equipments: (entity) => entity.equipments(),
23
+ states: (entity) => entity.states(),
24
+ skills: (entity) => entity.skills(),
25
+ effects: (entity) => entity._effects(),
26
+ componentsTop: (entity) => entity.componentsTop(),
27
+ componentsBottom: (entity) => entity.componentsBottom(),
28
+ componentsCenter: (entity) => entity.componentsCenter(),
29
+ componentsLeft: (entity) => entity.componentsLeft(),
30
+ componentsRight: (entity) => entity.componentsRight()
31
31
  };
32
- const isSignal = (value) => typeof value === "function";
33
- const toSignal = (value) => isSignal(value) ? value : computed(() => value);
34
- const getEntityProp = (entity, key) => {
35
- const entitySignal = toSignal(entity);
36
- return computed(() => {
37
- const current = entitySignal();
38
- if (!current) {
39
- return void 0;
40
- }
41
- if (Object.prototype.hasOwnProperty.call(entityPropMap, key)) {
42
- const getter = entityPropMap[key];
43
- return getter(current);
44
- }
45
- if (key.startsWith("params.")) {
46
- const paramKey = key.slice("params.".length);
47
- return current._param?.()?.[paramKey];
48
- }
49
- return void 0;
50
- });
32
+ var isSignal = (value) => typeof value === "function";
33
+ var toSignal = (value) => isSignal(value) ? value : computed(() => value);
34
+ var getEntityProp = (entity, key) => {
35
+ const entitySignal = toSignal(entity);
36
+ return computed(() => {
37
+ const current = entitySignal();
38
+ if (!current) return;
39
+ if (Object.prototype.hasOwnProperty.call(entityPropMap, key)) {
40
+ const getter = entityPropMap[key];
41
+ return getter(current);
42
+ }
43
+ if (key.startsWith("params.")) {
44
+ const paramKey = key.slice(7);
45
+ return current._param?.()?.[paramKey];
46
+ }
47
+ });
51
48
  };
52
-
49
+ //#endregion
53
50
  export { getEntityProp };
54
- //# sourceMappingURL=getEntityProp.js.map
51
+
52
+ //# sourceMappingURL=getEntityProp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getEntityProp.js","sources":["../../src/utils/getEntityProp.ts"],"sourcesContent":["import { computed, Signal } from \"canvasengine\";\nimport { RpgClientObject } from \"../Game/Object\";\n\nconst BUILTIN_PARAM_KEYS = [\n \"maxHp\",\n \"maxSp\",\n \"atk\",\n \"pdef\",\n \"sdef\",\n \"str\",\n \"agi\",\n \"int\",\n \"dex\",\n] as const;\n\ntype BuiltInParamKey = typeof BUILTIN_PARAM_KEYS[number];\ntype ParamPropKey = `params.${BuiltInParamKey}` | `params.${string}`;\n\nconst entityPropMap = {\n level: (entity: RpgClientObject) => entity._level(),\n exp: (entity: RpgClientObject) => entity._exp(),\n gold: (entity: RpgClientObject) => entity._gold(),\n hp: (entity: RpgClientObject) => entity.hpSignal(),\n sp: (entity: RpgClientObject) => entity.spSignal(),\n name: (entity: RpgClientObject) => entity.name(),\n type: (entity: RpgClientObject) => entity.type(),\n x: (entity: RpgClientObject) => entity.x(),\n y: (entity: RpgClientObject) => entity.y(),\n z: (entity: RpgClientObject) => entity.z(),\n tint: (entity: RpgClientObject) => entity.tint(),\n direction: (entity: RpgClientObject) => entity.direction(),\n speed: (entity: RpgClientObject) => entity.speed(),\n hitbox: (entity: RpgClientObject) => entity.hitbox(),\n animation: (entity: RpgClientObject) => entity.animationName(),\n canMove: (entity: RpgClientObject) => entity.canMove(),\n graphics: (entity: RpgClientObject) => entity.graphics(),\n items: (entity: RpgClientObject) => entity.items(),\n equipments: (entity: RpgClientObject) => entity.equipments(),\n states: (entity: RpgClientObject) => entity.states(),\n skills: (entity: RpgClientObject) => entity.skills(),\n effects: (entity: RpgClientObject) => entity._effects(),\n componentsTop: (entity: RpgClientObject) => entity.componentsTop(),\n componentsBottom: (entity: RpgClientObject) => entity.componentsBottom(),\n componentsCenter: (entity: RpgClientObject) => entity.componentsCenter(),\n componentsLeft: (entity: RpgClientObject) => entity.componentsLeft(),\n componentsRight: (entity: RpgClientObject) => entity.componentsRight(),\n} as const;\n\ntype EntityPropMap = typeof entityPropMap;\ntype EntityPropKey = keyof EntityPropMap | ParamPropKey;\ntype EntityPropValue<K extends EntityPropKey> = K extends keyof EntityPropMap\n ? ReturnType<EntityPropMap[K]>\n : K extends `params.${string}`\n ? number | undefined\n : never;\n\nconst isSignal = <T>(value: unknown): value is Signal<T> =>\n typeof value === \"function\";\n\nconst toSignal = <T>(value: Signal<T> | T): Signal<T> =>\n isSignal<T>(value) ? value : computed(() => value);\n\nexport const getEntityProp = <K extends EntityPropKey>(\n entity: Signal<RpgClientObject | undefined> | RpgClientObject | undefined,\n key: K\n): Signal<EntityPropValue<K>> => {\n const entitySignal = toSignal(entity);\n\n return computed(() => {\n const current = entitySignal();\n if (!current) {\n return undefined as EntityPropValue<K>;\n }\n\n if (Object.prototype.hasOwnProperty.call(entityPropMap, key)) {\n const getter = entityPropMap[key as keyof EntityPropMap];\n return getter(current) as EntityPropValue<K>;\n }\n\n if (key.startsWith(\"params.\")) {\n const paramKey = key.slice(\"params.\".length);\n return current._param?.()?.[paramKey] as EntityPropValue<K>;\n }\n\n return undefined as EntityPropValue<K>;\n });\n};\n"],"names":[],"mappings":";;AAkBA,MAAM,aAAA,GAAgB;AAAA,EACpB,KAAA,EAAO,CAAC,MAAA,KAA4B,MAAA,CAAO,MAAA,EAAO;AAAA,EAClD,GAAA,EAAK,CAAC,MAAA,KAA4B,MAAA,CAAO,IAAA,EAAK;AAAA,EAC9C,IAAA,EAAM,CAAC,MAAA,KAA4B,MAAA,CAAO,KAAA,EAAM;AAAA,EAChD,EAAA,EAAI,CAAC,MAAA,KAA4B,MAAA,CAAO,QAAA,EAAS;AAAA,EACjD,EAAA,EAAI,CAAC,MAAA,KAA4B,MAAA,CAAO,QAAA,EAAS;AAAA,EACjD,IAAA,EAAM,CAAC,MAAA,KAA4B,MAAA,CAAO,IAAA,EAAK;AAAA,EAC/C,IAAA,EAAM,CAAC,MAAA,KAA4B,MAAA,CAAO,IAAA,EAAK;AAAA,EAC/C,CAAA,EAAG,CAAC,MAAA,KAA4B,MAAA,CAAO,CAAA,EAAE;AAAA,EACzC,CAAA,EAAG,CAAC,MAAA,KAA4B,MAAA,CAAO,CAAA,EAAE;AAAA,EACzC,CAAA,EAAG,CAAC,MAAA,KAA4B,MAAA,CAAO,CAAA,EAAE;AAAA,EACzC,IAAA,EAAM,CAAC,MAAA,KAA4B,MAAA,CAAO,IAAA,EAAK;AAAA,EAC/C,SAAA,EAAW,CAAC,MAAA,KAA4B,MAAA,CAAO,SAAA,EAAU;AAAA,EACzD,KAAA,EAAO,CAAC,MAAA,KAA4B,MAAA,CAAO,KAAA,EAAM;AAAA,EACjD,MAAA,EAAQ,CAAC,MAAA,KAA4B,MAAA,CAAO,MAAA,EAAO;AAAA,EACnD,SAAA,EAAW,CAAC,MAAA,KAA4B,MAAA,CAAO,aAAA,EAAc;AAAA,EAC7D,OAAA,EAAS,CAAC,MAAA,KAA4B,MAAA,CAAO,OAAA,EAAQ;AAAA,EACrD,QAAA,EAAU,CAAC,MAAA,KAA4B,MAAA,CAAO,QAAA,EAAS;AAAA,EACvD,KAAA,EAAO,CAAC,MAAA,KAA4B,MAAA,CAAO,KAAA,EAAM;AAAA,EACjD,UAAA,EAAY,CAAC,MAAA,KAA4B,MAAA,CAAO,UAAA,EAAW;AAAA,EAC3D,MAAA,EAAQ,CAAC,MAAA,KAA4B,MAAA,CAAO,MAAA,EAAO;AAAA,EACnD,MAAA,EAAQ,CAAC,MAAA,KAA4B,MAAA,CAAO,MAAA,EAAO;AAAA,EACnD,OAAA,EAAS,CAAC,MAAA,KAA4B,MAAA,CAAO,QAAA,EAAS;AAAA,EACtD,aAAA,EAAe,CAAC,MAAA,KAA4B,MAAA,CAAO,aAAA,EAAc;AAAA,EACjE,gBAAA,EAAkB,CAAC,MAAA,KAA4B,MAAA,CAAO,gBAAA,EAAiB;AAAA,EACvE,gBAAA,EAAkB,CAAC,MAAA,KAA4B,MAAA,CAAO,gBAAA,EAAiB;AAAA,EACvE,cAAA,EAAgB,CAAC,MAAA,KAA4B,MAAA,CAAO,cAAA,EAAe;AAAA,EACnE,eAAA,EAAiB,CAAC,MAAA,KAA4B,MAAA,CAAO,eAAA;AACvD,CAAA;AAUA,MAAM,QAAA,GAAW,CAAI,KAAA,KACnB,OAAO,KAAA,KAAU,UAAA;AAEnB,MAAM,QAAA,GAAW,CAAI,KAAA,KACnB,QAAA,CAAY,KAAK,CAAA,GAAI,KAAA,GAAQ,QAAA,CAAS,MAAM,KAAK,CAAA;AAE5C,MAAM,aAAA,GAAgB,CAC3B,MAAA,EACA,GAAA,KAC+B;AAC/B,EAAA,MAAM,YAAA,GAAe,SAAS,MAAM,CAAA;AAEpC,EAAA,OAAO,SAAS,MAAM;AACpB,IAAA,MAAM,UAAU,YAAA,EAAa;AAC7B,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,IAAI,OAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,aAAA,EAAe,GAAG,CAAA,EAAG;AAC5D,MAAA,MAAM,MAAA,GAAS,cAAc,GAA0B,CAAA;AACvD,MAAA,OAAO,OAAO,OAAO,CAAA;AAAA,IACvB;AAEA,IAAA,IAAI,GAAA,CAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AAC7B,MAAA,MAAM,QAAA,GAAW,GAAA,CAAI,KAAA,CAAM,SAAA,CAAU,MAAM,CAAA;AAC3C,MAAA,OAAO,OAAA,CAAQ,MAAA,IAAS,GAAI,QAAQ,CAAA;AAAA,IACtC;AAEA,IAAA,OAAO,MAAA;AAAA,EACT,CAAC,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"getEntityProp.js","names":[],"sources":["../../src/utils/getEntityProp.ts"],"sourcesContent":["import { computed, Signal } from \"canvasengine\";\nimport { RpgClientObject } from \"../Game/Object\";\n\nconst BUILTIN_PARAM_KEYS = [\n \"maxHp\",\n \"maxSp\",\n \"atk\",\n \"pdef\",\n \"sdef\",\n \"str\",\n \"agi\",\n \"int\",\n \"dex\",\n] as const;\n\ntype BuiltInParamKey = typeof BUILTIN_PARAM_KEYS[number];\ntype ParamPropKey = `params.${BuiltInParamKey}` | `params.${string}`;\n\nconst entityPropMap = {\n level: (entity: RpgClientObject) => entity._level(),\n exp: (entity: RpgClientObject) => entity._exp(),\n gold: (entity: RpgClientObject) => entity._gold(),\n hp: (entity: RpgClientObject) => entity.hpSignal(),\n sp: (entity: RpgClientObject) => entity.spSignal(),\n name: (entity: RpgClientObject) => entity.name(),\n type: (entity: RpgClientObject) => entity.type(),\n x: (entity: RpgClientObject) => entity.x(),\n y: (entity: RpgClientObject) => entity.y(),\n z: (entity: RpgClientObject) => entity.z(),\n tint: (entity: RpgClientObject) => entity.tint(),\n direction: (entity: RpgClientObject) => entity.direction(),\n speed: (entity: RpgClientObject) => entity.speed(),\n hitbox: (entity: RpgClientObject) => entity.hitbox(),\n animation: (entity: RpgClientObject) => entity.animationName(),\n canMove: (entity: RpgClientObject) => entity.canMove(),\n graphics: (entity: RpgClientObject) => entity.graphics(),\n items: (entity: RpgClientObject) => entity.items(),\n equipments: (entity: RpgClientObject) => entity.equipments(),\n states: (entity: RpgClientObject) => entity.states(),\n skills: (entity: RpgClientObject) => entity.skills(),\n effects: (entity: RpgClientObject) => entity._effects(),\n componentsTop: (entity: RpgClientObject) => entity.componentsTop(),\n componentsBottom: (entity: RpgClientObject) => entity.componentsBottom(),\n componentsCenter: (entity: RpgClientObject) => entity.componentsCenter(),\n componentsLeft: (entity: RpgClientObject) => entity.componentsLeft(),\n componentsRight: (entity: RpgClientObject) => entity.componentsRight(),\n} as const;\n\ntype EntityPropMap = typeof entityPropMap;\ntype EntityPropKey = keyof EntityPropMap | ParamPropKey;\ntype EntityPropValue<K extends EntityPropKey> = K extends keyof EntityPropMap\n ? ReturnType<EntityPropMap[K]>\n : K extends `params.${string}`\n ? number | undefined\n : never;\n\nconst isSignal = <T>(value: unknown): value is Signal<T> =>\n typeof value === \"function\";\n\nconst toSignal = <T>(value: Signal<T> | T): Signal<T> =>\n isSignal<T>(value) ? value : computed(() => value);\n\nexport const getEntityProp = <K extends EntityPropKey>(\n entity: Signal<RpgClientObject | undefined> | RpgClientObject | undefined,\n key: K\n): Signal<EntityPropValue<K>> => {\n const entitySignal = toSignal(entity);\n\n return computed(() => {\n const current = entitySignal();\n if (!current) {\n return undefined as EntityPropValue<K>;\n }\n\n if (Object.prototype.hasOwnProperty.call(entityPropMap, key)) {\n const getter = entityPropMap[key as keyof EntityPropMap];\n return getter(current) as EntityPropValue<K>;\n }\n\n if (key.startsWith(\"params.\")) {\n const paramKey = key.slice(\"params.\".length);\n return current._param?.()?.[paramKey] as EntityPropValue<K>;\n }\n\n return undefined as EntityPropValue<K>;\n });\n};\n"],"mappings":";;AAkBA,IAAM,gBAAgB;CACpB,QAAQ,WAA4B,OAAO,QAAQ;CACnD,MAAM,WAA4B,OAAO,MAAM;CAC/C,OAAO,WAA4B,OAAO,OAAO;CACjD,KAAK,WAA4B,OAAO,UAAU;CAClD,KAAK,WAA4B,OAAO,UAAU;CAClD,OAAO,WAA4B,OAAO,MAAM;CAChD,OAAO,WAA4B,OAAO,MAAM;CAChD,IAAI,WAA4B,OAAO,GAAG;CAC1C,IAAI,WAA4B,OAAO,GAAG;CAC1C,IAAI,WAA4B,OAAO,GAAG;CAC1C,OAAO,WAA4B,OAAO,MAAM;CAChD,YAAY,WAA4B,OAAO,WAAW;CAC1D,QAAQ,WAA4B,OAAO,OAAO;CAClD,SAAS,WAA4B,OAAO,QAAQ;CACpD,YAAY,WAA4B,OAAO,eAAe;CAC9D,UAAU,WAA4B,OAAO,SAAS;CACtD,WAAW,WAA4B,OAAO,UAAU;CACxD,QAAQ,WAA4B,OAAO,OAAO;CAClD,aAAa,WAA4B,OAAO,YAAY;CAC5D,SAAS,WAA4B,OAAO,QAAQ;CACpD,SAAS,WAA4B,OAAO,QAAQ;CACpD,UAAU,WAA4B,OAAO,UAAU;CACvD,gBAAgB,WAA4B,OAAO,eAAe;CAClE,mBAAmB,WAA4B,OAAO,kBAAkB;CACxE,mBAAmB,WAA4B,OAAO,kBAAkB;CACxE,iBAAiB,WAA4B,OAAO,gBAAgB;CACpE,kBAAkB,WAA4B,OAAO,iBAAiB;CACvE;AAUD,IAAM,YAAe,UACnB,OAAO,UAAU;AAEnB,IAAM,YAAe,UACnB,SAAY,MAAM,GAAG,QAAQ,eAAe,MAAM;AAEpD,IAAa,iBACX,QACA,QAC+B;CAC/B,MAAM,eAAe,SAAS,OAAO;AAErC,QAAO,eAAe;EACpB,MAAM,UAAU,cAAc;AAC9B,MAAI,CAAC,QACH;AAGF,MAAI,OAAO,UAAU,eAAe,KAAK,eAAe,IAAI,EAAE;GAC5D,MAAM,SAAS,cAAc;AAC7B,UAAO,OAAO,QAAQ;;AAGxB,MAAI,IAAI,WAAW,UAAU,EAAE;GAC7B,MAAM,WAAW,IAAI,MAAM,EAAiB;AAC5C,UAAO,QAAQ,UAAU,GAAG;;GAI9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpgjs/client",
3
- "version": "5.0.0-alpha.43",
3
+ "version": "5.0.0-alpha.44",
4
4
  "description": "RPGJS is a framework for creating RPG/MMORPG games",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -22,10 +22,10 @@
22
22
  "pixi.js": "^8.9.2"
23
23
  },
24
24
  "dependencies": {
25
- "@rpgjs/client": "5.0.0-alpha.43",
26
- "@rpgjs/common": "5.0.0-alpha.43",
27
- "@rpgjs/server": "5.0.0-alpha.43",
28
- "@rpgjs/ui-css": "5.0.0-alpha.43",
25
+ "@rpgjs/client": "5.0.0-alpha.44",
26
+ "@rpgjs/common": "5.0.0-alpha.44",
27
+ "@rpgjs/server": "5.0.0-alpha.44",
28
+ "@rpgjs/ui-css": "5.0.0-alpha.44",
29
29
  "@signe/di": "^2.8.3",
30
30
  "@signe/room": "^2.8.3",
31
31
  "@signe/sync": "^2.8.3",
@@ -33,10 +33,10 @@
33
33
  "rxjs": "^7.8.2"
34
34
  },
35
35
  "devDependencies": {
36
- "@canvasengine/compiler": "2.0.0-beta.54",
37
- "vite": "^7.3.1",
36
+ "@canvasengine/compiler": "2.0.0-beta.56",
37
+ "vite": "^8.0.0",
38
38
  "vite-plugin-dts": "^4.5.4",
39
- "vitest": "^4.0.18"
39
+ "vitest": "^4.1.0"
40
40
  },
41
41
  "type": "module",
42
42
  "scripts": {
@@ -1,4 +1,4 @@
1
- <Container x={smoothX} y={smoothY} zIndex={z} viewportFollow={shouldFollowCamera} controls onBeforeDestroy visible >
1
+ <Container x={smoothX} y={smoothY} zIndex={z} viewportFollow={shouldFollowCamera} controls onBeforeDestroy visible>
2
2
  @for (compConfig of normalizedComponentsBehind) {
3
3
  <Container>
4
4
  <compConfig.component object ...compConfig.props />
@@ -1,7 +1,9 @@
1
1
  <Container sound={backgroundMusic} shake={shakeConfig} freeze={engine.gamePause}>
2
2
  <Container sound={backgroundAmbientSound} />
3
3
 
4
- <sceneComponent() data={map().data} params={map().params} />
4
+ @if (map() && sceneComponent()) {
5
+ <sceneComponent() data={map().data} params={map().params} />
6
+ }
5
7
 
6
8
  @for (componentAnimation of componentAnimations) {
7
9
  <Container>
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}