@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.
Files changed (321) 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 +91 -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 +20 -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/index4.js +54 -0
  79. package/dist/index4.js.map +1 -0
  80. package/dist/index5.js +15 -0
  81. package/dist/index5.js.map +1 -0
  82. package/dist/index6.js +17 -0
  83. package/dist/index6.js.map +1 -0
  84. package/dist/index7.js +31 -0
  85. package/dist/index7.js.map +1 -0
  86. package/dist/index8.js +90 -0
  87. package/dist/index8.js.map +1 -0
  88. package/dist/index9.js +76 -0
  89. package/dist/index9.js.map +1 -0
  90. package/dist/module.d.ts +14 -0
  91. package/dist/presets/index.d.ts +22 -0
  92. package/{lib/Presets/AnimationSpritesheet.d.ts → dist/presets/rmspritesheet.d.ts} +6 -2
  93. package/dist/services/AbstractSocket.d.ts +15 -0
  94. package/dist/services/loadMap.d.ts +14 -0
  95. package/dist/services/mmorpg.d.ts +32 -0
  96. package/dist/services/standalone.d.ts +34 -0
  97. package/package.json +25 -42
  98. package/src/Game/EffectManager.ts +20 -0
  99. package/src/Game/Event.ts +5 -0
  100. package/src/Game/Map.ts +10 -0
  101. package/src/Game/Object.ts +16 -0
  102. package/src/Game/Player.ts +5 -0
  103. package/src/Gui/Gui.ts +80 -534
  104. package/src/RpgClient.ts +9 -5
  105. package/src/RpgClientEngine.ts +135 -815
  106. package/src/components/character.ce +104 -0
  107. package/src/components/effects/animation.ce +19 -0
  108. package/src/components/effects/hit.ce +87 -0
  109. package/src/components/effects/index.ts +7 -0
  110. package/src/components/gui/dialogbox/index.ce +194 -0
  111. package/src/components/gui/dialogbox/itemMenu.ce +23 -0
  112. package/src/components/gui/dialogbox/selection.ce +67 -0
  113. package/src/components/gui/index.ts +5 -0
  114. package/src/components/index.ts +3 -0
  115. package/src/components/scenes/canvas.ce +51 -0
  116. package/src/components/scenes/draw-map.ce +56 -0
  117. package/src/components/scenes/element-map.ce +23 -0
  118. package/src/components/scenes/event-layer.ce +20 -0
  119. package/src/core/inject.ts +17 -0
  120. package/src/core/setup.ts +18 -0
  121. package/src/index.ts +13 -29
  122. package/src/module.ts +93 -0
  123. package/src/presets/index.ts +5 -0
  124. package/src/{Presets/AnimationSpritesheet.ts → presets/rmspritesheet.ts} +4 -5
  125. package/src/services/AbstractSocket.ts +14 -0
  126. package/src/services/loadMap.ts +33 -0
  127. package/src/services/mmorpg.ts +64 -0
  128. package/src/services/standalone.ts +101 -0
  129. package/src/types/canvas-engine.d.ts +26 -0
  130. package/tsconfig.json +8 -3
  131. package/vite.config.ts +34 -0
  132. package/CHANGELOG.md +0 -177
  133. package/LICENSE +0 -19
  134. package/browser/React-f6f9b1de.js +0 -157
  135. package/browser/index-e74a289f.js +0 -44225
  136. package/browser/manifest.json +0 -21
  137. package/browser/rpg.client.js +0 -40
  138. package/browser/rpg.client.umd.cjs +0 -44414
  139. package/lib/Components/AbstractComponent.d.ts +0 -32
  140. package/lib/Components/AbstractComponent.js +0 -93
  141. package/lib/Components/AbstractComponent.js.map +0 -1
  142. package/lib/Components/BarComponent.d.ts +0 -21
  143. package/lib/Components/BarComponent.js +0 -169
  144. package/lib/Components/BarComponent.js.map +0 -1
  145. package/lib/Components/Component.d.ts +0 -124
  146. package/lib/Components/Component.js +0 -425
  147. package/lib/Components/Component.js.map +0 -1
  148. package/lib/Components/DebugComponent.d.ts +0 -11
  149. package/lib/Components/DebugComponent.js +0 -32
  150. package/lib/Components/DebugComponent.js.map +0 -1
  151. package/lib/Components/ImageComponent.d.ts +0 -11
  152. package/lib/Components/ImageComponent.js +0 -30
  153. package/lib/Components/ImageComponent.js.map +0 -1
  154. package/lib/Components/ShapeComponent.d.ts +0 -11
  155. package/lib/Components/ShapeComponent.js +0 -57
  156. package/lib/Components/ShapeComponent.js.map +0 -1
  157. package/lib/Components/TextComponent.d.ts +0 -11
  158. package/lib/Components/TextComponent.js +0 -35
  159. package/lib/Components/TextComponent.js.map +0 -1
  160. package/lib/Components/TileComponent.d.ts +0 -10
  161. package/lib/Components/TileComponent.js +0 -40
  162. package/lib/Components/TileComponent.js.map +0 -1
  163. package/lib/Effects/Animation.d.ts +0 -55
  164. package/lib/Effects/Animation.js +0 -233
  165. package/lib/Effects/Animation.js.map +0 -1
  166. package/lib/Effects/AnimationCharacter.d.ts +0 -7
  167. package/lib/Effects/AnimationCharacter.js +0 -9
  168. package/lib/Effects/AnimationCharacter.js.map +0 -1
  169. package/lib/Effects/Spinner.d.ts +0 -7
  170. package/lib/Effects/Spinner.js +0 -18
  171. package/lib/Effects/Spinner.js.map +0 -1
  172. package/lib/Effects/Timeline.d.ts +0 -151
  173. package/lib/Effects/Timeline.js +0 -369
  174. package/lib/Effects/Timeline.js.map +0 -1
  175. package/lib/Effects/TransitionScene.d.ts +0 -18
  176. package/lib/Effects/TransitionScene.js +0 -50
  177. package/lib/Effects/TransitionScene.js.map +0 -1
  178. package/lib/GameEngine.d.ts +0 -68
  179. package/lib/GameEngine.js +0 -254
  180. package/lib/GameEngine.js.map +0 -1
  181. package/lib/Gui/Gui.d.ts +0 -110
  182. package/lib/Gui/Gui.js +0 -490
  183. package/lib/Gui/Gui.js.map +0 -1
  184. package/lib/Gui/React.d.ts +0 -15
  185. package/lib/Gui/React.js +0 -113
  186. package/lib/Gui/React.js.map +0 -1
  187. package/lib/Gui/Vue.d.ts +0 -13
  188. package/lib/Gui/Vue.js +0 -114
  189. package/lib/Gui/Vue.js.map +0 -1
  190. package/lib/Interfaces/Character.d.ts +0 -6
  191. package/lib/Interfaces/Character.js +0 -2
  192. package/lib/Interfaces/Character.js.map +0 -1
  193. package/lib/Interfaces/Scene.d.ts +0 -10
  194. package/lib/Interfaces/Scene.js +0 -2
  195. package/lib/Interfaces/Scene.js.map +0 -1
  196. package/lib/KeyboardControls.d.ts +0 -367
  197. package/lib/KeyboardControls.js +0 -714
  198. package/lib/KeyboardControls.js.map +0 -1
  199. package/lib/Logger.d.ts +0 -1
  200. package/lib/Logger.js +0 -4
  201. package/lib/Logger.js.map +0 -1
  202. package/lib/Presets/AnimationSpritesheet.js +0 -39
  203. package/lib/Presets/AnimationSpritesheet.js.map +0 -1
  204. package/lib/Presets/Scene.d.ts +0 -3
  205. package/lib/Presets/Scene.js +0 -5
  206. package/lib/Presets/Scene.js.map +0 -1
  207. package/lib/Renderer.d.ts +0 -62
  208. package/lib/Renderer.js +0 -300
  209. package/lib/Renderer.js.map +0 -1
  210. package/lib/Resources.d.ts +0 -22
  211. package/lib/Resources.js +0 -38
  212. package/lib/Resources.js.map +0 -1
  213. package/lib/RpgClient.js +0 -2
  214. package/lib/RpgClient.js.map +0 -1
  215. package/lib/RpgClientEngine.d.ts +0 -257
  216. package/lib/RpgClientEngine.js +0 -674
  217. package/lib/RpgClientEngine.js.map +0 -1
  218. package/lib/Scene/EventLayer.d.ts +0 -4
  219. package/lib/Scene/EventLayer.js +0 -8
  220. package/lib/Scene/EventLayer.js.map +0 -1
  221. package/lib/Scene/Map.d.ts +0 -109
  222. package/lib/Scene/Map.js +0 -319
  223. package/lib/Scene/Map.js.map +0 -1
  224. package/lib/Scene/Scene.d.ts +0 -184
  225. package/lib/Scene/Scene.js +0 -250
  226. package/lib/Scene/Scene.js.map +0 -1
  227. package/lib/Scene/SceneData.d.ts +0 -4
  228. package/lib/Scene/SceneData.js +0 -8
  229. package/lib/Scene/SceneData.js.map +0 -1
  230. package/lib/Sound/RpgSound.d.ts +0 -11
  231. package/lib/Sound/RpgSound.js +0 -46
  232. package/lib/Sound/RpgSound.js.map +0 -1
  233. package/lib/Sound/Sound.d.ts +0 -78
  234. package/lib/Sound/Sound.js +0 -12
  235. package/lib/Sound/Sound.js.map +0 -1
  236. package/lib/Sound/Sounds.d.ts +0 -2
  237. package/lib/Sound/Sounds.js +0 -6
  238. package/lib/Sound/Sounds.js.map +0 -1
  239. package/lib/Sprite/Character.d.ts +0 -18
  240. package/lib/Sprite/Character.js +0 -131
  241. package/lib/Sprite/Character.js.map +0 -1
  242. package/lib/Sprite/Player.d.ts +0 -3
  243. package/lib/Sprite/Player.js +0 -4
  244. package/lib/Sprite/Player.js.map +0 -1
  245. package/lib/Sprite/Spritesheet.d.ts +0 -365
  246. package/lib/Sprite/Spritesheet.js +0 -13
  247. package/lib/Sprite/Spritesheet.js.map +0 -1
  248. package/lib/Sprite/Spritesheets.d.ts +0 -3
  249. package/lib/Sprite/Spritesheets.js +0 -6
  250. package/lib/Sprite/Spritesheets.js.map +0 -1
  251. package/lib/Tilemap/CommonLayer.d.ts +0 -10
  252. package/lib/Tilemap/CommonLayer.js +0 -17
  253. package/lib/Tilemap/CommonLayer.js.map +0 -1
  254. package/lib/Tilemap/ImageLayer.d.ts +0 -4
  255. package/lib/Tilemap/ImageLayer.js +0 -16
  256. package/lib/Tilemap/ImageLayer.js.map +0 -1
  257. package/lib/Tilemap/Tile.d.ts +0 -21
  258. package/lib/Tilemap/Tile.js +0 -67
  259. package/lib/Tilemap/Tile.js.map +0 -1
  260. package/lib/Tilemap/TileLayer.d.ts +0 -13
  261. package/lib/Tilemap/TileLayer.js +0 -122
  262. package/lib/Tilemap/TileLayer.js.map +0 -1
  263. package/lib/Tilemap/TileSet.d.ts +0 -7
  264. package/lib/Tilemap/TileSet.js +0 -24
  265. package/lib/Tilemap/TileSet.js.map +0 -1
  266. package/lib/Tilemap/index.d.ts +0 -28
  267. package/lib/Tilemap/index.js +0 -151
  268. package/lib/Tilemap/index.js.map +0 -1
  269. package/lib/clientEntryPoint.d.ts +0 -89
  270. package/lib/clientEntryPoint.js +0 -48
  271. package/lib/clientEntryPoint.js.map +0 -1
  272. package/lib/index.d.ts +0 -26
  273. package/lib/index.js +0 -27
  274. package/lib/index.js.map +0 -1
  275. package/lib/inject.d.ts +0 -23
  276. package/lib/inject.js +0 -30
  277. package/lib/inject.js.map +0 -1
  278. package/rpg.toml +0 -14
  279. package/src/Components/AbstractComponent.ts +0 -120
  280. package/src/Components/BarComponent.ts +0 -181
  281. package/src/Components/Component.ts +0 -515
  282. package/src/Components/DebugComponent.ts +0 -36
  283. package/src/Components/ImageComponent.ts +0 -30
  284. package/src/Components/ShapeComponent.ts +0 -64
  285. package/src/Components/TextComponent.ts +0 -33
  286. package/src/Components/TileComponent.ts +0 -43
  287. package/src/Effects/Animation.ts +0 -310
  288. package/src/Effects/AnimationCharacter.ts +0 -7
  289. package/src/Effects/Spinner.ts +0 -19
  290. package/src/Effects/Timeline.ts +0 -378
  291. package/src/Effects/TransitionScene.ts +0 -59
  292. package/src/GameEngine.ts +0 -289
  293. package/src/Gui/React.ts +0 -145
  294. package/src/Gui/Vue.ts +0 -154
  295. package/src/Interfaces/Character.ts +0 -7
  296. package/src/Interfaces/Scene.ts +0 -9
  297. package/src/KeyboardControls.ts +0 -748
  298. package/src/Logger.ts +0 -3
  299. package/src/Presets/Scene.ts +0 -3
  300. package/src/Renderer.ts +0 -334
  301. package/src/Resources.ts +0 -39
  302. package/src/Scene/EventLayer.ts +0 -9
  303. package/src/Scene/Map.ts +0 -402
  304. package/src/Scene/Scene.ts +0 -305
  305. package/src/Scene/SceneData.ts +0 -13
  306. package/src/Sound/RpgSound.ts +0 -50
  307. package/src/Sound/Sound.ts +0 -91
  308. package/src/Sound/Sounds.ts +0 -7
  309. package/src/Sprite/Character.ts +0 -157
  310. package/src/Sprite/Player.ts +0 -3
  311. package/src/Sprite/Spritesheet.ts +0 -392
  312. package/src/Sprite/Spritesheets.ts +0 -8
  313. package/src/Tilemap/CommonLayer.ts +0 -20
  314. package/src/Tilemap/ImageLayer.ts +0 -20
  315. package/src/Tilemap/Tile.ts +0 -80
  316. package/src/Tilemap/TileLayer.ts +0 -142
  317. package/src/Tilemap/TileSet.ts +0 -40
  318. package/src/Tilemap/index.ts +0 -175
  319. package/src/clientEntryPoint.ts +0 -150
  320. package/src/inject.ts +0 -34
  321. package/src/types/howler.d.ts +0 -73
