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,64 @@
1
+ class MinHeap {
2
+ getScore;
3
+ data = [];
4
+ constructor(getScore) {
5
+ this.getScore = getScore;
6
+ }
7
+ get size() {
8
+ return this.data.length;
9
+ }
10
+ push(item) {
11
+ this.data.push(item);
12
+ this.bubbleUp(this.data.length - 1);
13
+ }
14
+ pop() {
15
+ if (this.data.length === 0)
16
+ return undefined;
17
+ const first = this.data[0];
18
+ const last = this.data.pop();
19
+ if (this.data.length > 0) {
20
+ this.data[0] = last;
21
+ this.bubbleDown(0);
22
+ }
23
+ return first;
24
+ }
25
+ bubbleUp(index) {
26
+ while (index > 0) {
27
+ const parent = Math.floor((index - 1) / 2);
28
+ if (this.getScore(this.data[index]) >= this.getScore(this.data[parent])) {
29
+ break;
30
+ }
31
+ [this.data[index], this.data[parent]] = [
32
+ this.data[parent],
33
+ this.data[index],
34
+ ];
35
+ index = parent;
36
+ }
37
+ }
38
+ bubbleDown(index) {
39
+ const length = this.data.length;
40
+ while (true) {
41
+ const left = index * 2 + 1;
42
+ const right = left + 1;
43
+ let smallest = index;
44
+ if (left < length &&
45
+ this.getScore(this.data[left]) < this.getScore(this.data[smallest])) {
46
+ smallest = left;
47
+ }
48
+ if (right < length &&
49
+ this.getScore(this.data[right]) < this.getScore(this.data[smallest])) {
50
+ smallest = right;
51
+ }
52
+ if (smallest === index) {
53
+ return;
54
+ }
55
+ [this.data[index], this.data[smallest]] = [
56
+ this.data[smallest],
57
+ this.data[index],
58
+ ];
59
+ index = smallest;
60
+ }
61
+ }
62
+ }
63
+ export { MinHeap };
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Lib/MinHeap/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ type AnyFn = (this: any, ...args: any[]) => any;
2
+ export declare const mixin: {
3
+ before: <T>() => <TFn extends AnyFn>(cb: (obj: T, ...args: Parameters<TFn>) => boolean | void) => (_t: Object, _k: string | symbol, descriptor: TypedPropertyDescriptor<TFn>) => TypedPropertyDescriptor<TFn>;
4
+ after: <T>() => <TFn extends AnyFn>(cb: (obj: T, result: ReturnType<TFn>, ...args: Parameters<TFn>) => void | ReturnType<TFn>) => (_t: Object, _k: string | symbol, descriptor: TypedPropertyDescriptor<TFn>) => TypedPropertyDescriptor<TFn>;
5
+ replace: <T>() => <TFn extends AnyFn>(cb: (obj: T, ...args: Parameters<TFn>) => ReturnType<TFn>) => (_t: Object, _k: string | symbol, descriptor: TypedPropertyDescriptor<TFn>) => TypedPropertyDescriptor<TFn>;
6
+ };
7
+ export {};
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Lib/Mixins/index.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAiEhD,eAAO,MAAM,KAAK;aACP,CAAC,QA9DS,GAAG,SAAS,KAAK,4CACa,OAAO,GAAG,IAAI,MAGzD,IAAI,MAAM,EACV,IAAI,MAAM,GAAG,MAAM,EACnB,wCAAwC;YAyDtC,CAAC,QA3CU,GAAG,SAAS,KAAK,iGAQ9B,IAAI,MAAM,EACV,IAAI,MAAM,GAAG,MAAM,EACnB,wCAAwC;cAkCpC,CAAC,QApBQ,GAAG,SAAS,KAAK,iEAI9B,IAAI,MAAM,EACV,IAAI,MAAM,GAAG,MAAM,EACnB,wCAAwC;CAe/C,CAAC"}
@@ -0,0 +1,45 @@
1
+ const _mixin = {
2
+ before() {
3
+ return function (cb) {
4
+ return function (_t, _k, descriptor) {
5
+ const original = descriptor.value;
6
+ descriptor.value = function (...args) {
7
+ const shouldCancel = cb(this, ...args);
8
+ if (shouldCancel === true)
9
+ return undefined;
10
+ return original.apply(this, args);
11
+ };
12
+ return descriptor;
13
+ };
14
+ };
15
+ },
16
+ after() {
17
+ return function (cb) {
18
+ return function (_t, _k, descriptor) {
19
+ const original = descriptor.value;
20
+ descriptor.value = function (...args) {
21
+ const result = original.apply(this, args);
22
+ const newResult = cb(this, result, ...args);
23
+ return (newResult ?? result);
24
+ };
25
+ return descriptor;
26
+ };
27
+ };
28
+ },
29
+ replace() {
30
+ return function (cb) {
31
+ return function (_t, _k, descriptor) {
32
+ descriptor.value = function (...args) {
33
+ return cb(this, ...args);
34
+ };
35
+ return descriptor;
36
+ };
37
+ };
38
+ },
39
+ };
40
+ export const mixin = {
41
+ before: () => _mixin.before(),
42
+ after: () => _mixin.after(),
43
+ replace: () => _mixin.replace(),
44
+ };
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Lib/Mixins/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG;IACb,MAAM;QACJ,OAAO,UACL,EAA2D;YAE3D,OAAO,UACL,EAAU,EACV,EAAmB,EACnB,UAAwC;gBAExC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAM,CAAC;gBACnC,UAAU,CAAC,KAAK,GAAG,UAAsB,GAAG,IAAqB;oBAC/D,MAAM,YAAY,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;oBACvC,IAAI,YAAY,KAAK,IAAI;wBAAE,OAAO,SAA4B,CAAC;oBAC/D,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACpC,CAAQ,CAAC;gBACT,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,OAAO,UACL,EAI2B;YAE3B,OAAO,UACL,EAAU,EACV,EAAmB,EACnB,UAAwC;gBAExC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAM,CAAC;gBACnC,UAAU,CAAC,KAAK,GAAG,UAAsB,GAAG,IAAqB;oBAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAoB,CAAC;oBAC7D,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;oBAC5C,OAAO,CAAC,SAAS,IAAI,MAAM,CAAoB,CAAC;gBAClD,CAAQ,CAAC;gBACT,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,UACL,EAA4D;YAE5D,OAAO,UACL,EAAU,EACV,EAAmB,EACnB,UAAwC;gBAExC,UAAU,CAAC,KAAK,GAAG,UAAsB,GAAG,IAAqB;oBAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC3B,CAAQ,CAAC;gBACT,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,GAAM,EAAE,CAAC,MAAM,CAAC,MAAM,EAAK;IACnC,KAAK,EAAE,GAAM,EAAE,CAAC,MAAM,CAAC,KAAK,EAAK;IACjC,OAAO,EAAE,GAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAK;CACtC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { CircleHitbox, type SquareHitbox } from "../../GameObject/Hitboxes";
2
+ import { Vector } from "../Vector";
3
+ declare class PathfindingProxy {
4
+ private position;
5
+ speed: Vector;
6
+ rotation: number;
7
+ angularVelocity: number;
8
+ hitboxes: Array<SquareHitbox | CircleHitbox>;
9
+ constructor(position: Vector);
10
+ setPosition(position: Vector): void;
11
+ getPosition(): Vector;
12
+ getIntendedNextPosition(): Vector;
13
+ getRotationCenter(): Vector;
14
+ }
15
+ export { PathfindingProxy };
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Lib/PathfindingProxy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,cAAM,gBAAgB;IAMR,OAAO,CAAC,QAAQ;IALrB,KAAK,EAAE,MAAM,CAAiB;IAC9B,QAAQ,EAAE,MAAM,CAAK;IACrB,eAAe,EAAE,MAAM,CAAK;IAC5B,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC,CAAM;gBAErC,QAAQ,EAAE,MAAM;IAE7B,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,WAAW,IAAI,MAAM;IAIrB,uBAAuB,IAAI,MAAM;IAIjC,iBAAiB,IAAI,MAAM;CA6BnC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { CircleHitbox } from "../../GameObject/Hitboxes";
2
+ import { Vector } from "../Vector";
3
+ class PathfindingProxy {
4
+ position;
5
+ speed = Vector.zero();
6
+ rotation = 0;
7
+ angularVelocity = 0;
8
+ hitboxes = [];
9
+ constructor(position) {
10
+ this.position = position;
11
+ }
12
+ setPosition(position) {
13
+ this.position = position;
14
+ }
15
+ getPosition() {
16
+ return this.position;
17
+ }
18
+ getIntendedNextPosition() {
19
+ return this.getPosition().toAdded(this.speed);
20
+ }
21
+ getRotationCenter() {
22
+ if (this.hitboxes.length === 0) {
23
+ return this.getPosition();
24
+ }
25
+ let minX = Number.POSITIVE_INFINITY;
26
+ let maxX = Number.NEGATIVE_INFINITY;
27
+ let minY = Number.POSITIVE_INFINITY;
28
+ let maxY = Number.NEGATIVE_INFINITY;
29
+ for (const hitbox of this.hitboxes) {
30
+ if (hitbox instanceof CircleHitbox) {
31
+ const center = hitbox.getAbsolutePosition();
32
+ minX = Math.min(minX, center.x - hitbox.radius);
33
+ maxX = Math.max(maxX, center.x + hitbox.radius);
34
+ minY = Math.min(minY, center.y - hitbox.radius);
35
+ maxY = Math.max(maxY, center.y + hitbox.radius);
36
+ continue;
37
+ }
38
+ const topLeft = hitbox.getAbsolutePosition();
39
+ minX = Math.min(minX, topLeft.x);
40
+ maxX = Math.max(maxX, topLeft.x + hitbox.size.x);
41
+ minY = Math.min(minY, topLeft.y);
42
+ maxY = Math.max(maxY, topLeft.y + hitbox.size.y);
43
+ }
44
+ return new Vector((minX + maxX) / 2, (minY + maxY) / 2);
45
+ }
46
+ }
47
+ export { PathfindingProxy };
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Lib/PathfindingProxy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,gBAAgB;IAMA;IALb,KAAK,GAAW,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,QAAQ,GAAW,CAAC,CAAC;IACrB,eAAe,GAAW,CAAC,CAAC;IAC5B,QAAQ,GAAuC,EAAE,CAAC;IAEzD,YAAoB,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEjC,WAAW,CAAC,QAAgB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,uBAAuB;QAC5B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAEM,iBAAiB;QACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEpC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,MAAM,YAAY,YAAY,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBAC5C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC7C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ declare class Vector {
2
+ x: number;
3
+ y: number;
4
+ constructor(x: number, y: number);
5
+ private roundToZero;
6
+ magnitude(): number;
7
+ squaredMagnitude(): number;
8
+ add(other: Vector): Vector;
9
+ toAdded(other: Vector): Vector;
10
+ subtract(other: Vector): Vector;
11
+ toSubtracted(other: Vector): Vector;
12
+ multiply(scalar: number): Vector;
13
+ toMultiplied(scalar: number): Vector;
14
+ dotProduct(other: Vector): number;
15
+ clone(): Vector;
16
+ equals(other: Vector): boolean;
17
+ static zero(): Vector;
18
+ normalize(): Vector;
19
+ toNormalized(): Vector;
20
+ rotate(angle: number): Vector;
21
+ toRotated(angle: number): Vector;
22
+ }
23
+ export { Vector };
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Lib/Vector/index.ts"],"names":[],"mappings":"AAAA,cAAM,MAAM;IACH,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;gBAEL,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAKhC,OAAO,CAAC,WAAW;IAKnB,SAAS;IAIT,gBAAgB;IAIhB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAM1B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAM9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAM/B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAMnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAMhC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAMpC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIjC,KAAK,IAAI,MAAM;IAMf,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9B,MAAM,CAAC,IAAI,IAAI,MAAM;IAMrB,SAAS,IAAI,MAAM;IASnB,YAAY,IAAI,MAAM;IAMtB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAW7B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAGjC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,94 @@
1
+ class Vector {
2
+ x;
3
+ y;
4
+ constructor(x, y) {
5
+ this.x = x;
6
+ this.y = y;
7
+ }
8
+ roundToZero() {
9
+ if (Math.abs(this.x) < 0.05)
10
+ this.x = 0;
11
+ if (Math.abs(this.y) < 0.05)
12
+ this.y = 0;
13
+ }
14
+ magnitude() {
15
+ return Math.sqrt(this.x * this.x + this.y * this.y);
16
+ }
17
+ squaredMagnitude() {
18
+ return this.x * this.x + this.y * this.y;
19
+ }
20
+ add(other) {
21
+ this.x += other.x;
22
+ this.y += other.y;
23
+ return this;
24
+ }
25
+ toAdded(other) {
26
+ const result = new Vector(this.x + other.x, this.y + other.y);
27
+ result.roundToZero();
28
+ return result;
29
+ }
30
+ subtract(other) {
31
+ this.x -= other.x;
32
+ this.y -= other.y;
33
+ return this;
34
+ }
35
+ toSubtracted(other) {
36
+ const result = new Vector(this.x - other.x, this.y - other.y);
37
+ result.roundToZero();
38
+ return result;
39
+ }
40
+ multiply(scalar) {
41
+ this.x *= scalar;
42
+ this.y *= scalar;
43
+ return this;
44
+ }
45
+ toMultiplied(scalar) {
46
+ const result = new Vector(this.x * scalar, this.y * scalar);
47
+ result.roundToZero();
48
+ return result;
49
+ }
50
+ dotProduct(other) {
51
+ return this.x * other.x + this.y * other.y;
52
+ }
53
+ clone() {
54
+ const result = new Vector(this.x, this.y);
55
+ result.roundToZero();
56
+ return result;
57
+ }
58
+ equals(other) {
59
+ return this.x === other.x && this.y === other.y;
60
+ }
61
+ static zero() {
62
+ const result = new Vector(0, 0);
63
+ result.roundToZero();
64
+ return result;
65
+ }
66
+ normalize() {
67
+ const length = Math.sqrt(this.x * this.x + this.y * this.y);
68
+ if (length > 0) {
69
+ this.x /= length;
70
+ this.y /= length;
71
+ }
72
+ return this;
73
+ }
74
+ toNormalized() {
75
+ const result = this.clone().normalize();
76
+ result.roundToZero();
77
+ return result;
78
+ }
79
+ rotate(angle) {
80
+ const cos = Math.cos(angle);
81
+ const sin = Math.sin(angle);
82
+ const x = this.x * cos - this.y * sin;
83
+ const y = this.x * sin + this.y * cos;
84
+ this.x = x;
85
+ this.y = y;
86
+ this.roundToZero();
87
+ return this;
88
+ }
89
+ toRotated(angle) {
90
+ return this.clone().rotate(angle);
91
+ }
92
+ }
93
+ export { Vector };
94
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Lib/Vector/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from "./Math";
2
+ export * from "./MinHeap";
3
+ export * from "./Mixins";
4
+ export * from "./PathfindingProxy";
5
+ export * from "./Vector";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./Math";
2
+ export * from "./MinHeap";
3
+ export * from "./Mixins";
4
+ export * from "./PathfindingProxy";
5
+ export * from "./Vector";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { Scene } from "..";
2
+ type TransitionScenes = {
3
+ from: Scene | null;
4
+ to: Scene;
5
+ };
6
+ export type SceneTransitionFunction = (progress: number, scenes: TransitionScenes) => void;
7
+ export type SceneTransition = {
8
+ duration: number;
9
+ easing?: (t: number) => number;
10
+ /**
11
+ * If false, keep the outgoing scene on top during the transition.
12
+ * Useful for pop-like transitions where the previous scene should slide away
13
+ * while revealing the target beneath it.
14
+ */
15
+ incomingOnTop?: boolean;
16
+ setup?: SceneTransitionFunction;
17
+ step: SceneTransitionFunction;
18
+ cleanup?: SceneTransitionFunction;
19
+ };
20
+ declare const linearEasing: (t: number) => number;
21
+ declare const easeInOut: (t: number) => number;
22
+ declare const createSceneTransition: (step: SceneTransitionFunction, options?: {
23
+ duration?: number;
24
+ easing?: (t: number) => number;
25
+ incomingOnTop?: boolean;
26
+ setup?: SceneTransitionFunction;
27
+ cleanup?: SceneTransitionFunction;
28
+ }) => SceneTransition;
29
+ declare const fadeTransition: (duration?: number) => SceneTransition;
30
+ type SlideDirection = "left" | "right" | "up" | "down";
31
+ declare const slideReplace: (direction: SlideDirection, distance?: number, duration?: number) => SceneTransition;
32
+ declare const slidePush: (direction: SlideDirection, distance?: number, duration?: number) => SceneTransition;
33
+ declare const slidePop: (direction: SlideDirection, distance?: number, duration?: number) => SceneTransition;
34
+ declare const colorFlash: (color?: string, duration?: number) => SceneTransition;
35
+ export { createSceneTransition, fadeTransition, slideReplace, slidePush, slidePop, colorFlash, easeInOut, linearEasing, };
36
+ export type { TransitionScenes, SlideDirection };
37
+ //# sourceMappingURL=Transitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transitions.d.ts","sourceRoot":"","sources":["../../../src/Scenes/SceneManager/Transitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAGhC,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,EAAE,EAAE,KAAK,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,KACrB,IAAI,CAAC;AAEV,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAEF,QAAA,MAAM,YAAY,GAAI,GAAG,MAAM,WAAM,CAAC;AACtC,QAAA,MAAM,SAAS,GAAI,GAAG,MAAM,WAC2B,CAAC;AAExD,QAAA,MAAM,qBAAqB,GACzB,MAAM,uBAAuB,EAC7B,UAAU;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC,KACA,eAOD,CAAC;AAEH,QAAA,MAAM,cAAc,GAAI,WAAU,MAAY,KAAG,eAoB9C,CAAC;AAEJ,KAAK,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAuBvD,QAAA,MAAM,YAAY,GAChB,WAAW,cAAc,EACzB,WAAW,MAAM,EACjB,WAAU,MAAY,KACrB,eA0CF,CAAC;AAEF,QAAA,MAAM,SAAS,GACb,WAAW,cAAc,EACzB,WAAW,MAAM,EACjB,WAAU,MAAY,KACrB,eAkCF,CAAC;AAEF,QAAA,MAAM,QAAQ,GACZ,WAAW,cAAc,EACzB,WAAW,MAAM,EACjB,WAAU,MAAY,KACrB,eAsCF,CAAC;AAEF,QAAA,MAAM,UAAU,GACd,QAAO,MAAgB,EACvB,WAAU,MAAY,KACrB,eAqCA,CAAC;AAEJ,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,EACT,YAAY,GACb,CAAC;AACF,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,165 @@
1
+ import { Vector } from "../../Lib/Vector";
2
+ const linearEasing = (t) => t;
3
+ const easeInOut = (t) => t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;
4
+ const createSceneTransition = (step, options) => ({
5
+ duration: options?.duration ?? 500,
6
+ easing: options?.easing,
7
+ incomingOnTop: options?.incomingOnTop,
8
+ setup: options?.setup,
9
+ step,
10
+ cleanup: options?.cleanup,
11
+ });
12
+ const fadeTransition = (duration = 450) => createSceneTransition((progress, { from, to }) => {
13
+ if (from) {
14
+ from.setOpacity(1 - progress);
15
+ }
16
+ to.setOpacity(progress);
17
+ }, {
18
+ duration,
19
+ setup: (_, { to }) => {
20
+ to.setOpacity(0);
21
+ },
22
+ cleanup: (_, { from, to }) => {
23
+ if (from) {
24
+ from.setOpacity(1);
25
+ }
26
+ to.setOpacity(1);
27
+ },
28
+ });
29
+ const defaultSlideDistance = 400;
30
+ const resolveSlideDistance = (direction, scenes, distance) => {
31
+ if (typeof distance === "number") {
32
+ return distance;
33
+ }
34
+ const canvas = scenes.to.getContext()?.getCanvas().getCanvas();
35
+ if (!canvas) {
36
+ return defaultSlideDistance;
37
+ }
38
+ const isHorizontal = direction === "left" || direction === "right";
39
+ return isHorizontal ? canvas.width : canvas.height;
40
+ };
41
+ const slideReplace = (direction, distance, duration = 500) => {
42
+ let offsetVector = Vector.zero();
43
+ return createSceneTransition((progress, { from, to }) => {
44
+ const incomingOffset = offsetVector.toMultiplied(1 - progress);
45
+ to.setOffset(incomingOffset);
46
+ if (from) {
47
+ const outgoingOffset = offsetVector.toMultiplied(-progress);
48
+ from.setOffset(outgoingOffset);
49
+ }
50
+ }, {
51
+ duration,
52
+ easing: easeInOut,
53
+ setup: (_, scenes) => {
54
+ const resolvedDistance = resolveSlideDistance(direction, scenes, distance);
55
+ const directionVectorMap = {
56
+ left: new Vector(-resolvedDistance, 0),
57
+ right: new Vector(resolvedDistance, 0),
58
+ up: new Vector(0, -resolvedDistance),
59
+ down: new Vector(0, resolvedDistance),
60
+ };
61
+ offsetVector = directionVectorMap[direction];
62
+ const { to } = scenes;
63
+ to.setOffset(offsetVector);
64
+ to.setOpacity(1);
65
+ },
66
+ cleanup: (_, { from, to }) => {
67
+ to.setOffset(Vector.zero());
68
+ if (from) {
69
+ from.setOffset(Vector.zero());
70
+ }
71
+ },
72
+ });
73
+ };
74
+ const slidePush = (direction, distance, duration = 500) => {
75
+ let offsetVector = Vector.zero();
76
+ return createSceneTransition((progress, { from, to }) => {
77
+ const incomingOffset = offsetVector.toMultiplied(1 - progress);
78
+ to.setOffset(incomingOffset);
79
+ }, {
80
+ duration,
81
+ easing: easeInOut,
82
+ setup: (_, scenes) => {
83
+ const resolvedDistance = resolveSlideDistance(direction, scenes, distance);
84
+ const directionVectorMap = {
85
+ left: new Vector(-resolvedDistance, 0),
86
+ right: new Vector(resolvedDistance, 0),
87
+ up: new Vector(0, -resolvedDistance),
88
+ down: new Vector(0, resolvedDistance),
89
+ };
90
+ offsetVector = directionVectorMap[direction];
91
+ const { to } = scenes;
92
+ to.setOffset(offsetVector);
93
+ to.setOpacity(1);
94
+ },
95
+ cleanup: (_, { from, to }) => {
96
+ to.setOffset(Vector.zero());
97
+ },
98
+ });
99
+ };
100
+ const slidePop = (direction, distance, duration = 500) => {
101
+ let offsetVector = Vector.zero();
102
+ return createSceneTransition((progress, { from, to }) => {
103
+ if (from) {
104
+ const outgoingOffset = offsetVector.toMultiplied(-progress);
105
+ from.setOffset(outgoingOffset);
106
+ }
107
+ }, {
108
+ duration,
109
+ easing: easeInOut,
110
+ incomingOnTop: false,
111
+ setup: (_, scenes) => {
112
+ const resolvedDistance = resolveSlideDistance(direction, scenes, distance);
113
+ const directionVectorMap = {
114
+ left: new Vector(-resolvedDistance, 0),
115
+ right: new Vector(resolvedDistance, 0),
116
+ up: new Vector(0, -resolvedDistance),
117
+ down: new Vector(0, resolvedDistance),
118
+ };
119
+ offsetVector = directionVectorMap[direction];
120
+ const { from } = scenes;
121
+ from?.setOpacity(1);
122
+ },
123
+ cleanup: (_, { from, to }) => {
124
+ if (from) {
125
+ from.setOffset(Vector.zero());
126
+ }
127
+ },
128
+ });
129
+ };
130
+ const colorFlash = (color = "white", duration = 750) => createSceneTransition((progress, { from, to }) => {
131
+ const flashAlpha = progress < 0.5 ? progress * 2 : (1 - progress) * 2;
132
+ if (progress < 0.5) {
133
+ to.setOpacity(0);
134
+ from?.setOpacity(1);
135
+ }
136
+ else {
137
+ to.setOpacity(1);
138
+ from?.setOpacity(0);
139
+ }
140
+ to.setOverlay(color, flashAlpha);
141
+ if (from) {
142
+ from.setOverlay(color, flashAlpha);
143
+ }
144
+ }, {
145
+ duration,
146
+ easing: easeInOut,
147
+ setup: (_, { from, to }) => {
148
+ to.setOpacity(0);
149
+ from?.setOpacity(1);
150
+ to.setOverlay(color, 0);
151
+ if (from) {
152
+ from.setOverlay(color, 0);
153
+ }
154
+ },
155
+ cleanup: (_, { from, to }) => {
156
+ to.setOpacity(1);
157
+ from?.setOpacity(1);
158
+ to.setOverlay(null, 0);
159
+ if (from) {
160
+ from.setOverlay(null, 0);
161
+ }
162
+ },
163
+ });
164
+ export { createSceneTransition, fadeTransition, slideReplace, slidePush, slidePop, colorFlash, easeInOut, linearEasing, };
165
+ //# sourceMappingURL=Transitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transitions.js","sourceRoot":"","sources":["../../../src/Scenes/SceneManager/Transitions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA0B1C,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AACtC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAC9B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAExD,MAAM,qBAAqB,GAAG,CAC5B,IAA6B,EAC7B,OAMC,EACgB,EAAE,CAAC,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,GAAG;IAClC,MAAM,EAAE,OAAO,EAAE,MAAM;IACvB,aAAa,EAAE,OAAO,EAAE,aAAa;IACrC,KAAK,EAAE,OAAO,EAAE,KAAK;IACrB,IAAI;IACJ,OAAO,EAAE,OAAO,EAAE,OAAO;CAC1B,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,WAAmB,GAAG,EAAmB,EAAE,CACjE,qBAAqB,CACnB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;IACzB,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC,EACD;IACE,QAAQ;IACR,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACnB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;QAC3B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;CACF,CACF,CAAC;AAIJ,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,MAAM,oBAAoB,GAAG,CAC3B,SAAyB,EACzB,MAAwB,EACxB,QAAiB,EACT,EAAE;IACV,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC;IAE/D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,CAAC;IACnE,OAAO,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,SAAyB,EACzB,QAAiB,EACjB,WAAmB,GAAG,EACL,EAAE;IACnB,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAEjC,OAAO,qBAAqB,CAC1B,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;QACzB,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC/D,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAE7B,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,EACD;QACE,QAAQ;QACR,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACnB,MAAM,gBAAgB,GAAG,oBAAoB,CAC3C,SAAS,EACT,MAAM,EACN,QAAQ,CACT,CAAC;YACF,MAAM,kBAAkB,GAAmC;gBACzD,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACtC,KAAK,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACtC,EAAE,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC;gBACpC,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC;aACtC,CAAC;YACF,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAE7C,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;YACtB,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC3B,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;YAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5B,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;KACF,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAChB,SAAyB,EACzB,QAAiB,EACjB,WAAmB,GAAG,EACL,EAAE;IACnB,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAEjC,OAAO,qBAAqB,CAC1B,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;QACzB,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC/D,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC,EACD;QACE,QAAQ;QACR,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACnB,MAAM,gBAAgB,GAAG,oBAAoB,CAC3C,SAAS,EACT,MAAM,EACN,QAAQ,CACT,CAAC;YACF,MAAM,kBAAkB,GAAmC;gBACzD,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACtC,KAAK,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACtC,EAAE,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC;gBACpC,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC;aACtC,CAAC;YACF,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAE7C,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;YACtB,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC3B,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;YAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;KACF,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CACf,SAAyB,EACzB,QAAiB,EACjB,WAAmB,GAAG,EACL,EAAE;IACnB,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAEjC,OAAO,qBAAqB,CAC1B,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;QACzB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,EACD;QACE,QAAQ;QACR,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACnB,MAAM,gBAAgB,GAAG,oBAAoB,CAC3C,SAAS,EACT,MAAM,EACN,QAAQ,CACT,CAAC;YACF,MAAM,kBAAkB,GAAmC;gBACzD,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACtC,KAAK,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACtC,EAAE,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC;gBACpC,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC;aACtC,CAAC;YACF,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAE7C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YACxB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;YAC3B,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;KACF,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,QAAgB,OAAO,EACvB,WAAmB,GAAG,EACL,EAAE,CACnB,qBAAqB,CACnB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;IACzB,MAAM,UAAU,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;QACnB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,EACD;IACE,QAAQ;IACR,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;QACzB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;QAC3B,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF,CACF,CAAC;AAEJ,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,EACT,YAAY,GACb,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { Scene } from "..";
2
+ import type { GameContext } from "../../Context";
3
+ import type { SceneTransition } from "./Transitions";
4
+ declare class SceneManager {
5
+ private scenes;
6
+ private currentScene;
7
+ private activeScenes;
8
+ private context;
9
+ private activeTransition;
10
+ constructor(scenes: Record<string, Scene>, currentScene?: Scene | null);
11
+ tick(): void;
12
+ getScene(name: string): Scene | null;
13
+ setSceneAsCurrent(name: string): void;
14
+ getAllScenes(): Scene[];
15
+ getActiveScenes(): Scene[];
16
+ getCurrentScene(): Scene | null;
17
+ pushSceneToActive(scene: Scene): void;
18
+ popSceneFromActive(): Scene | undefined;
19
+ bindContext(context: GameContext): void;
20
+ transitionToScene(name: string, transition?: SceneTransition, mode?: "replace" | "push"): Promise<void>;
21
+ private updateTransition;
22
+ }
23
+ export { SceneManager };
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Scenes/SceneManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,eAAe,CAAC;AAGvE,cAAM,YAAY;IAad,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IAbtB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,gBAAgB,CAOR;gBAGN,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC7B,YAAY,GAAE,KAAK,GAAG,IAAW;IAO3C,IAAI,IAAI,IAAI;IAMZ,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAIpC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBrC,YAAY,IAAI,KAAK,EAAE;IAIvB,eAAe,IAAI,KAAK,EAAE;IAI1B,eAAe,IAAI,KAAK,GAAG,IAAI;IAI/B,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAMrC,kBAAkB,IAAI,KAAK,GAAG,SAAS;IAMvC,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKjC,iBAAiB,CACrB,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,eAAkC,EAC9C,IAAI,GAAE,SAAS,GAAG,MAAkB,GACnC,OAAO,CAAC,IAAI,CAAC;IA4DhB,OAAO,CAAC,gBAAgB;CAyCzB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}