sliver-engine 0.0.1-alpha-4

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 (178) hide show
  1. package/README.md +37 -0
  2. package/dist/Assets/Shapes/Arrow.d.ts +12 -0
  3. package/dist/Assets/Shapes/Arrow.d.ts.map +1 -0
  4. package/dist/Assets/Shapes/Arrow.js +32 -0
  5. package/dist/Assets/Shapes/Arrow.js.map +1 -0
  6. package/dist/Assets/Shapes/index.d.ts +4 -0
  7. package/dist/Assets/Shapes/index.d.ts.map +1 -0
  8. package/dist/Assets/Shapes/index.js +2 -0
  9. package/dist/Assets/Shapes/index.js.map +1 -0
  10. package/dist/CanvasController/SpriteLibrary.d.ts +58 -0
  11. package/dist/CanvasController/SpriteLibrary.d.ts.map +1 -0
  12. package/dist/CanvasController/SpriteLibrary.js +412 -0
  13. package/dist/CanvasController/SpriteLibrary.js.map +1 -0
  14. package/dist/CanvasController/Transformations.d.ts +5 -0
  15. package/dist/CanvasController/Transformations.d.ts.map +1 -0
  16. package/dist/CanvasController/Transformations.js +19 -0
  17. package/dist/CanvasController/Transformations.js.map +1 -0
  18. package/dist/CanvasController/index.d.ts +238 -0
  19. package/dist/CanvasController/index.d.ts.map +1 -0
  20. package/dist/CanvasController/index.js +418 -0
  21. package/dist/CanvasController/index.js.map +1 -0
  22. package/dist/Context/index.d.ts +53 -0
  23. package/dist/Context/index.d.ts.map +1 -0
  24. package/dist/Context/index.js +103 -0
  25. package/dist/Context/index.js.map +1 -0
  26. package/dist/Events/decorators.d.ts +74 -0
  27. package/dist/Events/decorators.d.ts.map +1 -0
  28. package/dist/Events/decorators.js +417 -0
  29. package/dist/Events/decorators.js.map +1 -0
  30. package/dist/Events/index.d.ts +50 -0
  31. package/dist/Events/index.d.ts.map +1 -0
  32. package/dist/Events/index.js +73 -0
  33. package/dist/Events/index.js.map +1 -0
  34. package/dist/Events/keyAccumulator.d.ts +9 -0
  35. package/dist/Events/keyAccumulator.d.ts.map +1 -0
  36. package/dist/Events/keyAccumulator.js +17 -0
  37. package/dist/Events/keyAccumulator.js.map +1 -0
  38. package/dist/Game/Saves/index.d.ts +39 -0
  39. package/dist/Game/Saves/index.d.ts.map +1 -0
  40. package/dist/Game/Saves/index.js +213 -0
  41. package/dist/Game/Saves/index.js.map +1 -0
  42. package/dist/Game/index.d.ts +45 -0
  43. package/dist/Game/index.d.ts.map +1 -0
  44. package/dist/Game/index.js +101 -0
  45. package/dist/Game/index.js.map +1 -0
  46. package/dist/GameObject/Decorators/index.d.ts +81 -0
  47. package/dist/GameObject/Decorators/index.d.ts.map +1 -0
  48. package/dist/GameObject/Decorators/index.js +183 -0
  49. package/dist/GameObject/Decorators/index.js.map +1 -0
  50. package/dist/GameObject/Hitboxes/ColisionHandler.d.ts +23 -0
  51. package/dist/GameObject/Hitboxes/ColisionHandler.d.ts.map +1 -0
  52. package/dist/GameObject/Hitboxes/ColisionHandler.js +458 -0
  53. package/dist/GameObject/Hitboxes/ColisionHandler.js.map +1 -0
  54. package/dist/GameObject/Hitboxes/index.d.ts +50 -0
  55. package/dist/GameObject/Hitboxes/index.d.ts.map +1 -0
  56. package/dist/GameObject/Hitboxes/index.js +306 -0
  57. package/dist/GameObject/Hitboxes/index.js.map +1 -0
  58. package/dist/GameObject/Library/Button.d.ts +15 -0
  59. package/dist/GameObject/Library/Button.d.ts.map +1 -0
  60. package/dist/GameObject/Library/Button.js +45 -0
  61. package/dist/GameObject/Library/Button.js.map +1 -0
  62. package/dist/GameObject/Library/Clickableshape.d.ts +14 -0
  63. package/dist/GameObject/Library/Clickableshape.d.ts.map +1 -0
  64. package/dist/GameObject/Library/Clickableshape.js +36 -0
  65. package/dist/GameObject/Library/Clickableshape.js.map +1 -0
  66. package/dist/GameObject/Library/FloatingView.d.ts +20 -0
  67. package/dist/GameObject/Library/FloatingView.d.ts.map +1 -0
  68. package/dist/GameObject/Library/FloatingView.js +39 -0
  69. package/dist/GameObject/Library/FloatingView.js.map +1 -0
  70. package/dist/GameObject/Library/Group.d.ts +8 -0
  71. package/dist/GameObject/Library/Group.d.ts.map +1 -0
  72. package/dist/GameObject/Library/Group.js +26 -0
  73. package/dist/GameObject/Library/Group.js.map +1 -0
  74. package/dist/GameObject/Library/HoverableShape.d.ts +15 -0
  75. package/dist/GameObject/Library/HoverableShape.d.ts.map +1 -0
  76. package/dist/GameObject/Library/HoverableShape.js +41 -0
  77. package/dist/GameObject/Library/HoverableShape.js.map +1 -0
  78. package/dist/GameObject/Library/SceneTranslator.d.ts +14 -0
  79. package/dist/GameObject/Library/SceneTranslator.d.ts.map +1 -0
  80. package/dist/GameObject/Library/SceneTranslator.js +104 -0
  81. package/dist/GameObject/Library/SceneTranslator.js.map +1 -0
  82. package/dist/GameObject/Library/ScrollView.d.ts +41 -0
  83. package/dist/GameObject/Library/ScrollView.d.ts.map +1 -0
  84. package/dist/GameObject/Library/ScrollView.js +112 -0
  85. package/dist/GameObject/Library/ScrollView.js.map +1 -0
  86. package/dist/GameObject/Library/ShowOnHover.d.ts +13 -0
  87. package/dist/GameObject/Library/ShowOnHover.d.ts.map +1 -0
  88. package/dist/GameObject/Library/ShowOnHover.js +33 -0
  89. package/dist/GameObject/Library/ShowOnHover.js.map +1 -0
  90. package/dist/GameObject/Library/Text.d.ts +25 -0
  91. package/dist/GameObject/Library/Text.d.ts.map +1 -0
  92. package/dist/GameObject/Library/Text.js +35 -0
  93. package/dist/GameObject/Library/Text.js.map +1 -0
  94. package/dist/GameObject/Library/TextBox.d.ts +45 -0
  95. package/dist/GameObject/Library/TextBox.d.ts.map +1 -0
  96. package/dist/GameObject/Library/TextBox.js +170 -0
  97. package/dist/GameObject/Library/TextBox.js.map +1 -0
  98. package/dist/GameObject/Library/index.d.ts +11 -0
  99. package/dist/GameObject/Library/index.d.ts.map +1 -0
  100. package/dist/GameObject/Library/index.js +11 -0
  101. package/dist/GameObject/Library/index.js.map +1 -0
  102. package/dist/GameObject/Walker.d.ts +91 -0
  103. package/dist/GameObject/Walker.d.ts.map +1 -0
  104. package/dist/GameObject/Walker.js +634 -0
  105. package/dist/GameObject/Walker.js.map +1 -0
  106. package/dist/GameObject/index.d.ts +97 -0
  107. package/dist/GameObject/index.d.ts.map +1 -0
  108. package/dist/GameObject/index.js +386 -0
  109. package/dist/GameObject/index.js.map +1 -0
  110. package/dist/Lib/Math.d.ts +2 -0
  111. package/dist/Lib/Math.d.ts.map +1 -0
  112. package/dist/Lib/Math.js +4 -0
  113. package/dist/Lib/Math.js.map +1 -0
  114. package/dist/Lib/MinHeap/index.d.ts +12 -0
  115. package/dist/Lib/MinHeap/index.d.ts.map +1 -0
  116. package/dist/Lib/MinHeap/index.js +64 -0
  117. package/dist/Lib/MinHeap/index.js.map +1 -0
  118. package/dist/Lib/Mixins/index.d.ts +8 -0
  119. package/dist/Lib/Mixins/index.d.ts.map +1 -0
  120. package/dist/Lib/Mixins/index.js +45 -0
  121. package/dist/Lib/Mixins/index.js.map +1 -0
  122. package/dist/Lib/PathfindingProxy/index.d.ts +16 -0
  123. package/dist/Lib/PathfindingProxy/index.d.ts.map +1 -0
  124. package/dist/Lib/PathfindingProxy/index.js +48 -0
  125. package/dist/Lib/PathfindingProxy/index.js.map +1 -0
  126. package/dist/Lib/Vector/index.d.ts +24 -0
  127. package/dist/Lib/Vector/index.d.ts.map +1 -0
  128. package/dist/Lib/Vector/index.js +94 -0
  129. package/dist/Lib/Vector/index.js.map +1 -0
  130. package/dist/Lib/index.d.ts +6 -0
  131. package/dist/Lib/index.d.ts.map +1 -0
  132. package/dist/Lib/index.js +6 -0
  133. package/dist/Lib/index.js.map +1 -0
  134. package/dist/Scenes/SceneManager/Transitions.d.ts +37 -0
  135. package/dist/Scenes/SceneManager/Transitions.d.ts.map +1 -0
  136. package/dist/Scenes/SceneManager/Transitions.js +165 -0
  137. package/dist/Scenes/SceneManager/Transitions.js.map +1 -0
  138. package/dist/Scenes/SceneManager/index.d.ts +24 -0
  139. package/dist/Scenes/SceneManager/index.d.ts.map +1 -0
  140. package/dist/Scenes/SceneManager/index.js +151 -0
  141. package/dist/Scenes/SceneManager/index.js.map +1 -0
  142. package/dist/Scenes/index.d.ts +44 -0
  143. package/dist/Scenes/index.d.ts.map +1 -0
  144. package/dist/Scenes/index.js +252 -0
  145. package/dist/Scenes/index.js.map +1 -0
  146. package/dist/ScriptedEvents/Combinators/index.d.ts +17 -0
  147. package/dist/ScriptedEvents/Combinators/index.d.ts.map +1 -0
  148. package/dist/ScriptedEvents/Combinators/index.js +127 -0
  149. package/dist/ScriptedEvents/Combinators/index.js.map +1 -0
  150. package/dist/ScriptedEvents/Library/TextBoxSequence.d.ts +7 -0
  151. package/dist/ScriptedEvents/Library/TextBoxSequence.d.ts.map +1 -0
  152. package/dist/ScriptedEvents/Library/TextBoxSequence.js +16 -0
  153. package/dist/ScriptedEvents/Library/TextBoxSequence.js.map +1 -0
  154. package/dist/ScriptedEvents/Library/WaitForKeyPress.d.ts +2 -0
  155. package/dist/ScriptedEvents/Library/WaitForKeyPress.d.ts.map +1 -0
  156. package/dist/ScriptedEvents/Library/WaitForKeyPress.js +1 -0
  157. package/dist/ScriptedEvents/Library/WaitForKeyPress.js.map +1 -0
  158. package/dist/ScriptedEvents/Library/WalkCharacter.d.ts +4 -0
  159. package/dist/ScriptedEvents/Library/WalkCharacter.d.ts.map +1 -0
  160. package/dist/ScriptedEvents/Library/WalkCharacter.js +14 -0
  161. package/dist/ScriptedEvents/Library/WalkCharacter.js.map +1 -0
  162. package/dist/ScriptedEvents/Library/index.d.ts +3 -0
  163. package/dist/ScriptedEvents/Library/index.d.ts.map +1 -0
  164. package/dist/ScriptedEvents/Library/index.js +3 -0
  165. package/dist/ScriptedEvents/Library/index.js.map +1 -0
  166. package/dist/ScriptedEvents/index.d.ts +42 -0
  167. package/dist/ScriptedEvents/index.d.ts.map +1 -0
  168. package/dist/ScriptedEvents/index.js +61 -0
  169. package/dist/ScriptedEvents/index.js.map +1 -0
  170. package/dist/SoundManager/index.d.ts +69 -0
  171. package/dist/SoundManager/index.d.ts.map +1 -0
  172. package/dist/SoundManager/index.js +208 -0
  173. package/dist/SoundManager/index.js.map +1 -0
  174. package/dist/index.d.ts +19 -0
  175. package/dist/index.d.ts.map +1 -0
  176. package/dist/index.js +19 -0
  177. package/dist/index.js.map +1 -0
  178. package/package.json +36 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/CanvasController/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { CanvasController } from "../CanvasController";
