@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
@@ -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
- }
@@ -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
- }
@@ -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
- }