@rpgjs/client 4.2.2 → 5.0.0-alpha.0
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 +91 -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 +20 -0
- package/dist/index37.js.map +1 -0
- package/dist/index38.js +20 -0
- package/dist/index38.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 -42
- 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 -534
- package/src/RpgClient.ts +9 -5
- package/src/RpgClientEngine.ts +135 -815
- 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 -177
- package/LICENSE +0 -19
- package/browser/React-f6f9b1de.js +0 -157
- package/browser/index-e74a289f.js +0 -44225
- package/browser/manifest.json +0 -21
- package/browser/rpg.client.js +0 -40
- package/browser/rpg.client.umd.cjs +0 -44414
- 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 -490
- package/lib/Gui/Gui.js.map +0 -1
- package/lib/Gui/React.d.ts +0 -15
- package/lib/Gui/React.js +0 -113
- 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 -674
- 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 -145
- 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
package/src/Tilemap/index.ts
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import { InjectContext, Utils } from '@rpgjs/common'
|
|
2
|
-
import ImageLayer from './ImageLayer'
|
|
3
|
-
import TileLayer from './TileLayer'
|
|
4
|
-
import TileSet from './TileSet'
|
|
5
|
-
import Tile from './Tile'
|
|
6
|
-
import { log } from '../Logger'
|
|
7
|
-
import { TiledMap, TiledLayerType, Layer } from '@rpgjs/tiled'
|
|
8
|
-
import { RpgRenderer } from '../Renderer'
|
|
9
|
-
import { Container, Graphics } from 'pixi.js'
|
|
10
|
-
|
|
11
|
-
const { intersection } = Utils
|
|
12
|
-
|
|
13
|
-
export interface MapInfo extends TiledMap {
|
|
14
|
-
layers: Layer[]
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export default class TileMap extends Container {
|
|
18
|
-
background: Graphics = new Graphics()
|
|
19
|
-
tilewidth: number = 0
|
|
20
|
-
tileheight: number = 0
|
|
21
|
-
private frameRateAnimation: number = 10
|
|
22
|
-
tilesets: TileSet[] = []
|
|
23
|
-
layers: {
|
|
24
|
-
[layerName: string]: TileLayer | ImageLayer
|
|
25
|
-
} = {}
|
|
26
|
-
private tilesLayer: Container = new Container()
|
|
27
|
-
private frameTile: number = 0
|
|
28
|
-
private renderer: RpgRenderer = this.context.inject(RpgRenderer)
|
|
29
|
-
|
|
30
|
-
constructor(private context: InjectContext, private data: MapInfo) {
|
|
31
|
-
super()
|
|
32
|
-
this.x = 0
|
|
33
|
-
this.y = 0
|
|
34
|
-
this.create(data)
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/** @internal */
|
|
38
|
-
drawAnimateTile(frame: number) {
|
|
39
|
-
if (frame % this.frameRateAnimation == 0) {
|
|
40
|
-
this.renderer['renderer'].plugins.tilemap.tileAnim[0] = this.frameTile
|
|
41
|
-
this.frameTile++
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
getData(): MapInfo {
|
|
46
|
-
return this.data
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
setBackgroundColor(color: string) {
|
|
50
|
-
color = color.replace('#', '')
|
|
51
|
-
this.background.beginFill(parseInt(color, 16))
|
|
52
|
-
this.background.drawRect(
|
|
53
|
-
0,
|
|
54
|
-
0,
|
|
55
|
-
(this.width || 0) * (this.tilewidth || 0),
|
|
56
|
-
(this.height || 0) * (this.tileheight || 0)
|
|
57
|
-
);
|
|
58
|
-
this.background.endFill()
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
private create(data: MapInfo) {
|
|
62
|
-
this.data = data
|
|
63
|
-
Object.assign(this, data)
|
|
64
|
-
if (this.data.backgroundcolor) this.setBackgroundColor(this.data.backgroundcolor)
|
|
65
|
-
this.addChild(this.background);
|
|
66
|
-
this.tilesets = this.data.tilesets.map((tileSet) => {
|
|
67
|
-
return new TileSet(tileSet)
|
|
68
|
-
})
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/** @internal */
|
|
72
|
-
createOverlayTiles(x: number, y: number, instance) {
|
|
73
|
-
const tilesLayer: any = []
|
|
74
|
-
this.data.layers.forEach((layerData) => {
|
|
75
|
-
switch (layerData.type) {
|
|
76
|
-
case TiledLayerType.Tile: {
|
|
77
|
-
const tileLayer = new TileLayer(layerData, this.tilesets, this)
|
|
78
|
-
const tile = tileLayer.createTile(x, y, {
|
|
79
|
-
real: true,
|
|
80
|
-
filter: (tile: Tile) => {
|
|
81
|
-
const { data, y: yObject, z: zObject } = instance
|
|
82
|
-
const { hHitbox, height } = data
|
|
83
|
-
const zLayer = tileLayer.z
|
|
84
|
-
const tileHasZ = tile.properties.z !== undefined
|
|
85
|
-
let { z } = tile.properties
|
|
86
|
-
|
|
87
|
-
if (zLayer !== undefined) {
|
|
88
|
-
z = zLayer + (z !== undefined ? z : 0)
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
if (z == undefined) return false
|
|
92
|
-
|
|
93
|
-
const realZ = z * tile.height
|
|
94
|
-
|
|
95
|
-
if (zObject + height < realZ) {
|
|
96
|
-
return true
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// player is on a tile but the player has a high z
|
|
100
|
-
if (zObject > realZ + tile.height) {
|
|
101
|
-
return false
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
if (!tileHasZ) return false
|
|
105
|
-
|
|
106
|
-
// is front of tile
|
|
107
|
-
if (yObject + hHitbox > tile.y + tile.height) {
|
|
108
|
-
// if (yObject - tile.y >= height) {
|
|
109
|
-
// return false
|
|
110
|
-
// }
|
|
111
|
-
// Always get tile.height for height. TODO: Fix this the height of the character. To be seen according to future implementations...
|
|
112
|
-
// Discussion: https://community.rpgjs.dev/d/250-rpgjs-v420/6
|
|
113
|
-
const zIntersection = intersection([zObject, zObject + tile.height /** Old code: height */], [realZ, realZ + tile.height])
|
|
114
|
-
if (!zIntersection) {
|
|
115
|
-
return true
|
|
116
|
-
}
|
|
117
|
-
return false
|
|
118
|
-
}
|
|
119
|
-
return true
|
|
120
|
-
}
|
|
121
|
-
})
|
|
122
|
-
if (tile) {
|
|
123
|
-
tileLayer.addChild(tile)
|
|
124
|
-
const size = tile.animations.length
|
|
125
|
-
if (size > 0) {
|
|
126
|
-
const ms = 1000 / 60
|
|
127
|
-
tile.animationSpeed = ms / (ms * this.frameRateAnimation)
|
|
128
|
-
let frameIndex = this.frameTile % size;
|
|
129
|
-
tile.gotoAndPlay(frameIndex)
|
|
130
|
-
}
|
|
131
|
-
tilesLayer.push(tileLayer)
|
|
132
|
-
}
|
|
133
|
-
break;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
})
|
|
137
|
-
return tilesLayer
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/** @internal */
|
|
141
|
-
changeTile(x: number, y: number, layerName: string) {
|
|
142
|
-
const layer = this.layers[layerName]
|
|
143
|
-
if (!layer) throw log(`${layerName} not exists`)
|
|
144
|
-
if (layer instanceof TileLayer) {
|
|
145
|
-
layer.changeTile(x, y)
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/** @internal */
|
|
150
|
-
load(options?: { drawTiles: boolean | undefined, isUpdate?: boolean }) {
|
|
151
|
-
this.tilesLayer.removeChildren()
|
|
152
|
-
|
|
153
|
-
this.tilesets.forEach(tileset => tileset.load())
|
|
154
|
-
|
|
155
|
-
this.data.layers.forEach((layerData) => {
|
|
156
|
-
switch (layerData.type) {
|
|
157
|
-
case TiledLayerType.Tile: {
|
|
158
|
-
const tileLayer = new TileLayer(layerData, this.tilesets, this)
|
|
159
|
-
if (options?.drawTiles) tileLayer.create()
|
|
160
|
-
this.layers[layerData.name] = tileLayer
|
|
161
|
-
this.tilesLayer.addChild(tileLayer)
|
|
162
|
-
break;
|
|
163
|
-
}
|
|
164
|
-
case TiledLayerType.Image: {
|
|
165
|
-
const imageLayer = new ImageLayer(layerData, this)
|
|
166
|
-
this.layers[layerData.name] = imageLayer
|
|
167
|
-
this.tilesLayer.addChild(imageLayer)
|
|
168
|
-
break;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
})
|
|
172
|
-
|
|
173
|
-
this.addChild(this.tilesLayer)
|
|
174
|
-
}
|
|
175
|
-
}
|
package/src/clientEntryPoint.ts
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { InjectContext, HookClient, loadModules, ModuleType } from '@rpgjs/common'
|
|
2
|
-
import { GameEngineClient } from './GameEngine'
|
|
3
|
-
import { RpgClientEngine } from './RpgClientEngine'
|
|
4
|
-
import { setInject } from './inject'
|
|
5
|
-
|
|
6
|
-
interface RpgClientEntryPointOptions {
|
|
7
|
-
/**
|
|
8
|
-
* Represents socket io client but you can put something else (which is the same schema as socket io)
|
|
9
|
-
*
|
|
10
|
-
* @prop {SocketIO or other} io
|
|
11
|
-
* @memberof RpgClientEntryPoint
|
|
12
|
-
* */
|
|
13
|
-
io: any
|
|
14
|
-
/**
|
|
15
|
-
* Canvas Options
|
|
16
|
-
*
|
|
17
|
-
* * {boolean} [options.transparent=false] - If the render view is transparent, default false
|
|
18
|
-
* * {boolean} [options.autoDensity=false] - Resizes renderer view in CSS pixels to allow for
|
|
19
|
-
* resolutions other than 1
|
|
20
|
-
* * {boolean} [options.antialias=false] - sets antialias
|
|
21
|
-
* * {number} [options.resolution=1] - The resolution / device pixel ratio of the renderer. The
|
|
22
|
-
* resolution of the renderer retina would be 2.
|
|
23
|
-
* * {boolean} [options.preserveDrawingBuffer=false] - enables drawing buffer preservation,
|
|
24
|
-
* enable this if you need to call toDataUrl on the webgl context.
|
|
25
|
-
* * {boolean} [options.clearBeforeRender=true] - This sets if the renderer will clear the canvas or
|
|
26
|
-
* not before the new render pass.
|
|
27
|
-
* * {number} [options.backgroundColor=0x000000] - The background color of the rendered area
|
|
28
|
-
* (shown if not transparent).
|
|
29
|
-
*
|
|
30
|
-
* @prop {object} [canvas]
|
|
31
|
-
* @memberof RpgClientEntryPoint
|
|
32
|
-
* */
|
|
33
|
-
canvas?: {
|
|
34
|
-
transparent?: boolean,
|
|
35
|
-
autoDensity?: boolean,
|
|
36
|
-
antialias?: boolean,
|
|
37
|
-
resolution?: number
|
|
38
|
-
preserveDrawingBuffer?: boolean
|
|
39
|
-
backgroundColor?: number
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* The element selector that will display the canvas. By default, `#rpg`
|
|
43
|
-
*
|
|
44
|
-
* @prop {string} [selector]
|
|
45
|
-
* @memberof RpgClientEntryPoint
|
|
46
|
-
* */
|
|
47
|
-
selector?: string,
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* The selector that corresponds to the GUIs. By default, `#gui`
|
|
51
|
-
* If you didn't put a GUI element in the div, an element will be automatically created.
|
|
52
|
-
*
|
|
53
|
-
* @prop {string} [selectorGui]
|
|
54
|
-
* @memberof RpgClientEntryPoint
|
|
55
|
-
* */
|
|
56
|
-
selectorGui?: string
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* The selector that corresponds to the element contains canvas. By default, `#canvas`
|
|
60
|
-
* If you didn't put element in the main div, an element will be automatically created.
|
|
61
|
-
*
|
|
62
|
-
* @prop {string} [selectorCanvas]
|
|
63
|
-
* @memberof RpgClientEntryPoint
|
|
64
|
-
* */
|
|
65
|
-
selectorCanvas?: string
|
|
66
|
-
|
|
67
|
-
standalone?: boolean
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* The general configurations of the game. For example, default keyboard keys, cursor noise. This is information that external modules can reuse
|
|
71
|
-
*
|
|
72
|
-
* @prop {object} [globalConfig]
|
|
73
|
-
* @memberof RpgClientEntryPoint
|
|
74
|
-
* */
|
|
75
|
-
globalConfig?: any
|
|
76
|
-
|
|
77
|
-
drawMap?: boolean
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* The maximum number of fps for the rendering
|
|
81
|
-
*
|
|
82
|
-
* @prop {object} [maxFps]
|
|
83
|
-
* @since 3.0.2
|
|
84
|
-
* @memberof RpgClientEntryPoint
|
|
85
|
-
* */
|
|
86
|
-
maxFps?: number
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Put the number of FPS that the server processes. It allows to synchronize the client rendering with the server. The default value is 60
|
|
90
|
-
*
|
|
91
|
-
* @prop {object} [serverFps]
|
|
92
|
-
* @since 3.0.2
|
|
93
|
-
* @memberof RpgClientEntryPoint
|
|
94
|
-
* */
|
|
95
|
-
serverFps?: number
|
|
96
|
-
|
|
97
|
-
envs?: object
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export default (modules: ModuleType[], options: RpgClientEntryPointOptions): RpgClientEngine => {
|
|
101
|
-
|
|
102
|
-
if (!options.globalConfig) options.globalConfig = {}
|
|
103
|
-
|
|
104
|
-
options = {
|
|
105
|
-
...options.globalConfig,
|
|
106
|
-
...options
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
const relations = {
|
|
110
|
-
onInit: HookClient.AddSprite,
|
|
111
|
-
onDestroy: HookClient.RemoveSprite,
|
|
112
|
-
onUpdate: HookClient.UpdateSprite,
|
|
113
|
-
onChanges: HookClient.ChangesSprite,
|
|
114
|
-
onMove: HookClient.SpriteMove
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
const relationsMap = {
|
|
118
|
-
onAddSprite: HookClient.SceneAddSprite,
|
|
119
|
-
onRemoveSprite: HookClient.SceneRemoveSprite,
|
|
120
|
-
onBeforeLoading: HookClient.BeforeSceneLoading,
|
|
121
|
-
onAfterLoading: HookClient.AfterSceneLoading,
|
|
122
|
-
onMapLoading: HookClient.SceneMapLoading,
|
|
123
|
-
onChanges: HookClient.SceneOnChanges,
|
|
124
|
-
onDraw: HookClient.SceneDraw
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
const relationsEngine = {
|
|
128
|
-
onStart: HookClient.Start,
|
|
129
|
-
onStep: HookClient.Step,
|
|
130
|
-
onConnected: HookClient.Connected,
|
|
131
|
-
onDisconnect: HookClient.Disconnect,
|
|
132
|
-
onConnectError: HookClient.ConnectedError,
|
|
133
|
-
onInput: HookClient.SendInput,
|
|
134
|
-
onWindowResize: HookClient.WindowResize
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
loadModules(modules, {
|
|
138
|
-
side: 'client',
|
|
139
|
-
relations: {
|
|
140
|
-
player: relations,
|
|
141
|
-
sceneMap: relationsMap,
|
|
142
|
-
engine: relationsEngine
|
|
143
|
-
}
|
|
144
|
-
})
|
|
145
|
-
|
|
146
|
-
const context = new InjectContext()
|
|
147
|
-
setInject(context)
|
|
148
|
-
|
|
149
|
-
return context.inject(RpgClientEngine, [options])
|
|
150
|
-
}
|
package/src/inject.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { InjectContext } from "@rpgjs/common";
|
|
2
|
-
|
|
3
|
-
let instanceContext: InjectContext | null = null
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Dependency injection function for RPGJS client side.
|
|
7
|
-
*
|
|
8
|
-
* This client-side `inject` function is used to retrieve instances of various classes within the RPGJS framework,
|
|
9
|
-
* specifically for client-side modules. It enables developers to access singleton instances of key classes such as
|
|
10
|
-
* `RpgClientEngine`, `KeyboardControls`, and `RpgRenderer`. Utilizing `inject` on the client side promotes modular
|
|
11
|
-
* and maintainable code by simplifying dependency management.
|
|
12
|
-
*
|
|
13
|
-
* @template T The class type that you want to retrieve an instance of, relevant to client-side modules.
|
|
14
|
-
* @returns {T} Returns the singleton instance of the specified class, ensuring only one instance is used client-side.
|
|
15
|
-
* @since 4.2.0
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```ts
|
|
19
|
-
* // Example of injecting the RpgClientEngine
|
|
20
|
-
* import { inject, RpgClientEngine } from '@rpgjs/client'
|
|
21
|
-
* const client = inject(RpgClientEngine)
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export function inject<T>(service: new (...args: any[]) => T, args: any[] = []): T {
|
|
25
|
-
return instanceContext!.inject(service, args);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function setInject(context: InjectContext) {
|
|
29
|
-
instanceContext = context;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export function clearInject() {
|
|
33
|
-
instanceContext = null
|
|
34
|
-
}
|
package/src/types/howler.d.ts
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
declare module "howler" {
|
|
2
|
-
|
|
3
|
-
class HowlerGlobal {
|
|
4
|
-
stop(): HowlerGlobal
|
|
5
|
-
mute(): HowlerGlobal;
|
|
6
|
-
unmute(): HowlerGlobal;
|
|
7
|
-
volume(): number;
|
|
8
|
-
volume(volume: number): HowlerGlobal;
|
|
9
|
-
codecs(extension: string): boolean;
|
|
10
|
-
iOSAutoEnable: boolean;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
var Howler: HowlerGlobal;
|
|
14
|
-
|
|
15
|
-
interface IHowlCallback {
|
|
16
|
-
(): void;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
interface IHowlSoundSpriteDefinition {
|
|
20
|
-
[name: string]: number[]
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
interface IHowlProperties {
|
|
24
|
-
autoplay?: boolean;
|
|
25
|
-
buffer?: boolean;
|
|
26
|
-
format?: string;
|
|
27
|
-
loop?: boolean;
|
|
28
|
-
sprite?: IHowlSoundSpriteDefinition;
|
|
29
|
-
volume?: number;
|
|
30
|
-
src: string[]
|
|
31
|
-
urls?: string[];
|
|
32
|
-
onend?: IHowlCallback;
|
|
33
|
-
onload?: IHowlCallback;
|
|
34
|
-
onloaderror?: IHowlCallback;
|
|
35
|
-
onpause?: IHowlCallback;
|
|
36
|
-
onplay?: IHowlCallback;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
class Howl {
|
|
40
|
-
|
|
41
|
-
autoplay: Boolean;
|
|
42
|
-
buffer: Boolean;
|
|
43
|
-
format: string;
|
|
44
|
-
rate: number;
|
|
45
|
-
model: string;
|
|
46
|
-
onend: IHowlCallback;
|
|
47
|
-
onload: IHowlCallback;
|
|
48
|
-
onloaderror: IHowlCallback;
|
|
49
|
-
onpause: IHowlCallback;
|
|
50
|
-
onplay: IHowlCallback;
|
|
51
|
-
constructor(properties: IHowlProperties);
|
|
52
|
-
play(sprite?: string, callback?: (soundId: number) => void): Howl;
|
|
53
|
-
playing(): boolean
|
|
54
|
-
pause(soundId?: number): Howl;
|
|
55
|
-
stop(soundId?: number): Howl;
|
|
56
|
-
mute(soundId?: number): Howl;
|
|
57
|
-
unmute(soundId?: number): Howl;
|
|
58
|
-
fade(from: number, to: number, duration: number, callback?: IHowlCallback, soundId?: number): Howl;
|
|
59
|
-
loop(): boolean;
|
|
60
|
-
loop(loop: boolean): Howl;
|
|
61
|
-
pos(position?: number, soundId?: number): number;
|
|
62
|
-
pos3d(x: number, y: number, z: number, soundId?: number): any;
|
|
63
|
-
sprite(definition?: IHowlSoundSpriteDefinition): IHowlSoundSpriteDefinition;
|
|
64
|
-
volume(): number;
|
|
65
|
-
volume(volume?: number, soundId?: number): Howl;
|
|
66
|
-
urls(): string[];
|
|
67
|
-
urls(urls: string[]): Howl;
|
|
68
|
-
on(event: string, listener?: () => void): Howl;
|
|
69
|
-
off(event: string, listener?: () => void): Howl;
|
|
70
|
-
unload(): void;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
}
|