2
+ import type { Game } from "../Game";
3
+ import type { GameObject } from "../GameObject";
4
+ import type { Scene } from "../Scenes";
5
+ import type { SceneManager } from "../Scenes/SceneManager";
6
+ import type { SceneTransition } from "../Scenes/SceneManager/Transitions";
7
+ import { KeyAccumulator } from "../Events/keyAccumulator";
8
+ import type { SoundManager } from "../SoundManager";
9
+ type MessageHandler<TPayload = unknown> = (payload: TPayload, sender?: GameObject | null) => void;
10
+ declare class MessageBus {
11
+ private channels;
12
+ subscribe<TPayload>(channel: string, handler: MessageHandler<TPayload>): () => void;
13
+ unsubscribe<TPayload>(channel: string, handler: MessageHandler<TPayload>): void;
14
+ publish<TPayload>(channel: string, payload: TPayload, sender?: GameObject | null): void;
15
+ }
16
+ type GameContextOptions = {
17
+ game: Game;
18
+ canvas: CanvasController;
19
+ sceneManager: SceneManager;
20
+ keyAccumulator: KeyAccumulator;
21
+ soundManager: SoundManager;
22
+ };
23
+ declare class GameContext {
24
+ private options;
25
+ private messageBus;
26
+ private frameCount;
27
+ private tickCount;
28
+ constructor(options: GameContextOptions);
29
+ getGame(): Game;
30
+ incrementFrameCount(): void;
31
+ getFrameCount(): number;
32
+ getTickCount(): number;
33
+ getTickRate(): number;
34
+ incrementTickCount(): void;
35
+ getCanvas(): CanvasController;
36
+ getSceneManager(): SceneManager;
37
+ getSoundManager(): SoundManager;
38
+ getKeyAccumulator(): KeyAccumulator;
39
+ getCurrentScene(): Scene | null;
40
+ getActiveScenes(): Scene[];
41
+ getAllScenes(): Scene[];
42
+ setCurrentScene(name: string): void;
43
+ pushScene(name: string): void;
44
+ popScene(): Scene | undefined;
45
+ transitionToScene(name: string, transition?: SceneTransition, mode?: "replace" | "push"): Promise<void>;
46
+ sendMessage<TPayload>(channel: string, payload: TPayload, sender?: GameObject | null): void;
47
+ getPressedKeys(): string[];
48
+ isKeyPressed(key: string): boolean;
49
+ subscribeToMessage<TPayload>(channel: string, handler: MessageHandler<TPayload>): () => void;
50
+ }
51
+ export { GameContext, MessageBus };
52
+ export type { MessageHandler };
53
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Context/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,KAAK,cAAc,CAAC,QAAQ,GAAG,OAAO,IAAI,CACxC,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,KACvB,IAAI,CAAC;AAEV,cAAM,UAAU;IACd,OAAO,CAAC,QAAQ,CAA0C;IAE1D,SAAS,CAAC,QAAQ,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,GAChC,MAAM,IAAI;IAUb,WAAW,CAAC,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,GAChC,IAAI;IAYP,OAAO,CAAC,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,GACzB,IAAI;CAIR;AAED,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,cAAM,WAAW;IAKH,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAa;gBAEV,OAAO,EAAE,kBAAkB;IAE/C,OAAO,IAAI,IAAI;IAIf,mBAAmB,IAAI,IAAI;IAI3B,aAAa,IAAI,MAAM;IAIvB,YAAY,IAAI,MAAM;IAItB,WAAW,IAAI,MAAM;IAIrB,kBAAkB,IAAI,IAAI;IAI1B,SAAS,IAAI,gBAAgB;IAI7B,eAAe,IAAI,YAAY;IAI/B,eAAe,IAAI,YAAY;IAI/B,iBAAiB,IAAI,cAAc;IAInC,eAAe,IAAI,KAAK,GAAG,IAAI;IAI/B,eAAe,IAAI,KAAK,EAAE;IAI1B,YAAY,IAAI,KAAK,EAAE;IAIvB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO7B,QAAQ,IAAI,KAAK,GAAG,SAAS;IAI7B,iBAAiB,CACf,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,eAAe,EAC5B,IAAI,GAAE,SAAS,GAAG,MAAkB,GACnC,OAAO,CAAC,IAAI,CAAC;IAIhB,WAAW,CAAC,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,GACzB,IAAI;IAIP,cAAc,IAAI,MAAM,EAAE;IAI1B,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIlC,kBAAkB,CAAC,QAAQ,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,GAChC,MAAM,IAAI;CAGd;AAED,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,103 @@
1
+ import { KeyAccumulator } from "../Events/keyAccumulator";
2
+ class MessageBus {
3
+ channels = new Map();
4
+ subscribe(channel, handler) {
5
+ const handlers = this.channels.get(channel) ?? new Set();
6
+ handlers.add(handler);
7
+ this.channels.set(channel, handlers);
8
+ return () => {
9
+ this.unsubscribe(channel, handler);
10
+ };
11
+ }
12
+ unsubscribe(channel, handler) {
13
+ const handlers = this.channels.get(channel);
14
+ if (!handlers) {
15
+ return;
16
+ }
17
+ handlers.delete(handler);
18
+ if (handlers.size === 0) {
19
+ this.channels.delete(channel);
20
+ }
21
+ }
22
+ publish(channel, payload, sender) {
23
+ const handlers = this.channels.get(channel);
24
+ handlers?.forEach((handler) => handler(payload, sender ?? null));
25
+ }
26
+ }
27
+ class GameContext {
28
+ options;
29
+ messageBus = new MessageBus();
30
+ frameCount = 0;
31
+ tickCount = 0;
32
+ constructor(options) {
33
+ this.options = options;
34
+ }
35
+ getGame() {
36
+ return this.options.game;
37
+ }
38
+ incrementFrameCount() {
39
+ this.frameCount++;
40
+ }
41
+ getFrameCount() {
42
+ return this.frameCount;
43
+ }
44
+ getTickCount() {
45
+ return this.tickCount;
46
+ }
47
+ getTickRate() {
48
+ return this.options.game.getTickRate();
49
+ }
50
+ incrementTickCount() {
51
+ this.tickCount++;
52
+ }
53
+ getCanvas() {
54
+ return this.options.canvas;
55
+ }
56
+ getSceneManager() {
57
+ return this.options.sceneManager;
58
+ }
59
+ getSoundManager() {
60
+ return this.options.soundManager;
61
+ }
62
+ getKeyAccumulator() {
63
+ return this.options.keyAccumulator;
64
+ }
65
+ getCurrentScene() {
66
+ return this.options.sceneManager.getCurrentScene();
67
+ }
68
+ getActiveScenes() {
69
+ return this.options.sceneManager.getActiveScenes();
70
+ }
71
+ getAllScenes() {
72
+ return this.options.sceneManager.getAllScenes();
73
+ }
74
+ setCurrentScene(name) {
75
+ this.options.sceneManager.setSceneAsCurrent(name);
76
+ }
77
+ pushScene(name) {
78
+ const scene = this.options.sceneManager.getScene(name);
79
+ if (scene) {
80
+ this.options.sceneManager.pushSceneToActive(scene);
81
+ }
82
+ }
83
+ popScene() {
84
+ return this.options.sceneManager.popSceneFromActive();
85
+ }
86
+ transitionToScene(name, transition, mode = "replace") {
87
+ return this.options.sceneManager.transitionToScene(name, transition, mode);
88
+ }
89
+ sendMessage(channel, payload, sender) {
90
+ this.messageBus.publish(channel, payload, sender);
91
+ }
92
+ getPressedKeys() {
93
+ return this.options.keyAccumulator.getPressedKeys();
94
+ }
95
+ isKeyPressed(key) {
96
+ return this.options.keyAccumulator.isPressed(key);
97
+ }
98
+ subscribeToMessage(channel, handler) {
99
+ return this.messageBus.subscribe(channel, handler);
100
+ }
101
+ }
102
+ export { GameContext, MessageBus };
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Context/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQ1D,MAAM,UAAU;IACN,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IAE1D,SAAS,CACP,OAAe,EACf,OAAiC;QAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;QACzE,QAAQ,CAAC,GAAG,CAAC,OAAyB,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAErC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CACT,OAAe,EACf,OAAiC;QAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,OAAyB,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,CACL,OAAe,EACf,OAAiB,EACjB,MAA0B;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;CACF;AAUD,MAAM,WAAW;IAKK;IAJZ,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAC9B,UAAU,GAAW,CAAC,CAAC;IACvB,SAAS,GAAW,CAAC,CAAC;IAE9B,YAAoB,OAA2B;QAA3B,YAAO,GAAP,OAAO,CAAoB;IAAG,CAAC;IAEnD,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;IACnC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;IACnC,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IACrC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;IACrD,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;IACrD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAClD,CAAC;IAED,eAAe,CAAC,IAAY;QAC1B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;IACxD,CAAC;IAED,iBAAiB,CACf,IAAY,EACZ,UAA4B,EAC5B,OAA2B,SAAS;QAEpC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,WAAW,CACT,OAAe,EACf,OAAiB,EACjB,MAA0B;QAE1B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;IACtD,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,kBAAkB,CAChB,OAAe,EACf,OAAiC;QAEjC,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;CACF;AAED,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,74 @@
1
+ import type { GameEvent, KeyPressedEvent, MouseButtonPressedEvent, MouseButtonReleasedEvent, MouseMovedEvent, MouseWheelScrolledEvent } from ".";
2
+ import type { GameObject } from "../GameObject";
3
+ type HandleEventMethod<TObj extends GameObject> = (this: TObj, event: GameEvent, ...args: unknown[]) => unknown;
4
+ type MethodDec<T> = (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;
5
+ type KeyTickHandler<TObj extends GameObject = GameObject> = (gameObject: TObj) => void;
6
+ declare const KEY_TICK_HANDLERS: unique symbol;
7
+ export declare const composeMethodDecorators: <T>(...decorators: Array<MethodDec<T>>) => MethodDec<T>;
8
+ type BeforeColisionMethod<TObj extends GameObject = GameObject> = (this: TObj, other: GameObject) => boolean;
9
+ /**
10
+ * Decorator for controlling whether a GameObject should handle collisions with another.
11
+ * If `predicate(self, other)` returns `false`, the decorated method returns `false`.
12
+ *
13
+ * Intended usage:
14
+ * - Apply to `GameObject.beforeColision(other)`
15
+ */
16
+ export declare const solidTo: <TObj extends GameObject = GameObject>(predicate: (self: TObj, other: GameObject) => boolean) => (_target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<BeforeColisionMethod<TObj>>) => TypedPropertyDescriptor<BeforeColisionMethod<TObj>>;
17
+ /**
18
+ * Decorator for handling mouse clicks on hitboxes.
19
+ */
20
+ export declare const onClick: <TObj extends GameObject = GameObject>(handler: (gameObject: TObj, event: MouseButtonPressedEvent) => void) => (_target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
21
+ /**
22
+ * Decorator for handling mouse clicks anywhere on the canvas.
23
+ */
24
+ export declare const onClickAnywhere: <TObj extends GameObject = GameObject>(handler: (gameObject: TObj, event: MouseButtonPressedEvent) => void) => (_target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
25
+ /**
26
+ * Decorator for handling mouse clicks on hitboxes.
27
+ */
28
+ export declare const onMouseRelease: <TObj extends GameObject = GameObject>(handler: (gameObject: TObj, event: MouseButtonReleasedEvent) => void) => (_target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
29
+ /**
30
+ * Decorator for handling mouse wheel scrolling anywhere on the canvas.
31
+ */
32
+ export declare const onMouseWheel: <TObj extends GameObject = GameObject>(handler: (gameObject: TObj, event: MouseWheelScrolledEvent) => void) => (_target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
33
+ /**
34
+ * Decorator for making the GameObject grabbable by the mouse
35
+ * it will check colision with all of its hitboxes and if ANY
36
+ * of them has the mouse inside, the gameObject will follow the
37
+ * mouse.
38
+ */
39
+ export declare const grabbable: <TObj extends GameObject = GameObject>() => (target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
40
+ /**
41
+ * Decorator for handling mouse moving over the GameObject
42
+ */
43
+ export declare const onMouseMoved: <TObj extends GameObject = GameObject>(handler: (gameObject: TObj, event: MouseMovedEvent) => void) => (_target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
44
+ /**
45
+ * Decorator for handling mouse wheel scrolling over hitboxes.
46
+ */
47
+ export declare const onMouseWheelOverHitbox: <TObj extends GameObject = GameObject>(handler: (gameObject: TObj, event: MouseWheelScrolledEvent) => void) => (_target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
48
+ /**
49
+ * Decorator that runs the handler once when the key becomes pressed.
50
+ */
51
+ export declare function onKeyPressed<TObj extends GameObject = GameObject>(key: string, handler: (gameObject: TObj, event: KeyPressedEvent) => void): (target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
52
+ /**
53
+ * Decorator that runs the handler every tick while the key is held.
54
+ */
55
+ export declare function onKeyHold<TObj extends GameObject = GameObject>(key: string, handler: (gameObject: TObj, event: KeyPressedEvent) => void): (target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
56
+ /**
57
+ * Decorator that runs the handler once when all keys in the combo become pressed.
58
+ */
59
+ export declare function onKeyComboPressed<TObj extends GameObject = GameObject>(keys: string[], handler: (gameObject: TObj, event: KeyPressedEvent) => void): (target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
60
+ /**
61
+ * Decorator that runs the handler every tick while all keys in the combo are held.
62
+ */
63
+ export declare function onKeyComboHold<TObj extends GameObject = GameObject>(keys: string[], handler: (gameObject: TObj, event: KeyPressedEvent) => void): (target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
64
+ export declare function onChildrenEvents<TObj extends GameObject = GameObject>(): (_target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
65
+ /**
66
+ * Decorator for handling hover events on hitboxes.
67
+ */
68
+ export declare const onHover: <TObj extends GameObject = GameObject>(handler: (gameObject: TObj, event: GameEvent) => void) => (_target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
69
+ /**
70
+ * Decorator for handling stop hovering events on hitboxes.
71
+ */
72
+ export declare const onStopHovering: <TObj extends GameObject = GameObject>(handler: (gameObject: TObj, event: GameEvent) => void) => (_target: Object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<HandleEventMethod<TObj>>) => TypedPropertyDescriptor<HandleEventMethod<TObj>>;
73
+ export { KEY_TICK_HANDLERS, type KeyTickHandler };
74
+ //# sourceMappingURL=decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/Events/decorators.ts"],"names":[],"mappings":"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"}