@@ -1,378 +0,0 @@
1
- import { TransformOptions, FrameOptions } from '../Sprite/Spritesheet'
2
-
3
- type EasingFunction = (time: number, _from: number, to: number, duration: number) => number;
4
-
5
- export const Ease: Record<string, EasingFunction> = {
6
- linear: (time: number, _from: number, to: number, duration: number): number => {
7
- return _from + (to - _from) * time / duration;
8
- },
9
- easeInQuad: (time: number, _from: number, to: number, duration: number): number => {
10
- time /= duration;
11
- return (to - _from) * time * time + _from;
12
- },
13
- easeOutQuad: (time: number, _from: number, to: number, duration: number): number => {
14
- time /= duration;
15
- return -(to - _from) * time * (time - 2) + _from;
16
- },
17
- easeInOutQuad: (time: number, _from: number, to: number, duration: number): number => {
18
- time /= duration / 2;
19
- if (time < 1) return ((to - _from) / 2) * time * time + _from;
20
- time--;
21
- return -((to - _from) / 2) * (time * (time - 2) - 1) + _from;
22
- },
23
- easeInCubic: (time: number, _from: number, to: number, duration: number): number => {
24
- time /= duration;
25
- return (to - _from) * time * time * time + _from;
26
- },
27
- easeOutCubic: (time: number, _from: number, to: number, duration: number): number => {
28
- time /= duration;
29
- time--;
30
- return (to - _from) * (time * time * time + 1) + _from;
31
- },
32
- easeInOutCubic: (time: number, _from: number, to: number, duration: number): number => {
33
- time /= duration / 2;
34
- if (time < 1) return (to - _from) / 2 * time * time * time + _from;
35
- time -= 2;
36
- return (to - _from) / 2 * (time * time * time + 2) + _from;
37
- },
38
- easeInQuart: (time: number, _from: number, to: number, duration: number): number => {
39
- time /= duration;
40
- return (to - _from) * time * time * time * time + _from;
41
- },
42
- easeOutQuart: (time: number, _from: number, to: number, duration: number): number => {
43
- time /= duration;
44
- time--;
45
- return -(to - _from) * (time * time * time * time - 1) + _from;
46
- },
47
- easeInOutQuart: (time: number, _from: number, to: number, duration: number): number => {
48
- time /= duration / 2;
49
- if (time < 1) return (to - _from) / 2 * time * time * time * time + _from;
50
- time -= 2;
51
- return -(to - _from) / 2 * (time * time * time * time - 2) + _from;
52
- },
53
- easeInQuint: (time: number, _from: number, to: number, duration: number): number => {
54
- time /= duration;
55
- return (to - _from) * time * time * time * time * time + _from;
56
- },
57
- easeOutQuint: (time: number, _from: number, to: number, duration: number): number => {
58
- time /= duration;
59
- time--;
60
- return (to - _from) * (time * time * time * time * time + 1) + _from;
61
- },
62
- easeInOutQuint: (time: number, _from: number, to: number, duration: number): number => {
63
- time /= duration / 2;
64
- if (time < 1) return (to - _from) / 2 * time * time * time * time * time + _from;
65
- time -= 2;
66
- return (to - _from) / 2 * (time * time * time * time * time + 2) + _from;
67
- },
68
- easeInSine: (time: number, _from: number, to: number, duration: number): number => {
69
- return -(to - _from) * Math.cos(time / duration * (Math.PI / 2)) + (to - _from) + _from;
70
- },
71
- easeOutSine: (time: number, _from: number, to: number, duration: number): number => {
72
- return (to - _from) * Math.sin(time / duration * (Math.PI / 2)) + _from;
73
- },
74
- easeInOutSine: (time: number, _from: number, to: number, duration: number): number => {
75
- return -(to - _from) / 2 * (Math.cos(Math.PI * time / duration) - 1) + _from;
76
- },
77
- easeInExpo: (time: number, _from: number, to: number, duration: number): number => {
78
- return time === 0 ? _from : (to - _from) * Math.pow(2, 10 * (time / duration - 1)) + _from;
79
- },
80
- easeOutExpo: (time: number, _from: number, to: number, duration: number): number => {
81
- return time === duration ? to : (to - _from) * (-Math.pow(2, -10 * time / duration) + 1) + _from;
82
- },
83
- easeInOutExpo: (time: number, _from: number, to: number, duration: number): number => {
84
- if (time === 0) return _from;
85
- if (time === duration) return to;
86
- time /= duration / 2;
87
- if (time < 1) return (to - _from) / 2 * Math.pow(2, 10 * (time - 1)) + _from;
88
- return (to - _from) / 2 * (-Math.pow(2, -10 * --time) + 2) + _from;
89
- },
90
- easeInCirc: (time: number, _from: number, to: number, duration: number): number => {
91
- time /= duration;
92
- return -(to - _from) * (Math.sqrt(1 - time * time) - 1) + _from;
93
- },
94
- easeOutCirc: (time: number, _from: number, to: number, duration: number): number => {
95
- time /= duration;
96
- time--;
97
- return (to - _from) * Math.sqrt(1 - time * time) + _from;
98
- },
99
- easeInOutCirc: (time: number, _from: number, to: number, duration: number): number => {
100
- time /= duration / 2;
101
- if (time < 1) return -(to - _from) / 2 * (Math.sqrt(1 - time * time) - 1) + _from;
102
- time -= 2;
103
- return (to - _from) / 2 * (Math.sqrt(1 - time * time) + 1) + _from;
104
- },
105
- easeInElastic: (time: number, _from: number, to: number, duration: number, amplitude = 0, period = 0): number => {
106
- if (time === 0) return _from;
107
- time /= duration;
108
- if (time === 1) return to;
109
- if (period === 0) period = duration * 0.3;
110
- let s: number;
111
- if (amplitude < Math.abs(to - _from)) {
112
- amplitude = to - _from;
113
- s = period / 4;
114
- } else {
115
- s = period / (2 * Math.PI) * Math.asin((to - _from) / amplitude);
116
- }
117
- time--;
118
- return -(amplitude * Math.pow(2, 10 * time) * Math.sin((time * duration - s) * (2 * Math.PI) / period)) + _from;
119
- },
120
- easeOutElastic: (time: number, _from: number, to: number, duration: number, amplitude = 0, period = 0): number => {
121
- if (time === 0) return _from;
122
- time /= duration;
123
- if (time === 1) return to;
124
- if (period === 0) period = duration * 0.3;
125
- let s: number;
126
- if (amplitude < Math.abs(to - _from)) {
127
- amplitude = to - _from;
128
- s = period / 4;
129
- } else {
130
- s = period / (2 * Math.PI) * Math.asin((to - _from) / amplitude);
131
- }
132
- return amplitude * Math.pow(2, -10 * time) * Math.sin((time * duration - s) * (2 * Math.PI) / period) + (to - _from) + _from;
133
- },
134
- easeInOutElastic: (time: number, _from: number, to: number, duration: number, amplitude = 0, period = 0): number => {
135
- if (time === 0) return _from;
136
- time /= duration / 2;
137
- if (time === 2) return to;
138
- if (period === 0) period = duration * (0.3 * 1.5);
139
- let s: number;
140
- if (amplitude < Math.abs(to - _from)) {
141
- amplitude = to - _from;
142
- s = period / 4;
143
- } else {
144
- s = period / (2 * Math.PI) * Math.asin((to - _from) / amplitude);
145
- }
146
- if (time < 1) {
147
- time--;
148
- return -0.5 * (amplitude * Math.pow(2, 10 * time) * Math.sin((time * duration - s) * (2 * Math.PI) / period)) + _from;
149
- }
150
- time--;
151
- return amplitude * Math.pow(2, -10 * time) * Math.sin((time * duration - s) * (2 * Math.PI) / period) * 0.5 + (to - _from) + _from;
152
- },
153
- // ...
154
-
155
- easeInBack: (time: number, _from: number, to: number, duration: number, s = 1.70158): number => {
156
- time /= duration;
157
- return (to - _from) * time * time * ((s + 1) * time - s) + _from;
158
- },
159
- easeOutBack: (time: number, _from: number, to: number, duration: number, s = 1.70158): number => {
160
- time = time / duration - 1;
161
- return (to - _from) * (time * time * ((s + 1) * time + s) + 1) + _from;
162
- },
163
- easeInOutBack: (time: number, _from: number, to: number, duration: number, s = 1.70158): number => {
164
- s *= 1.525;
165
- time /= duration / 2;
166
- if (time < 1) return (to - _from) / 2 * (time * time * ((s + 1) * time - s)) + _from;
167
- time -= 2;
168
- return (to - _from) / 2 * (time * time * ((s + 1) * time + s) + 2) + _from;
169
- },
170
- easeInBounce: (time: number, _from: number, to: number, duration: number): number => {
171
- return (to - _from) - Ease.easeOutBounce(duration - time, 0, to - _from, duration) + _from;
172
- },
173
- easeOutBounce: (time: number, _from: number, to: number, duration: number): number => {
174
- time /= duration;
175
- let multiplier = 7.5625;
176
- if (time < (1 / 2.75)) {
177
- return (to - _from) * (multiplier * time * time) + _from;
178
- } else if (time < (2 / 2.75)) {
179
- time -= (1.5 / 2.75);
180
- return (to - _from) * (multiplier * time * time + 0.75) + _from;
181
- } else if (time < (2.5 / 2.75)) {
182
- time -= (2.25 / 2.75);
183
- return (to - _from) * (multiplier * time * time + 0.9375) + _from;
184
- } else {
185
- time -= (2.625 / 2.75);
186
- return (to - _from) * (multiplier * time * time + 0.984375) + _from;
187
- }
188
- },
189
- easeInOutBounce: (time: number, _from: number, to: number, duration: number): number => {
190
- if (time < duration / 2) return Ease.easeInBounce(time * 2, 0, to - _from, duration) * 0.5 + _from;
191
- return Ease.easeOutBounce(time * 2 - duration, 0, to - _from, duration) * 0.5 + (to - _from) * 0.5 + _from;
192
- }
193
- }
194
-
195
- type EaseType = (t: number, b: number, c: number, d: number) => number
196
-
197
- /**
198
- * Creates a new instance of the Timeline class, which allows for complex animations and control over keyframes.
199
- *
200
- * @constructor
201
- * @title new Timeline(options?)
202
- * @param {object} [options] - Optional configuration object for the Timeline.
203
- * @param {number} [options.keyframes=10] - Specifies the number of keyframes for the animation. Defaults to 10. The larger the keyframes, the smoother the animation, but the more resource-intensive it is, as the loop to browse the array will take longer.
204
- * @memberof Timeline
205
- * @since 4.0.0
206
- * @example
207
- *
208
- * ```ts
209
- * const timeline = new Timeline({ keyframes: 20 });
210
- * ```
211
- */
212
- interface TimelineOptions {
213
- keyframes?: number
214
- }
215
-
216
- export class Timeline {
217
- private time: number = 0
218
- private animation: FrameOptions[][] = []
219
- private keyframes: number = 10
220
-
221
- constructor(options?: TimelineOptions) {
222
- if (options) {
223
- if (options.keyframes) this.keyframes = options.keyframes
224
- }
225
- }
226
-
227
- /**
228
- * Allows you to create complex animations more easily. For example, to display a movement with an Easing function
229
- *
230
- * ```ts
231
- * import { Timeline, Ease } from '@rpgjs/client'
232
- *
233
- * new Timeline()
234
- * .add(30, ({ scale }) => [{
235
- * frameX: 0,
236
- * frameY: 1,
237
- * scale: [scale]
238
- * }], {
239
- * scale: {
240
- * from: 0,
241
- * to: 1,
242
- * easing: Ease.easeOutBounce
243
- * }
244
- * })
245
- * .add(100)
246
- * .create()
247
- * ```
248
- *
249
- * Here we say
250
- *
251
- * - Duration in frames, allowing you to specify the duration of each animation step. If the timeline respects a specific frame rate, e.g. 60 frames per second, 40 frames correspond to an animation duration of 2/3 of a second for each step.
252
- * - A function that will be called every 1 frame with the `scale` property defined in transform
253
- * - An object of transformation. Define the properties of your choice to be passed to the callback function
254
- * - `to`: the starting value
255
- * - `from`: the end value
256
- * - `easing`: An easing function (By default, it is a linear function)
257
- *
258
- * Note that if you just put a duration (`add(100)`), it will only put a pause on the animation
259
- *
260
- * Easing functions available but you can create your own
261
- *
262
- * ```ts
263
- * function myEase(t: number, b: number, c: number, d: number): number { }
264
- * ```
265
- *
266
- * `t`: current time
267
- * `b`: start value
268
- * `c`: end value
269
- * `d`: duration
270
- *
271
- * @title Add Animation in timeline
272
- * @enum {Function}
273
- *
274
- * Ease.linear | linear
275
- * Ease.easeInQuad | easeInQuad
276
- * Ease.easeOutQuad | easeOutQuad
277
- * Ease.easeInOutQuad | easeInOutQuad
278
- * Ease.easeInCubic | easeInCubic
279
- * Ease.easeOutCubic | easeOutCubic
280
- * Ease.easeInOutCubic | easeInOutCubic
281
- * Ease.easeInQuart | easeInQuart
282
- * Ease.easeOutQuart | easeOutQuart
283
- * Ease.easeInOutQuart | easeInOutQuart
284
- * Ease.easeInQuint | easeInQuint
285
- * Ease.easeOutQuint | easeOutQuint
286
- * Ease.easeInOutQuint | easeInOutQuint
287
- * Ease.easeInSine | easeInSine
288
- * Ease.easeOutSine | easeOutSine
289
- * Ease.easeInOutSine | easeInOutSine
290
- * Ease.easeInExpo | easeInExpo
291
- * Ease.easeOutExpo | easeOutExpo
292
- * Ease.easeInOutExpo | easeInOutExpo
293
- * Ease.easeInCirc | easeInCirc
294
- * Ease.easeOutCirc | easeOutCirc
295
- * Ease.easeInOutCirc | easeInOutCirc
296
- * Ease.easeInElastic | easeInElastic
297
- * Ease.easeOutElastic | easeOutElastic
298
- * Ease.easeInOutElastic | easeInOutElastic
299
- * Ease.easeInBack | easeInBack
300
- * Ease.easeOutBack | easeOutBack
301
- * Ease.easeInOutBack | easeInOutBack
302
- * Ease.easeInBounce | easeInBounce
303
- * Ease.easeOutBounce | easeOutBounce
304
- * @method timeline.add(duration,cb?,transform?)
305
- * @param {number} duration
306
- * @param { (obj?: number, time?: number) => TransformOptions[] } [cb]
307
- * @param { [property: string]: { to:number, from: number: easing?: Function } } [transform]
308
- * @returns {Timeline}
309
- * @memberof Timeline
310
- */
311
- add(duration: number, cb?: (obj?: any, time?: number) => TransformOptions[], transform?: {
312
- [property: string]: {
313
- to: number,
314
- from: number,
315
- easing?: EaseType
316
- }
317
- }): Timeline {
318
- if (!cb) {
319
- this.animation.push([{
320
- time: duration + this.time,
321
- }])
322
- this.time += duration
323
- return this
324
- }
325
- for (let k = 0; k < this.keyframes; k++) {
326
- const i = Math.floor((duration / (this.keyframes - 1)) * k)
327
- let anim
328
- const obj = {}
329
- for (let prop in transform) {
330
- const param = transform[prop]
331
- const cbEasing = param.easing || Ease.linear
332
- obj[prop] = cbEasing(i, param.from, param.to, duration)
333
- }
334
- const ret = cb(obj, i)
335
- anim = ret.map(el => {
336
- (el as any).time = i + this.time
337
- return el
338
- })
339
- this.animation.push(anim)
340
- }
341
- this.time += duration
342
- return this
343
- }
344
-
345
- /**
346
- * Allows you to create the animation array to assign to the `animations` property in the Spritesheet
347
- *
348
- * ```ts
349
- * import { Spritesheet, Timeline } from '@rpgjs/server'
350
- *
351
- * @Spritesheet({
352
- * id: 'sprite',
353
- * image: require('./sprite.png'),
354
- * width: 192,
355
- * height: 228,
356
- * framesHeight: 6,
357
- * framesWidth: 6,
358
- * anchor: [0.5],
359
- * textures: {
360
- * myanim: {
361
- * animations: new Timeline()
362
- * .add(SEE THE ADD METHOD)
363
- * .create()
364
- * }
365
- * }
366
- * })
367
- * export class MyAnim {}
368
- * ```
369
- *
370
- * @title Create the animation array
371
- * @method timeline.create()
372
- * @returns {FrameOptions[][]} The animation array
373
- * @memberof Timeline
374
- */
375
- create(): FrameOptions[][] {
376
- return this.animation
377
- }
378
- }
@@ -1,59 +0,0 @@
1
- import { Subscription } from "rxjs";
2
- import { RpgClientEngine } from "../RpgClientEngine";
3
- import { FrameOptions } from "../Sprite/Spritesheet";
4
- import { Timeline } from "./Timeline";
5
- import { Container } from "pixi.js"
6
- import { InjectContext } from "@rpgjs/common";
7
-
8
- export class TransitionScene {
9
- private frameIndex: number = 0
10
- private animations: FrameOptions[][] = []
11
- private updateSubscription: Subscription
12
- private complete: Function = () => {}
13
- private clientEngine: RpgClientEngine = this.context.inject(RpgClientEngine)
14
-
15
- constructor(private context: InjectContext, private container: Container) { }
16
-
17
- addFadeIn() {
18
- return this.addFading(1, 0)
19
- }
20
-
21
- addFadeOut() {
22
- return this.addFading(0, 1)
23
- }
24
-
25
- private addFading(from: number, to: number) {
26
- this.animations = new Timeline()
27
- .add(15, ({ opacity }) => [{
28
- opacity
29
- }], {
30
- opacity: {
31
- from,
32
- to
33
- }
34
- })
35
- .create()
36
- return this
37
- }
38
-
39
- onComplete(cb: Function) {
40
- this.complete = cb
41
- return this
42
- }
43
-
44
- start() {
45
- this.updateSubscription = this.clientEngine.tick.subscribe(() => this.update())
46
- }
47
-
48
- private update() {
49
- const animationFrame = this.animations[this.frameIndex]
50
- if (!animationFrame) {
51
- this.complete()
52
- this.updateSubscription.unsubscribe()
53
- return
54
- }
55
- const frame = animationFrame[0]
56
- this.container.alpha = frame.opacity as number
57
- this.frameIndex++
58
- }
59
- }