@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.
- package/dist/Game/EffectManager.d.ts +5 -0
- package/dist/Game/Event.d.ts +4 -0
- package/dist/Game/Map.d.ts +7 -0
- package/dist/Game/Player.d.ts +4 -0
- package/dist/Gui/Gui.d.ts +23 -0
- package/{lib → dist}/RpgClient.d.ts +9 -6
- package/dist/RpgClientEngine.d.ts +43 -0
- package/dist/components/effects/index.d.ts +4 -0
- package/dist/components/gui/index.d.ts +3 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/core/inject.d.ts +5 -0
- package/dist/core/setup.d.ts +6 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/index10.js +8 -0
- package/dist/index10.js.map +1 -0
- package/dist/index11.js +10 -0
- package/dist/index11.js.map +1 -0
- package/dist/index12.js +8 -0
- package/dist/index12.js.map +1 -0
- package/dist/index13.js +17 -0
- package/dist/index13.js.map +1 -0
- package/dist/index14.js +50 -0
- package/dist/index14.js.map +1 -0
- package/dist/index15.js +191 -0
- package/dist/index15.js.map +1 -0
- package/dist/index16.js +9 -0
- package/dist/index16.js.map +1 -0
- package/dist/index17.js +387 -0
- package/dist/index17.js.map +1 -0
- package/dist/index18.js +31 -0
- package/dist/index18.js.map +1 -0
- package/dist/index19.js +24 -0
- package/dist/index19.js.map +1 -0
- package/dist/index2.js +112 -0
- package/dist/index2.js.map +1 -0
- package/dist/index20.js +2421 -0
- package/dist/index20.js.map +1 -0
- package/dist/index21.js +114 -0
- package/dist/index21.js.map +1 -0
- package/dist/index22.js +109 -0
- package/dist/index22.js.map +1 -0
- package/dist/index23.js +71 -0
- package/dist/index23.js.map +1 -0
- package/dist/index24.js +21 -0
- package/dist/index24.js.map +1 -0
- package/dist/index25.js +41 -0
- package/dist/index25.js.map +1 -0
- package/dist/index26.js +5 -0
- package/dist/index26.js.map +1 -0
- package/dist/index27.js +322 -0
- package/dist/index27.js.map +1 -0
- package/dist/index28.js +25 -0
- package/dist/index28.js.map +1 -0
- package/dist/index29.js +11 -0
- package/dist/index29.js.map +1 -0
- package/dist/index3.js +87 -0
- package/dist/index3.js.map +1 -0
- package/dist/index30.js +11 -0
- package/dist/index30.js.map +1 -0
- package/dist/index31.js +174 -0
- package/dist/index31.js.map +1 -0
- package/dist/index32.js +501 -0
- package/dist/index32.js.map +1 -0
- package/dist/index33.js +12 -0
- package/dist/index33.js.map +1 -0
- package/dist/index34.js +4403 -0
- package/dist/index34.js.map +1 -0
- package/dist/index35.js +316 -0
- package/dist/index35.js.map +1 -0
- package/dist/index36.js +61 -0
- package/dist/index36.js.map +1 -0
- package/dist/index37.js +91 -0
- package/dist/index37.js.map +1 -0
- package/dist/index38.js +20 -0
- package/dist/index38.js.map +1 -0
- package/dist/index39.js +20 -0
- package/dist/index39.js.map +1 -0
- package/dist/index4.js +54 -0
- package/dist/index4.js.map +1 -0
- package/dist/index5.js +15 -0
- package/dist/index5.js.map +1 -0
- package/dist/index6.js +17 -0
- package/dist/index6.js.map +1 -0
- package/dist/index7.js +31 -0
- package/dist/index7.js.map +1 -0
- package/dist/index8.js +90 -0
- package/dist/index8.js.map +1 -0
- package/dist/index9.js +76 -0
- package/dist/index9.js.map +1 -0
- package/dist/module.d.ts +14 -0
- package/dist/presets/index.d.ts +22 -0
- package/{lib/Presets/AnimationSpritesheet.d.ts → dist/presets/rmspritesheet.d.ts} +6 -2
- package/dist/services/AbstractSocket.d.ts +15 -0
- package/dist/services/loadMap.d.ts +14 -0
- package/dist/services/mmorpg.d.ts +32 -0
- package/dist/services/standalone.d.ts +34 -0
- package/package.json +25 -41
- package/src/Game/EffectManager.ts +20 -0
- package/src/Game/Event.ts +5 -0
- package/src/Game/Map.ts +10 -0
- package/src/Game/Object.ts +16 -0
- package/src/Game/Player.ts +5 -0
- package/src/Gui/Gui.ts +80 -533
- package/src/RpgClient.ts +9 -5
- package/src/RpgClientEngine.ts +135 -818
- package/src/components/character.ce +104 -0
- package/src/components/effects/animation.ce +19 -0
- package/src/components/effects/hit.ce +87 -0
- package/src/components/effects/index.ts +7 -0
- package/src/components/gui/dialogbox/index.ce +194 -0
- package/src/components/gui/dialogbox/itemMenu.ce +23 -0
- package/src/components/gui/dialogbox/selection.ce +67 -0
- package/src/components/gui/index.ts +5 -0
- package/src/components/index.ts +3 -0
- package/src/components/scenes/canvas.ce +51 -0
- package/src/components/scenes/draw-map.ce +56 -0
- package/src/components/scenes/element-map.ce +23 -0
- package/src/components/scenes/event-layer.ce +20 -0
- package/src/core/inject.ts +17 -0
- package/src/core/setup.ts +18 -0
- package/src/index.ts +13 -29
- package/src/module.ts +93 -0
- package/src/presets/index.ts +5 -0
- package/src/{Presets/AnimationSpritesheet.ts → presets/rmspritesheet.ts} +4 -5
- package/src/services/AbstractSocket.ts +14 -0
- package/src/services/loadMap.ts +33 -0
- package/src/services/mmorpg.ts +64 -0
- package/src/services/standalone.ts +101 -0
- package/src/types/canvas-engine.d.ts +26 -0
- package/tsconfig.json +8 -3
- package/vite.config.ts +34 -0
- package/CHANGELOG.md +0 -189
- package/LICENSE +0 -19
- package/browser/React-ece4b906.js +0 -195
- package/browser/index-ba657126.js +0 -44229
- package/browser/manifest.json +0 -21
- package/browser/rpg.client.js +0 -40
- package/browser/rpg.client.umd.cjs +0 -44456
- package/lib/Components/AbstractComponent.d.ts +0 -32
- package/lib/Components/AbstractComponent.js +0 -93
- package/lib/Components/AbstractComponent.js.map +0 -1
- package/lib/Components/BarComponent.d.ts +0 -21
- package/lib/Components/BarComponent.js +0 -169
- package/lib/Components/BarComponent.js.map +0 -1
- package/lib/Components/Component.d.ts +0 -124
- package/lib/Components/Component.js +0 -425
- package/lib/Components/Component.js.map +0 -1
- package/lib/Components/DebugComponent.d.ts +0 -11
- package/lib/Components/DebugComponent.js +0 -32
- package/lib/Components/DebugComponent.js.map +0 -1
- package/lib/Components/ImageComponent.d.ts +0 -11
- package/lib/Components/ImageComponent.js +0 -30
- package/lib/Components/ImageComponent.js.map +0 -1
- package/lib/Components/ShapeComponent.d.ts +0 -11
- package/lib/Components/ShapeComponent.js +0 -57
- package/lib/Components/ShapeComponent.js.map +0 -1
- package/lib/Components/TextComponent.d.ts +0 -11
- package/lib/Components/TextComponent.js +0 -35
- package/lib/Components/TextComponent.js.map +0 -1
- package/lib/Components/TileComponent.d.ts +0 -10
- package/lib/Components/TileComponent.js +0 -40
- package/lib/Components/TileComponent.js.map +0 -1
- package/lib/Effects/Animation.d.ts +0 -55
- package/lib/Effects/Animation.js +0 -233
- package/lib/Effects/Animation.js.map +0 -1
- package/lib/Effects/AnimationCharacter.d.ts +0 -7
- package/lib/Effects/AnimationCharacter.js +0 -9
- package/lib/Effects/AnimationCharacter.js.map +0 -1
- package/lib/Effects/Spinner.d.ts +0 -7
- package/lib/Effects/Spinner.js +0 -18
- package/lib/Effects/Spinner.js.map +0 -1
- package/lib/Effects/Timeline.d.ts +0 -151
- package/lib/Effects/Timeline.js +0 -369
- package/lib/Effects/Timeline.js.map +0 -1
- package/lib/Effects/TransitionScene.d.ts +0 -18
- package/lib/Effects/TransitionScene.js +0 -50
- package/lib/Effects/TransitionScene.js.map +0 -1
- package/lib/GameEngine.d.ts +0 -68
- package/lib/GameEngine.js +0 -254
- package/lib/GameEngine.js.map +0 -1
- package/lib/Gui/Gui.d.ts +0 -110
- package/lib/Gui/Gui.js +0 -489
- package/lib/Gui/Gui.js.map +0 -1
- package/lib/Gui/React.d.ts +0 -28
- package/lib/Gui/React.js +0 -147
- package/lib/Gui/React.js.map +0 -1
- package/lib/Gui/Vue.d.ts +0 -13
- package/lib/Gui/Vue.js +0 -114
- package/lib/Gui/Vue.js.map +0 -1
- package/lib/Interfaces/Character.d.ts +0 -6
- package/lib/Interfaces/Character.js +0 -2
- package/lib/Interfaces/Character.js.map +0 -1
- package/lib/Interfaces/Scene.d.ts +0 -10
- package/lib/Interfaces/Scene.js +0 -2
- package/lib/Interfaces/Scene.js.map +0 -1
- package/lib/KeyboardControls.d.ts +0 -367
- package/lib/KeyboardControls.js +0 -714
- package/lib/KeyboardControls.js.map +0 -1
- package/lib/Logger.d.ts +0 -1
- package/lib/Logger.js +0 -4
- package/lib/Logger.js.map +0 -1
- package/lib/Presets/AnimationSpritesheet.js +0 -39
- package/lib/Presets/AnimationSpritesheet.js.map +0 -1
- package/lib/Presets/Scene.d.ts +0 -3
- package/lib/Presets/Scene.js +0 -5
- package/lib/Presets/Scene.js.map +0 -1
- package/lib/Renderer.d.ts +0 -62
- package/lib/Renderer.js +0 -300
- package/lib/Renderer.js.map +0 -1
- package/lib/Resources.d.ts +0 -22
- package/lib/Resources.js +0 -38
- package/lib/Resources.js.map +0 -1
- package/lib/RpgClient.js +0 -2
- package/lib/RpgClient.js.map +0 -1
- package/lib/RpgClientEngine.d.ts +0 -257
- package/lib/RpgClientEngine.js +0 -677
- package/lib/RpgClientEngine.js.map +0 -1
- package/lib/Scene/EventLayer.d.ts +0 -4
- package/lib/Scene/EventLayer.js +0 -8
- package/lib/Scene/EventLayer.js.map +0 -1
- package/lib/Scene/Map.d.ts +0 -109
- package/lib/Scene/Map.js +0 -319
- package/lib/Scene/Map.js.map +0 -1
- package/lib/Scene/Scene.d.ts +0 -184
- package/lib/Scene/Scene.js +0 -250
- package/lib/Scene/Scene.js.map +0 -1
- package/lib/Scene/SceneData.d.ts +0 -4
- package/lib/Scene/SceneData.js +0 -8
- package/lib/Scene/SceneData.js.map +0 -1
- package/lib/Sound/RpgSound.d.ts +0 -11
- package/lib/Sound/RpgSound.js +0 -46
- package/lib/Sound/RpgSound.js.map +0 -1
- package/lib/Sound/Sound.d.ts +0 -78
- package/lib/Sound/Sound.js +0 -12
- package/lib/Sound/Sound.js.map +0 -1
- package/lib/Sound/Sounds.d.ts +0 -2
- package/lib/Sound/Sounds.js +0 -6
- package/lib/Sound/Sounds.js.map +0 -1
- package/lib/Sprite/Character.d.ts +0 -18
- package/lib/Sprite/Character.js +0 -131
- package/lib/Sprite/Character.js.map +0 -1
- package/lib/Sprite/Player.d.ts +0 -3
- package/lib/Sprite/Player.js +0 -4
- package/lib/Sprite/Player.js.map +0 -1
- package/lib/Sprite/Spritesheet.d.ts +0 -365
- package/lib/Sprite/Spritesheet.js +0 -13
- package/lib/Sprite/Spritesheet.js.map +0 -1
- package/lib/Sprite/Spritesheets.d.ts +0 -3
- package/lib/Sprite/Spritesheets.js +0 -6
- package/lib/Sprite/Spritesheets.js.map +0 -1
- package/lib/Tilemap/CommonLayer.d.ts +0 -10
- package/lib/Tilemap/CommonLayer.js +0 -17
- package/lib/Tilemap/CommonLayer.js.map +0 -1
- package/lib/Tilemap/ImageLayer.d.ts +0 -4
- package/lib/Tilemap/ImageLayer.js +0 -16
- package/lib/Tilemap/ImageLayer.js.map +0 -1
- package/lib/Tilemap/Tile.d.ts +0 -21
- package/lib/Tilemap/Tile.js +0 -67
- package/lib/Tilemap/Tile.js.map +0 -1
- package/lib/Tilemap/TileLayer.d.ts +0 -13
- package/lib/Tilemap/TileLayer.js +0 -122
- package/lib/Tilemap/TileLayer.js.map +0 -1
- package/lib/Tilemap/TileSet.d.ts +0 -7
- package/lib/Tilemap/TileSet.js +0 -24
- package/lib/Tilemap/TileSet.js.map +0 -1
- package/lib/Tilemap/index.d.ts +0 -28
- package/lib/Tilemap/index.js +0 -151
- package/lib/Tilemap/index.js.map +0 -1
- package/lib/clientEntryPoint.d.ts +0 -89
- package/lib/clientEntryPoint.js +0 -48
- package/lib/clientEntryPoint.js.map +0 -1
- package/lib/index.d.ts +0 -26
- package/lib/index.js +0 -27
- package/lib/index.js.map +0 -1
- package/lib/inject.d.ts +0 -23
- package/lib/inject.js +0 -30
- package/lib/inject.js.map +0 -1
- package/rpg.toml +0 -14
- package/src/Components/AbstractComponent.ts +0 -120
- package/src/Components/BarComponent.ts +0 -181
- package/src/Components/Component.ts +0 -515
- package/src/Components/DebugComponent.ts +0 -36
- package/src/Components/ImageComponent.ts +0 -30
- package/src/Components/ShapeComponent.ts +0 -64
- package/src/Components/TextComponent.ts +0 -33
- package/src/Components/TileComponent.ts +0 -43
- package/src/Effects/Animation.ts +0 -310
- package/src/Effects/AnimationCharacter.ts +0 -7
- package/src/Effects/Spinner.ts +0 -19
- package/src/Effects/Timeline.ts +0 -378
- package/src/Effects/TransitionScene.ts +0 -59
- package/src/GameEngine.ts +0 -289
- package/src/Gui/React.ts +0 -193
- package/src/Gui/Vue.ts +0 -154
- package/src/Interfaces/Character.ts +0 -7
- package/src/Interfaces/Scene.ts +0 -9
- package/src/KeyboardControls.ts +0 -748
- package/src/Logger.ts +0 -3
- package/src/Presets/Scene.ts +0 -3
- package/src/Renderer.ts +0 -334
- package/src/Resources.ts +0 -39
- package/src/Scene/EventLayer.ts +0 -9
- package/src/Scene/Map.ts +0 -402
- package/src/Scene/Scene.ts +0 -305
- package/src/Scene/SceneData.ts +0 -13
- package/src/Sound/RpgSound.ts +0 -50
- package/src/Sound/Sound.ts +0 -91
- package/src/Sound/Sounds.ts +0 -7
- package/src/Sprite/Character.ts +0 -157
- package/src/Sprite/Player.ts +0 -3
- package/src/Sprite/Spritesheet.ts +0 -392
- package/src/Sprite/Spritesheets.ts +0 -8
- package/src/Tilemap/CommonLayer.ts +0 -20
- package/src/Tilemap/ImageLayer.ts +0 -20
- package/src/Tilemap/Tile.ts +0 -80
- package/src/Tilemap/TileLayer.ts +0 -142
- package/src/Tilemap/TileSet.ts +0 -40
- package/src/Tilemap/index.ts +0 -175
- package/src/clientEntryPoint.ts +0 -150
- package/src/inject.ts +0 -34
- 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":"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"}
|
package/dist/module.d.ts
ADDED
|
@@ -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:
|
|
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:
|
|
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
|
-
"description": "",
|
|
5
|
-
"main": "
|
|
6
|
-
"types": "./
|
|
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
|
-
"
|
|
12
|
-
"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
|
-
"@
|
|
31
|
-
"@
|
|
32
|
-
"@
|
|
33
|
-
"@
|
|
34
|
-
"@
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
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
|
-
"@
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
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
|
+
}
|
package/src/Game/Map.ts
ADDED
|
@@ -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
|
+
}
|