@rpgjs/client 4.3.0 → 5.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/dist/Game/EffectManager.d.ts +5 -0
  2. package/dist/Game/Event.d.ts +4 -0
  3. package/dist/Game/Map.d.ts +7 -0
  4. package/dist/Game/Player.d.ts +4 -0
  5. package/dist/Gui/Gui.d.ts +23 -0
  6. package/{lib → dist}/RpgClient.d.ts +9 -6
  7. package/dist/RpgClientEngine.d.ts +43 -0
  8. package/dist/components/effects/index.d.ts +4 -0
  9. package/dist/components/gui/index.d.ts +3 -0
  10. package/dist/components/index.d.ts +2 -0
  11. package/dist/core/inject.d.ts +5 -0
  12. package/dist/core/setup.d.ts +6 -0
  13. package/dist/index.d.ts +13 -0
  14. package/dist/index.js +13 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/index10.js +8 -0
  17. package/dist/index10.js.map +1 -0
  18. package/dist/index11.js +10 -0
  19. package/dist/index11.js.map +1 -0
  20. package/dist/index12.js +8 -0
  21. package/dist/index12.js.map +1 -0
  22. package/dist/index13.js +17 -0
  23. package/dist/index13.js.map +1 -0
  24. package/dist/index14.js +50 -0
  25. package/dist/index14.js.map +1 -0
  26. package/dist/index15.js +191 -0
  27. package/dist/index15.js.map +1 -0
  28. package/dist/index16.js +9 -0
  29. package/dist/index16.js.map +1 -0
  30. package/dist/index17.js +387 -0
  31. package/dist/index17.js.map +1 -0
  32. package/dist/index18.js +31 -0
  33. package/dist/index18.js.map +1 -0
  34. package/dist/index19.js +24 -0
  35. package/dist/index19.js.map +1 -0
  36. package/dist/index2.js +112 -0
  37. package/dist/index2.js.map +1 -0
  38. package/dist/index20.js +2421 -0
  39. package/dist/index20.js.map +1 -0
  40. package/dist/index21.js +114 -0
  41. package/dist/index21.js.map +1 -0
  42. package/dist/index22.js +109 -0
  43. package/dist/index22.js.map +1 -0
  44. package/dist/index23.js +71 -0
  45. package/dist/index23.js.map +1 -0
  46. package/dist/index24.js +21 -0
  47. package/dist/index24.js.map +1 -0
  48. package/dist/index25.js +41 -0
  49. package/dist/index25.js.map +1 -0
  50. package/dist/index26.js +5 -0
  51. package/dist/index26.js.map +1 -0
  52. package/dist/index27.js +322 -0
  53. package/dist/index27.js.map +1 -0
  54. package/dist/index28.js +25 -0
  55. package/dist/index28.js.map +1 -0
  56. package/dist/index29.js +11 -0
  57. package/dist/index29.js.map +1 -0
  58. package/dist/index3.js +87 -0
  59. package/dist/index3.js.map +1 -0
  60. package/dist/index30.js +11 -0
  61. package/dist/index30.js.map +1 -0
  62. package/dist/index31.js +174 -0
  63. package/dist/index31.js.map +1 -0
  64. package/dist/index32.js +501 -0
  65. package/dist/index32.js.map +1 -0
  66. package/dist/index33.js +12 -0
  67. package/dist/index33.js.map +1 -0
  68. package/dist/index34.js +4403 -0
  69. package/dist/index34.js.map +1 -0
  70. package/dist/index35.js +316 -0
  71. package/dist/index35.js.map +1 -0
  72. package/dist/index36.js +61 -0
  73. package/dist/index36.js.map +1 -0
  74. package/dist/index37.js +91 -0
  75. package/dist/index37.js.map +1 -0
  76. package/dist/index38.js +20 -0
  77. package/dist/index38.js.map +1 -0
  78. package/dist/index39.js +20 -0
  79. package/dist/index39.js.map +1 -0
  80. package/dist/index4.js +54 -0
  81. package/dist/index4.js.map +1 -0
  82. package/dist/index5.js +15 -0
  83. package/dist/index5.js.map +1 -0
  84. package/dist/index6.js +17 -0
  85. package/dist/index6.js.map +1 -0
  86. package/dist/index7.js +31 -0
  87. package/dist/index7.js.map +1 -0
  88. package/dist/index8.js +90 -0
  89. package/dist/index8.js.map +1 -0
  90. package/dist/index9.js +76 -0
  91. package/dist/index9.js.map +1 -0
  92. package/dist/module.d.ts +14 -0
  93. package/dist/presets/index.d.ts +22 -0
  94. package/{lib/Presets/AnimationSpritesheet.d.ts → dist/presets/rmspritesheet.d.ts} +6 -2
  95. package/dist/services/AbstractSocket.d.ts +15 -0
  96. package/dist/services/loadMap.d.ts +14 -0
  97. package/dist/services/mmorpg.d.ts +32 -0
  98. package/dist/services/standalone.d.ts +34 -0
  99. package/package.json +25 -41
  100. package/src/Game/EffectManager.ts +20 -0
  101. package/src/Game/Event.ts +5 -0
  102. package/src/Game/Map.ts +10 -0
  103. package/src/Game/Object.ts +16 -0
  104. package/src/Game/Player.ts +5 -0
  105. package/src/Gui/Gui.ts +80 -533
  106. package/src/RpgClient.ts +9 -5
  107. package/src/RpgClientEngine.ts +135 -818
  108. package/src/components/character.ce +104 -0
  109. package/src/components/effects/animation.ce +19 -0
  110. package/src/components/effects/hit.ce +87 -0
  111. package/src/components/effects/index.ts +7 -0
  112. package/src/components/gui/dialogbox/index.ce +194 -0
  113. package/src/components/gui/dialogbox/itemMenu.ce +23 -0
  114. package/src/components/gui/dialogbox/selection.ce +67 -0
  115. package/src/components/gui/index.ts +5 -0
  116. package/src/components/index.ts +3 -0
  117. package/src/components/scenes/canvas.ce +51 -0
  118. package/src/components/scenes/draw-map.ce +56 -0
  119. package/src/components/scenes/element-map.ce +23 -0
  120. package/src/components/scenes/event-layer.ce +20 -0
  121. package/src/core/inject.ts +17 -0
  122. package/src/core/setup.ts +18 -0
  123. package/src/index.ts +13 -29
  124. package/src/module.ts +93 -0
  125. package/src/presets/index.ts +5 -0
  126. package/src/{Presets/AnimationSpritesheet.ts → presets/rmspritesheet.ts} +4 -5
  127. package/src/services/AbstractSocket.ts +14 -0
  128. package/src/services/loadMap.ts +33 -0
  129. package/src/services/mmorpg.ts +64 -0
  130. package/src/services/standalone.ts +101 -0
  131. package/src/types/canvas-engine.d.ts +26 -0
  132. package/tsconfig.json +8 -3
  133. package/vite.config.ts +34 -0
  134. package/CHANGELOG.md +0 -189
  135. package/LICENSE +0 -19
  136. package/browser/React-ece4b906.js +0 -195
  137. package/browser/index-ba657126.js +0 -44229
  138. package/browser/manifest.json +0 -21
  139. package/browser/rpg.client.js +0 -40
  140. package/browser/rpg.client.umd.cjs +0 -44456
  141. package/lib/Components/AbstractComponent.d.ts +0 -32
  142. package/lib/Components/AbstractComponent.js +0 -93
  143. package/lib/Components/AbstractComponent.js.map +0 -1
  144. package/lib/Components/BarComponent.d.ts +0 -21
  145. package/lib/Components/BarComponent.js +0 -169
  146. package/lib/Components/BarComponent.js.map +0 -1
  147. package/lib/Components/Component.d.ts +0 -124
  148. package/lib/Components/Component.js +0 -425
  149. package/lib/Components/Component.js.map +0 -1
  150. package/lib/Components/DebugComponent.d.ts +0 -11
  151. package/lib/Components/DebugComponent.js +0 -32
  152. package/lib/Components/DebugComponent.js.map +0 -1
  153. package/lib/Components/ImageComponent.d.ts +0 -11
  154. package/lib/Components/ImageComponent.js +0 -30
  155. package/lib/Components/ImageComponent.js.map +0 -1
  156. package/lib/Components/ShapeComponent.d.ts +0 -11
  157. package/lib/Components/ShapeComponent.js +0 -57
  158. package/lib/Components/ShapeComponent.js.map +0 -1
  159. package/lib/Components/TextComponent.d.ts +0 -11
  160. package/lib/Components/TextComponent.js +0 -35
  161. package/lib/Components/TextComponent.js.map +0 -1
  162. package/lib/Components/TileComponent.d.ts +0 -10
  163. package/lib/Components/TileComponent.js +0 -40
  164. package/lib/Components/TileComponent.js.map +0 -1
  165. package/lib/Effects/Animation.d.ts +0 -55
  166. package/lib/Effects/Animation.js +0 -233
  167. package/lib/Effects/Animation.js.map +0 -1
  168. package/lib/Effects/AnimationCharacter.d.ts +0 -7
  169. package/lib/Effects/AnimationCharacter.js +0 -9
  170. package/lib/Effects/AnimationCharacter.js.map +0 -1
  171. package/lib/Effects/Spinner.d.ts +0 -7
  172. package/lib/Effects/Spinner.js +0 -18
  173. package/lib/Effects/Spinner.js.map +0 -1
  174. package/lib/Effects/Timeline.d.ts +0 -151
  175. package/lib/Effects/Timeline.js +0 -369
  176. package/lib/Effects/Timeline.js.map +0 -1
  177. package/lib/Effects/TransitionScene.d.ts +0 -18
  178. package/lib/Effects/TransitionScene.js +0 -50
  179. package/lib/Effects/TransitionScene.js.map +0 -1
  180. package/lib/GameEngine.d.ts +0 -68
  181. package/lib/GameEngine.js +0 -254
  182. package/lib/GameEngine.js.map +0 -1
  183. package/lib/Gui/Gui.d.ts +0 -110
  184. package/lib/Gui/Gui.js +0 -489
  185. package/lib/Gui/Gui.js.map +0 -1
  186. package/lib/Gui/React.d.ts +0 -28
  187. package/lib/Gui/React.js +0 -147
  188. package/lib/Gui/React.js.map +0 -1
  189. package/lib/Gui/Vue.d.ts +0 -13
  190. package/lib/Gui/Vue.js +0 -114
  191. package/lib/Gui/Vue.js.map +0 -1
  192. package/lib/Interfaces/Character.d.ts +0 -6
  193. package/lib/Interfaces/Character.js +0 -2
  194. package/lib/Interfaces/Character.js.map +0 -1
  195. package/lib/Interfaces/Scene.d.ts +0 -10
  196. package/lib/Interfaces/Scene.js +0 -2
  197. package/lib/Interfaces/Scene.js.map +0 -1
  198. package/lib/KeyboardControls.d.ts +0 -367
  199. package/lib/KeyboardControls.js +0 -714
  200. package/lib/KeyboardControls.js.map +0 -1
  201. package/lib/Logger.d.ts +0 -1
  202. package/lib/Logger.js +0 -4
  203. package/lib/Logger.js.map +0 -1
  204. package/lib/Presets/AnimationSpritesheet.js +0 -39
  205. package/lib/Presets/AnimationSpritesheet.js.map +0 -1
  206. package/lib/Presets/Scene.d.ts +0 -3
  207. package/lib/Presets/Scene.js +0 -5
  208. package/lib/Presets/Scene.js.map +0 -1
  209. package/lib/Renderer.d.ts +0 -62
  210. package/lib/Renderer.js +0 -300
  211. package/lib/Renderer.js.map +0 -1
  212. package/lib/Resources.d.ts +0 -22
  213. package/lib/Resources.js +0 -38
  214. package/lib/Resources.js.map +0 -1
  215. package/lib/RpgClient.js +0 -2
  216. package/lib/RpgClient.js.map +0 -1
  217. package/lib/RpgClientEngine.d.ts +0 -257
  218. package/lib/RpgClientEngine.js +0 -677
  219. package/lib/RpgClientEngine.js.map +0 -1
  220. package/lib/Scene/EventLayer.d.ts +0 -4
  221. package/lib/Scene/EventLayer.js +0 -8
  222. package/lib/Scene/EventLayer.js.map +0 -1
  223. package/lib/Scene/Map.d.ts +0 -109
  224. package/lib/Scene/Map.js +0 -319
  225. package/lib/Scene/Map.js.map +0 -1
  226. package/lib/Scene/Scene.d.ts +0 -184
  227. package/lib/Scene/Scene.js +0 -250
  228. package/lib/Scene/Scene.js.map +0 -1
  229. package/lib/Scene/SceneData.d.ts +0 -4
  230. package/lib/Scene/SceneData.js +0 -8
  231. package/lib/Scene/SceneData.js.map +0 -1
  232. package/lib/Sound/RpgSound.d.ts +0 -11
  233. package/lib/Sound/RpgSound.js +0 -46
  234. package/lib/Sound/RpgSound.js.map +0 -1
  235. package/lib/Sound/Sound.d.ts +0 -78
  236. package/lib/Sound/Sound.js +0 -12
  237. package/lib/Sound/Sound.js.map +0 -1
  238. package/lib/Sound/Sounds.d.ts +0 -2
  239. package/lib/Sound/Sounds.js +0 -6
  240. package/lib/Sound/Sounds.js.map +0 -1
  241. package/lib/Sprite/Character.d.ts +0 -18
  242. package/lib/Sprite/Character.js +0 -131
  243. package/lib/Sprite/Character.js.map +0 -1
  244. package/lib/Sprite/Player.d.ts +0 -3
  245. package/lib/Sprite/Player.js +0 -4
  246. package/lib/Sprite/Player.js.map +0 -1
  247. package/lib/Sprite/Spritesheet.d.ts +0 -365
  248. package/lib/Sprite/Spritesheet.js +0 -13
  249. package/lib/Sprite/Spritesheet.js.map +0 -1
  250. package/lib/Sprite/Spritesheets.d.ts +0 -3
  251. package/lib/Sprite/Spritesheets.js +0 -6
  252. package/lib/Sprite/Spritesheets.js.map +0 -1
  253. package/lib/Tilemap/CommonLayer.d.ts +0 -10
  254. package/lib/Tilemap/CommonLayer.js +0 -17
  255. package/lib/Tilemap/CommonLayer.js.map +0 -1
  256. package/lib/Tilemap/ImageLayer.d.ts +0 -4
  257. package/lib/Tilemap/ImageLayer.js +0 -16
  258. package/lib/Tilemap/ImageLayer.js.map +0 -1
  259. package/lib/Tilemap/Tile.d.ts +0 -21
  260. package/lib/Tilemap/Tile.js +0 -67
  261. package/lib/Tilemap/Tile.js.map +0 -1
  262. package/lib/Tilemap/TileLayer.d.ts +0 -13
  263. package/lib/Tilemap/TileLayer.js +0 -122
  264. package/lib/Tilemap/TileLayer.js.map +0 -1
  265. package/lib/Tilemap/TileSet.d.ts +0 -7
  266. package/lib/Tilemap/TileSet.js +0 -24
  267. package/lib/Tilemap/TileSet.js.map +0 -1
  268. package/lib/Tilemap/index.d.ts +0 -28
  269. package/lib/Tilemap/index.js +0 -151
  270. package/lib/Tilemap/index.js.map +0 -1
  271. package/lib/clientEntryPoint.d.ts +0 -89
  272. package/lib/clientEntryPoint.js +0 -48
  273. package/lib/clientEntryPoint.js.map +0 -1
  274. package/lib/index.d.ts +0 -26
  275. package/lib/index.js +0 -27
  276. package/lib/index.js.map +0 -1
  277. package/lib/inject.d.ts +0 -23
  278. package/lib/inject.js +0 -30
  279. package/lib/inject.js.map +0 -1
  280. package/rpg.toml +0 -14
  281. package/src/Components/AbstractComponent.ts +0 -120
  282. package/src/Components/BarComponent.ts +0 -181
  283. package/src/Components/Component.ts +0 -515
  284. package/src/Components/DebugComponent.ts +0 -36
  285. package/src/Components/ImageComponent.ts +0 -30
  286. package/src/Components/ShapeComponent.ts +0 -64
  287. package/src/Components/TextComponent.ts +0 -33
  288. package/src/Components/TileComponent.ts +0 -43
  289. package/src/Effects/Animation.ts +0 -310
  290. package/src/Effects/AnimationCharacter.ts +0 -7
  291. package/src/Effects/Spinner.ts +0 -19
  292. package/src/Effects/Timeline.ts +0 -378
  293. package/src/Effects/TransitionScene.ts +0 -59
  294. package/src/GameEngine.ts +0 -289
  295. package/src/Gui/React.ts +0 -193
  296. package/src/Gui/Vue.ts +0 -154
  297. package/src/Interfaces/Character.ts +0 -7
  298. package/src/Interfaces/Scene.ts +0 -9
  299. package/src/KeyboardControls.ts +0 -748
  300. package/src/Logger.ts +0 -3
  301. package/src/Presets/Scene.ts +0 -3
  302. package/src/Renderer.ts +0 -334
  303. package/src/Resources.ts +0 -39
  304. package/src/Scene/EventLayer.ts +0 -9
  305. package/src/Scene/Map.ts +0 -402
  306. package/src/Scene/Scene.ts +0 -305
  307. package/src/Scene/SceneData.ts +0 -13
  308. package/src/Sound/RpgSound.ts +0 -50
  309. package/src/Sound/Sound.ts +0 -91
  310. package/src/Sound/Sounds.ts +0 -7
  311. package/src/Sprite/Character.ts +0 -157
  312. package/src/Sprite/Player.ts +0 -3
  313. package/src/Sprite/Spritesheet.ts +0 -392
  314. package/src/Sprite/Spritesheets.ts +0 -8
  315. package/src/Tilemap/CommonLayer.ts +0 -20
  316. package/src/Tilemap/ImageLayer.ts +0 -20
  317. package/src/Tilemap/Tile.ts +0 -80
  318. package/src/Tilemap/TileLayer.ts +0 -142
  319. package/src/Tilemap/TileSet.ts +0 -40
  320. package/src/Tilemap/index.ts +0 -175
  321. package/src/clientEntryPoint.ts +0 -150
  322. package/src/inject.ts +0 -34
  323. package/src/types/howler.d.ts +0 -73
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index5.js","sources":["../src/core/setup.ts"],"sourcesContent":["import { Context, FactoryProvider, findProvider, findProviders, inject, injector, Providers } from \"@signe/di\";\nimport { RpgClientEngine } from \"../RpgClientEngine\";\nimport { setInject } from \"./inject\";\n\ninterface SetupOptions {\n providers: Providers;\n}\n\nexport async function startGame(options: SetupOptions) {\n const context = new Context();\n setInject(context);\n\n await injector(context, options.providers);\n\n const engine = inject(context, RpgClientEngine);\n await engine.start();\n return context;\n}"],"names":[],"mappings":";;;;AAQA,eAAsB,UAAU,OAAuB,EAAA;AACrD,EAAM,MAAA,OAAA,GAAU,IAAI,OAAQ,EAAA;AAC5B,EAAA,SAAA,CAAU,OAAO,CAAA;AAEjB,EAAM,MAAA,QAAA,CAAS,OAAS,EAAA,OAAA,CAAQ,SAAS,CAAA;AAEzC,EAAM,MAAA,MAAA,GAAS,MAAO,CAAA,OAAA,EAAS,eAAe,CAAA;AAC9C,EAAA,MAAM,OAAO,KAAM,EAAA;AACnB,EAAO,OAAA,OAAA;AACT;;;;"}
package/dist/index6.js ADDED
@@ -0,0 +1,17 @@
1
+ import { inject as inject$1 } from './index15.js';
2
+
3
+ let context = null;
4
+ function inject(service, _context) {
5
+ const c = _context ?? context;
6
+ if (!c) throw new Error("Context is not set. use setInject() to set the context");
7
+ return inject$1(c, service);
8
+ }
9
+ function setInject(_context) {
10
+ context = _context;
11
+ }
12
+ function clearInject() {
13
+ context = null;
14
+ }
15
+
16
+ export { clearInject, context, inject, setInject };
17
+ //# sourceMappingURL=index6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index6.js","sources":["../src/core/inject.ts"],"sourcesContent":["import { Context, inject as injector } from \"@signe/di\";\n\nexport let context: Context | null = null\n\nexport function inject<T>(service: (new (...args: any[]) => T) | string, _context?: Context): T {\n const c = _context ?? context\n if (!c) throw new Error(\"Context is not set. use setInject() to set the context\");\n return injector(c, service);\n}\n\nexport function setInject(_context: Context) {\n context = _context;\n}\n\nexport function clearInject() {\n context = null\n}"],"names":["injector"],"mappings":";;AAEO,IAAI,OAA0B,GAAA;AAErB,SAAA,MAAA,CAAU,SAA+C,QAAuB,EAAA;AAC5F,EAAA,MAAM,IAAI,QAAY,IAAA,OAAA;AACtB,EAAA,IAAI,CAAC,CAAA,EAAS,MAAA,IAAI,MAAM,wDAAwD,CAAA;AAChF,EAAO,OAAAA,QAAA,CAAS,GAAG,OAAO,CAAA;AAC9B;AAEO,SAAS,UAAU,QAAmB,EAAA;AACzC,EAAU,OAAA,GAAA,QAAA;AACd;AAEO,SAAS,WAAc,GAAA;AAC1B,EAAU,OAAA,GAAA,IAAA;AACd;;;;"}
package/dist/index7.js ADDED
@@ -0,0 +1,31 @@
1
+ import { inject } from './index15.js';
2
+ import { UpdateMapToken } from '@rpgjs/common';
3
+
4
+ const LoadMapToken = "LoadMapToken";
5
+ class LoadMapService {
6
+ constructor(context, options) {
7
+ this.context = context;
8
+ this.options = options;
9
+ this.updateMapService = inject(context, UpdateMapToken);
10
+ }
11
+ async load(mapId) {
12
+ const map = await this.options(mapId.replace("map-", ""));
13
+ await this.updateMapService.update(mapId, map);
14
+ return map;
15
+ }
16
+ }
17
+ function provideLoadMap(options) {
18
+ return [
19
+ {
20
+ provide: UpdateMapToken,
21
+ useFactory: (context) => console.warn("UpdateMapToken is not overridden")
22
+ },
23
+ {
24
+ provide: LoadMapToken,
25
+ useFactory: (context) => new LoadMapService(context, options)
26
+ }
27
+ ];
28
+ }
29
+
30
+ export { LoadMapService, LoadMapToken, provideLoadMap };
31
+ //# sourceMappingURL=index7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index7.js","sources":["../src/services/loadMap.ts"],"sourcesContent":["import { Context, inject } from \"@signe/di\";\nimport { UpdateMapToken, UpdateMapService } from \"@rpgjs/common\";\n\nexport const LoadMapToken = 'LoadMapToken'\n\nexport type LoadMapOptions = (mapId: string) => Promise<void>\n\nexport class LoadMapService {\n private updateMapService: UpdateMapService;\n\n constructor(private context: Context, private options: LoadMapOptions) {\n this.updateMapService = inject(context, UpdateMapToken);\n }\n\n async load(mapId: string) {\n const map = await this.options(mapId.replace('map-', ''))\n await this.updateMapService.update(mapId, map);\n return map;\n }\n}\n\nexport function provideLoadMap(options: LoadMapOptions) {\n return [\n {\n provide: UpdateMapToken,\n useFactory: (context: Context) => console.warn('UpdateMapToken is not overridden'),\n },\n {\n provide: LoadMapToken,\n useFactory: (context: Context) => new LoadMapService(context, options),\n },\n ];\n}\n"],"names":[],"mappings":";;;AAGO,MAAM,YAAe,GAAA;AAIrB,MAAM,cAAe,CAAA;AAAA,EAG1B,WAAA,CAAoB,SAA0B,OAAyB,EAAA;AAAnD,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAA0B,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAC5C,IAAK,IAAA,CAAA,gBAAA,GAAmB,MAAO,CAAA,OAAA,EAAS,cAAc,CAAA;AAAA;AACxD,EAEA,MAAM,KAAK,KAAe,EAAA;AACxB,IAAM,MAAA,GAAA,GAAM,MAAM,IAAK,CAAA,OAAA,CAAQ,MAAM,OAAQ,CAAA,MAAA,EAAQ,EAAE,CAAC,CAAA;AACxD,IAAA,MAAM,IAAK,CAAA,gBAAA,CAAiB,MAAO,CAAA,KAAA,EAAO,GAAG,CAAA;AAC7C,IAAO,OAAA,GAAA;AAAA;AAEX;AAEO,SAAS,eAAe,OAAyB,EAAA;AACtD,EAAO,OAAA;AAAA,IACL;AAAA,MACE,OAAS,EAAA,cAAA;AAAA,MACT,UAAY,EAAA,CAAC,OAAqB,KAAA,OAAA,CAAQ,KAAK,kCAAkC;AAAA,KACnF;AAAA,IACA;AAAA,MACE,OAAS,EAAA,YAAA;AAAA,MACT,YAAY,CAAC,OAAA,KAAqB,IAAI,cAAA,CAAe,SAAS,OAAO;AAAA;AACvE,GACF;AACF;;;;"}
package/dist/index8.js ADDED
@@ -0,0 +1,90 @@
1
+ import { provideModules, findModules } from '@rpgjs/common';
2
+ import { inject } from './index15.js';
3
+ import { RpgGui } from './index9.js';
4
+
5
+ function provideClientModules(modules) {
6
+ return provideModules(modules, "client", (modules2, context) => {
7
+ const mainModuleClient = findModules(context, "Client");
8
+ modules2 = [...mainModuleClient, ...modules2];
9
+ modules2 = modules2.map((module) => {
10
+ if ("client" in module) {
11
+ module = module.client;
12
+ }
13
+ if (module.spritesheets) {
14
+ const spritesheets = [...module.spritesheets];
15
+ module.spritesheets = {
16
+ load: (engine) => {
17
+ spritesheets.forEach((spritesheet) => {
18
+ engine.addSpriteSheet(spritesheet);
19
+ });
20
+ }
21
+ };
22
+ }
23
+ if (module.sounds) {
24
+ const sounds = [...module.sounds];
25
+ module.sounds = {
26
+ load: (engine) => {
27
+ sounds.forEach((sound) => {
28
+ engine.addSound(sound);
29
+ });
30
+ }
31
+ };
32
+ }
33
+ if (module.gui) {
34
+ const gui = [...module.gui];
35
+ module.gui = {
36
+ load: (engine) => {
37
+ const guiService = inject(engine.context, RpgGui);
38
+ gui.forEach((gui2) => {
39
+ guiService.add(gui2);
40
+ });
41
+ }
42
+ };
43
+ }
44
+ if (module.effects) {
45
+ const effects = [...module.effects];
46
+ module.effects = {
47
+ load: (engine) => {
48
+ effects.forEach((effect) => {
49
+ engine.addEffect(effect);
50
+ });
51
+ }
52
+ };
53
+ }
54
+ if (module.particles) {
55
+ const particles = [...module.particles];
56
+ module.particles = {
57
+ load: (engine) => {
58
+ particles.forEach((particle) => {
59
+ engine.addParticle(particle);
60
+ });
61
+ }
62
+ };
63
+ }
64
+ return module;
65
+ });
66
+ return modules2;
67
+ });
68
+ }
69
+ const GlobalConfigToken = "GlobalConfigToken";
70
+ function provideGlobalConfig(config) {
71
+ return {
72
+ provide: GlobalConfigToken,
73
+ useValue: config ?? {}
74
+ };
75
+ }
76
+ function provideClientGlobalConfig(config = {}) {
77
+ if (!config.keyboardControls) {
78
+ config.keyboardControls = {
79
+ up: "up",
80
+ down: "down",
81
+ left: "left",
82
+ right: "right",
83
+ action: "space"
84
+ };
85
+ }
86
+ return provideGlobalConfig(config);
87
+ }
88
+
89
+ export { GlobalConfigToken, provideClientGlobalConfig, provideClientModules, provideGlobalConfig };
90
+ //# sourceMappingURL=index8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index8.js","sources":["../src/module.ts"],"sourcesContent":["import { findModules, provideModules } from \"@rpgjs/common\";\nimport { RpgClientEngine } from \"./RpgClientEngine\";\nimport { RpgClient } from \"./RpgClient\";\nimport { inject } from \"@signe/di\";\nimport { RpgGui } from \"./Gui/Gui\";\n\nexport function provideClientModules(modules: RpgClient[]) {\n return provideModules(modules, \"client\", (modules, context) => {\n const mainModuleClient = findModules(context, 'Client')\n modules = [...mainModuleClient, ...modules]\n modules = modules.map((module) => {\n if ('client' in module) {\n module = module.client as any;\n }\n if (module.spritesheets) {\n const spritesheets = [...module.spritesheets];\n module.spritesheets = {\n load: (engine: RpgClientEngine) => {\n spritesheets.forEach((spritesheet) => {\n engine.addSpriteSheet(spritesheet);\n });\n },\n };\n }\n if (module.sounds) {\n const sounds = [...module.sounds];\n module.sounds = {\n load: (engine: RpgClientEngine) => {\n sounds.forEach((sound) => {\n engine.addSound(sound);\n });\n },\n };\n }\n if (module.gui) {\n const gui = [...module.gui];\n module.gui = {\n load: (engine: RpgClientEngine) => {\n const guiService = inject(engine.context, RpgGui);\n gui.forEach((gui) => {\n guiService.add(gui);\n });\n },\n };\n }\n if (module.effects) {\n const effects = [...module.effects];\n module.effects = {\n load: (engine: RpgClientEngine) => {\n effects.forEach((effect) => {\n engine.addEffect(effect);\n });\n },\n };\n }\n if (module.particles) {\n const particles = [...module.particles];\n module.particles = {\n load: (engine: RpgClientEngine) => {\n particles.forEach((particle) => {\n engine.addParticle(particle);\n });\n },\n };\n }\n return module;\n });\n return modules\n });\n}\n\nexport const GlobalConfigToken = \"GlobalConfigToken\";\n\nexport function provideGlobalConfig(config: any) {\n return {\n provide: GlobalConfigToken,\n useValue: config ?? {},\n };\n}\n\nexport function provideClientGlobalConfig(config: any = {}) {\n if (!config.keyboardControls) {\n config.keyboardControls = {\n up: 'up',\n down: 'down',\n left: 'left',\n right: 'right',\n action: 'space'\n }\n }\n return provideGlobalConfig(config)\n}\n\n"],"names":["modules","gui"],"mappings":"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"}
package/dist/index9.js ADDED
@@ -0,0 +1,76 @@
1
+ import { inject } from './index15.js';
2
+ import { signal } from 'canvasengine';
3
+ import { WebSocketToken } from './index16.js';
4
+ import { PrebuiltGui } from './index10.js';
5
+
6
+ const throwError = (id) => {
7
+ throw `The GUI named ${id} is non-existent. Please add the component in the gui property of the decorator @RpgClient`;
8
+ };
9
+ class RpgGui {
10
+ constructor(context) {
11
+ this.context = context;
12
+ this.gui = signal({});
13
+ this.webSocket = inject(context, WebSocketToken);
14
+ this.add({
15
+ name: "rpg-dialog",
16
+ component: PrebuiltGui.Dialogbox
17
+ });
18
+ }
19
+ async _initialize() {
20
+ this.webSocket.on("gui.open", (data) => {
21
+ this.display(data.guiId, data.data);
22
+ });
23
+ this.webSocket.on("gui.exit", (guiId) => {
24
+ this.hide(guiId);
25
+ });
26
+ }
27
+ guiInteraction(guiId, name, data) {
28
+ this.webSocket.emit("gui.interaction", {
29
+ guiId,
30
+ name,
31
+ data
32
+ });
33
+ }
34
+ guiClose(guiId, data) {
35
+ this.webSocket.emit("gui.exit", {
36
+ guiId,
37
+ data
38
+ });
39
+ }
40
+ add(gui) {
41
+ this.gui()[gui.name] = {
42
+ name: gui.name,
43
+ component: gui.component,
44
+ display: signal(gui.display || false),
45
+ data: signal(gui.data || {})
46
+ };
47
+ }
48
+ get(id) {
49
+ if (typeof id != "string") {
50
+ id = id.name;
51
+ }
52
+ return this.gui()[id];
53
+ }
54
+ exists(id) {
55
+ return !!this.get(id);
56
+ }
57
+ getAll() {
58
+ return this.gui();
59
+ }
60
+ display(id, data = {}) {
61
+ if (!this.exists(id)) {
62
+ throw throwError(id);
63
+ }
64
+ this.get(id).data.set(data);
65
+ this.get(id).display.set(true);
66
+ }
67
+ hide(id) {
68
+ if (!this.exists(id)) {
69
+ throw throwError(id);
70
+ }
71
+ this.get(id).display.set(false);
72
+ }
73
+ }
74
+
75
+ export { RpgGui };
76
+ //# sourceMappingURL=index9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index9.js","sources":["../src/Gui/Gui.ts"],"sourcesContent":["import { Context, inject } from \"@signe/di\";\nimport { signal } from \"canvasengine\";\nimport { AbstractWebsocket, WebSocketToken } from \"../services/AbstractSocket\";\nimport { PrebuiltGui } from \"../components/gui\";\n\ninterface GuiOptions {\n name: string;\n component: any;\n display?: boolean;\n data?: any;\n}\n\nconst throwError = (id: string) => {\n throw `The GUI named ${id} is non-existent. Please add the component in the gui property of the decorator @RpgClient`;\n};\n\nexport class RpgGui {\n private webSocket: AbstractWebsocket;\n gui = signal<any>({});\n\n constructor(private context: Context) {\n this.webSocket = inject(context, WebSocketToken);\n this.add({\n name: \"rpg-dialog\",\n component: PrebuiltGui.Dialogbox,\n });\n }\n\n async _initialize() {\n this.webSocket.on(\"gui.open\", (data: { guiId: string; data: any }) => {\n this.display(data.guiId, data.data);\n });\n\n this.webSocket.on(\"gui.exit\", (guiId: string) => {\n this.hide(guiId);\n });\n }\n\n guiInteraction(guiId: string, name: string, data: any) {\n this.webSocket.emit(\"gui.interaction\", {\n guiId,\n name,\n data,\n });\n }\n\n guiClose(guiId: string, data?: any) {\n this.webSocket.emit(\"gui.exit\", {\n guiId,\n data,\n });\n }\n\n add(gui: GuiOptions) {\n this.gui()[gui.name] = {\n name: gui.name,\n component: gui.component,\n display: signal(gui.display || false),\n data: signal(gui.data || {}),\n };\n }\n\n get(id: string | GuiOptions) {\n if (typeof id != \"string\") {\n id = id.name;\n }\n return this.gui()[id];\n }\n\n exists(id: string): boolean {\n return !!this.get(id);\n }\n\n getAll() {\n return this.gui();\n }\n\n display(id: string, data = {}) {\n if (!this.exists(id)) {\n throw throwError(id);\n }\n this.get(id).data.set(data);\n this.get(id).display.set(true);\n }\n\n hide(id: string) {\n if (!this.exists(id)) {\n throw throwError(id);\n }\n this.get(id).display.set(false);\n }\n}\n"],"names":[],"mappings":";;;;;AAYA,MAAM,UAAA,GAAa,CAAC,EAAe,KAAA;AACjC,EAAA,MAAM,iBAAiB,EAAE,CAAA,0FAAA,CAAA;AAC3B,CAAA;AAEO,MAAM,MAAO,CAAA;AAAA,EAIlB,YAAoB,OAAkB,EAAA;AAAlB,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAFpB,IAAM,IAAA,CAAA,GAAA,GAAA,MAAA,CAAY,EAAE,CAAA;AAGlB,IAAK,IAAA,CAAA,SAAA,GAAY,MAAO,CAAA,OAAA,EAAS,cAAc,CAAA;AAC/C,IAAA,IAAA,CAAK,GAAI,CAAA;AAAA,MACP,IAAM,EAAA,YAAA;AAAA,MACN,WAAW,WAAY,CAAA;AAAA,KACxB,CAAA;AAAA;AACH,EAEA,MAAM,WAAc,GAAA;AAClB,IAAA,IAAA,CAAK,SAAU,CAAA,EAAA,CAAG,UAAY,EAAA,CAAC,IAAuC,KAAA;AACpE,MAAA,IAAA,CAAK,OAAQ,CAAA,IAAA,CAAK,KAAO,EAAA,IAAA,CAAK,IAAI,CAAA;AAAA,KACnC,CAAA;AAED,IAAA,IAAA,CAAK,SAAU,CAAA,EAAA,CAAG,UAAY,EAAA,CAAC,KAAkB,KAAA;AAC/C,MAAA,IAAA,CAAK,KAAK,KAAK,CAAA;AAAA,KAChB,CAAA;AAAA;AACH,EAEA,cAAA,CAAe,KAAe,EAAA,IAAA,EAAc,IAAW,EAAA;AACrD,IAAK,IAAA,CAAA,SAAA,CAAU,KAAK,iBAAmB,EAAA;AAAA,MACrC,KAAA;AAAA,MACA,IAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA;AACH,EAEA,QAAA,CAAS,OAAe,IAAY,EAAA;AAClC,IAAK,IAAA,CAAA,SAAA,CAAU,KAAK,UAAY,EAAA;AAAA,MAC9B,KAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA;AACH,EAEA,IAAI,GAAiB,EAAA;AACnB,IAAA,IAAA,CAAK,GAAI,EAAA,CAAE,GAAI,CAAA,IAAI,CAAI,GAAA;AAAA,MACrB,MAAM,GAAI,CAAA,IAAA;AAAA,MACV,WAAW,GAAI,CAAA,SAAA;AAAA,MACf,OAAS,EAAA,MAAA,CAAO,GAAI,CAAA,OAAA,IAAW,KAAK,CAAA;AAAA,MACpC,IAAM,EAAA,MAAA,CAAO,GAAI,CAAA,IAAA,IAAQ,EAAE;AAAA,KAC7B;AAAA;AACF,EAEA,IAAI,EAAyB,EAAA;AAC3B,IAAI,IAAA,OAAO,MAAM,QAAU,EAAA;AACzB,MAAA,EAAA,GAAK,EAAG,CAAA,IAAA;AAAA;AAEV,IAAO,OAAA,IAAA,CAAK,GAAI,EAAA,CAAE,EAAE,CAAA;AAAA;AACtB,EAEA,OAAO,EAAqB,EAAA;AAC1B,IAAA,OAAO,CAAC,CAAC,IAAK,CAAA,GAAA,CAAI,EAAE,CAAA;AAAA;AACtB,EAEA,MAAS,GAAA;AACP,IAAA,OAAO,KAAK,GAAI,EAAA;AAAA;AAClB,EAEA,OAAQ,CAAA,EAAA,EAAY,IAAO,GAAA,EAAI,EAAA;AAC7B,IAAA,IAAI,CAAC,IAAA,CAAK,MAAO,CAAA,EAAE,CAAG,EAAA;AACpB,MAAA,MAAM,WAAW,EAAE,CAAA;AAAA;AAErB,IAAA,IAAA,CAAK,GAAI,CAAA,EAAE,CAAE,CAAA,IAAA,CAAK,IAAI,IAAI,CAAA;AAC1B,IAAA,IAAA,CAAK,GAAI,CAAA,EAAE,CAAE,CAAA,OAAA,CAAQ,IAAI,IAAI,CAAA;AAAA;AAC/B,EAEA,KAAK,EAAY,EAAA;AACf,IAAA,IAAI,CAAC,IAAA,CAAK,MAAO,CAAA,EAAE,CAAG,EAAA;AACpB,MAAA,MAAM,WAAW,EAAE,CAAA;AAAA;AAErB,IAAA,IAAA,CAAK,GAAI,CAAA,EAAE,CAAE,CAAA,OAAA,CAAQ,IAAI,KAAK,CAAA;AAAA;AAElC;;;;"}
@@ -0,0 +1,14 @@
1
+ import { RpgClient } from './RpgClient';
2
+ export declare function provideClientModules(modules: RpgClient[]): {
3
+ provide: string;
4
+ useFactory: (context: import('@signe/di').Context) => import('@rpgjs/common').Hooks;
5
+ };
6
+ export declare const GlobalConfigToken = "GlobalConfigToken";
7
+ export declare function provideGlobalConfig(config: any): {
8
+ provide: string;
9
+ useValue: any;
10
+ };
11
+ export declare function provideClientGlobalConfig(config?: any): {
12
+ provide: string;
13
+ useValue: any;
14
+ };
@@ -0,0 +1,22 @@
1
+ export declare const Presets: {
2
+ RMSpritesheet: (framesWidth: number, framesHeight: number, frameStand?: number) => {
3
+ textures: {
4
+ stand: {
5
+ animations: ({ direction }: {
6
+ direction: any;
7
+ }) => {
8
+ time: number;
9
+ frameX: number;
10
+ frameY: any;
11
+ }[][];
12
+ };
13
+ walk: {
14
+ animations: ({ direction }: {
15
+ direction: any;
16
+ }) => any[];
17
+ };
18
+ };
19
+ framesHeight: number;
20
+ framesWidth: number;
21
+ };
22
+ };
@@ -1,14 +1,18 @@
1
1
  export declare const RMSpritesheet: (framesWidth: number, framesHeight: number, frameStand?: number) => {
2
2
  textures: {
3
3
  stand: {
4
- animations: (direction: any) => {
4
+ animations: ({ direction }: {
5
+ direction: any;
6
+ }) => {
5
7
  time: number;
6
8
  frameX: number;
7
9
  frameY: any;
8
10
  }[][];
9
11
  };
10
12
  walk: {
11
- animations: (direction: any) => any[];
13
+ animations: ({ direction }: {
14
+ direction: any;
15
+ }) => any[];
12
16
  };
13
17
  };
14
18
  framesHeight: number;
@@ -0,0 +1,15 @@
1
+ import { Context } from '@signe/di';
2
+ export declare const WebSocketToken = "websocket";
3
+ export declare abstract class AbstractWebsocket {
4
+ protected context: Context;
5
+ constructor(context: Context);
6
+ abstract connection(listeners?: (data: any) => void): Promise<void>;
7
+ abstract emit(event: string, data: any): void;
8
+ abstract on(event: string, callback: (data: any) => void): void;
9
+ abstract off(event: string, callback: (data: any) => void): void;
10
+ abstract updateProperties(params: {
11
+ room: string;
12
+ host?: string;
13
+ }): void;
14
+ abstract reconnect(listeners?: (data: any) => void): void;
15
+ }
@@ -0,0 +1,14 @@
1
+ import { Context } from '@signe/di';
2
+ export declare const LoadMapToken = "LoadMapToken";
3
+ export type LoadMapOptions = (mapId: string) => Promise<void>;
4
+ export declare class LoadMapService {
5
+ private context;
6
+ private options;
7
+ private updateMapService;
8
+ constructor(context: Context, options: LoadMapOptions);
9
+ load(mapId: string): Promise<void>;
10
+ }
11
+ export declare function provideLoadMap(options: LoadMapOptions): {
12
+ provide: string;
13
+ useFactory: (context: Context) => void;
14
+ }[];
@@ -0,0 +1,32 @@
1
+ import { Context } from '@signe/di';
2
+ import { RpgGui } from '../Gui/Gui';
3
+ import { RpgClientEngine } from '../RpgClientEngine';
4
+ import { AbstractWebsocket } from './AbstractSocket';
5
+ import { UpdateMapService } from '@rpgjs/common';
6
+ interface MmorpgOptions {
7
+ host: string;
8
+ }
9
+ declare class BridgeWebsocket extends AbstractWebsocket {
10
+ protected context: Context;
11
+ private options;
12
+ private socket;
13
+ constructor(context: Context, options: MmorpgOptions);
14
+ connection(): Promise<void>;
15
+ on(key: string, callback: (data: any) => void): void;
16
+ off(event: string, callback: (data: any) => void): void;
17
+ emit(event: string, data: any): void;
18
+ }
19
+ declare class UpdateMapStandaloneService extends UpdateMapService {
20
+ protected context: Context;
21
+ private options;
22
+ constructor(context: Context, options: MmorpgOptions);
23
+ update(map: any): Promise<void>;
24
+ }
25
+ export declare function provideMmorpg(options: MmorpgOptions): (typeof RpgGui | typeof RpgClientEngine | {
26
+ provide: string;
27
+ useFactory: (context: Context) => BridgeWebsocket;
28
+ } | {
29
+ provide: string;
30
+ useFactory: (context: Context) => UpdateMapStandaloneService;
31
+ })[];
32
+ export {};
@@ -0,0 +1,34 @@
1
+ import { AbstractWebsocket } from './AbstractSocket';
2
+ import { Context } from '@signe/di';
3
+ import { RpgClientEngine } from '../RpgClientEngine';
4
+ import { UpdateMapService } from '@rpgjs/common';
5
+ import { RpgGui } from '../Gui/Gui';
6
+ declare class BridgeWebsocket extends AbstractWebsocket {
7
+ protected context: Context;
8
+ private server;
9
+ private room;
10
+ private socket;
11
+ constructor(context: Context, server: any);
12
+ connection(listeners?: (data: any) => void): Promise<any>;
13
+ on(key: string, callback: (data: any) => void): void;
14
+ off(event: string, callback: (data: any) => void): void;
15
+ emit(event: string, data: any): void;
16
+ updateProperties({ room }: {
17
+ room: any;
18
+ }): void;
19
+ reconnect(listeners?: (data: any) => void): Promise<void>;
20
+ }
21
+ declare class UpdateMapStandaloneService extends UpdateMapService {
22
+ private server;
23
+ update(mapId: string, map: any): Promise<void>;
24
+ }
25
+ export declare function provideRpg(server: any): (typeof RpgGui | typeof RpgClientEngine | {
26
+ provide: string;
27
+ useFactory: (context: Context) => BridgeWebsocket;
28
+ useClass?: undefined;
29
+ } | {
30
+ provide: string;
31
+ useClass: typeof UpdateMapStandaloneService;
32
+ useFactory?: undefined;
33
+ })[];
34
+ export {};
package/package.json CHANGED
@@ -1,56 +1,40 @@
1
1
  {
2
2
  "name": "@rpgjs/client",
3
- "version": "4.3.0",
4
- "description": "",
5
- "main": "lib/index.js",
6
- "types": "./lib/index.d.ts",
3
+ "version": "5.0.0-alpha.1",
4
+ "description": "RPGJS is a framework for creating RPG/MMORPG games",
5
+ "main": "dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
10
10
  "scripts": {
11
- "build": "tsc && tsc-esm-fix --target='lib' && npm run build:browser",
12
- "build:browser": "RPG_TYPE=rpg npx rpgjs build",
13
- "watch": "tsc -w"
14
- },
15
- "keywords": [],
16
- "typesVersions": {
17
- "*": {
18
- "react": [
19
- "lib/Gui/React.d.ts"
20
- ]
21
- }
22
- },
23
- "exports": {
24
- ".": "./lib/index.js",
25
- "./react": "./lib/Gui/React.js"
11
+ "dev": "vite build --watch",
12
+ "build": "vite build"
26
13
  },
14
+ "keywords": [
15
+ "rpg",
16
+ "game",
17
+ "engine",
18
+ "javascript",
19
+ "typescript"
20
+ ],
27
21
  "author": "Samuel Ronce",
28
22
  "license": "MIT",
29
23
  "dependencies": {
30
- "@nanostores/react": "^0.7.1",
31
- "@pixi/tilemap": "^4.0.0",
32
- "@rpgjs/common": "^4.3.0",
33
- "@rpgjs/tiled": "^4.3.0",
34
- "@rpgjs/types": "^4.0.5",
35
- "@types/howler": "2.2.7",
36
- "howler": "2.2.3",
37
- "lodash.get": "^4.4.2",
38
- "lodash.merge": "4.6.2",
39
- "pixi-viewport": "^5.0.2",
40
- "pixi.js": "7.2.4",
41
- "react-dom": "^18.2.0",
42
- "rxjs": "7.8.0",
43
- "simple-room-client": "^3.0.0",
44
- "vue": "^3.2.47"
24
+ "@canvasengine/presets": "2.0.0-beta.22",
25
+ "@rpgjs/common": "workspace:*",
26
+ "@signe/di": "^2.3.3",
27
+ "@signe/room": "^2.3.3",
28
+ "@signe/sync": "^2.3.3",
29
+ "canvasengine": "2.0.0-beta.22",
30
+ "pixi.js": "^8.10.1",
31
+ "rxjs": "^7.8.2"
45
32
  },
46
- "gitHead": "4794b65ddf537b2a5c87a1e0dc79623753999ee0",
47
33
  "devDependencies": {
48
- "@babel/types": "^7.22.11",
49
- "@rpgjs/compiler": "^4.3.0",
50
- "@types/css-font-loading-module": "^0.0.8",
51
- "@types/node": "^18.16.0",
52
- "@types/react": "^18.2.25",
53
- "typescript": "^5.0.4"
34
+ "@canvasengine/compiler": "2.0.0-beta.21",
35
+ "vite": "^6.2.5",
36
+ "vite-plugin-dts": "^4.5.3",
37
+ "vitest": "^3.1.1"
54
38
  },
55
39
  "type": "module"
56
40
  }
@@ -0,0 +1,20 @@
1
+ import { generateUID, RpgCommonPlayer } from "@rpgjs/common";
2
+ import { signal } from "canvasengine";
3
+
4
+ export class EffectManager {
5
+ current = signal<any[]>([]);
6
+
7
+ displayEffect(params: any, player: RpgCommonPlayer) {
8
+ const id = generateUID();
9
+ this.current().push({
10
+ ...params,
11
+ id,
12
+ x: player.x,
13
+ y: player.y,
14
+ onFinish: () => {
15
+ const index = this.current().findIndex((value) => value.id === id);
16
+ this.current().splice(index, 1);
17
+ },
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,5 @@
1
+ import { RpgClientObject } from "./Object";
2
+
3
+ export class RpgClientEvent extends RpgClientObject {
4
+ type = 'event'
5
+ }
@@ -0,0 +1,10 @@
1
+ import { RpgCommonMap } from "@rpgjs/common";
2
+ import { sync, users } from "@signe/sync";
3
+ import { RpgClientPlayer } from "./Player";
4
+ import { Signal, signal } from "canvasengine";
5
+ import { RpgClientEvent } from "./Event";
6
+
7
+ export class RpgClientMap extends RpgCommonMap<RpgClientPlayer> {
8
+ @users(RpgClientPlayer) players = signal<Record<string, RpgClientPlayer>>({});
9
+ @sync(RpgClientEvent) events = signal<Record<string, RpgClientEvent>>({});
10
+ }
@@ -0,0 +1,16 @@
1
+ import { RpgCommonPlayer } from "@rpgjs/common";
2
+ import { trigger, signal } from "canvasengine";
3
+
4
+ export abstract class RpgClientObject extends RpgCommonPlayer {
5
+ abstract type: string;
6
+ emitParticleTrigger = trigger()
7
+ particleName = signal('')
8
+
9
+ flash(color: string, duration: number = 100) {
10
+ const lastTint = this.tint()
11
+ this.tint.set(color);
12
+ setTimeout(() => {
13
+ this.tint.set(lastTint)
14
+ }, duration)
15
+ }
16
+ }
@@ -0,0 +1,5 @@
1
+ import { RpgClientObject } from "./Object";
2
+
3
+ export class RpgClientPlayer extends RpgClientObject {
4
+ type = 'player'
5
+ }