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,16 @@
1
+ import { scripted, sequenceOf } from "..";
2
+ import { TextBox } from "../../GameObject/Library/TextBox";
3
+ export const DisplayTextBox = (entry) => {
4
+ return scripted(async (ctx, state) => {
5
+ return new Promise((resolve) => {
6
+ const textBox = new TextBox("textBox", entry.text, entry, () => resolve(state));
7
+ ctx.getSceneManager().getCurrentScene()?.addGameObject(textBox);
8
+ });
9
+ });
10
+ };
11
+ export const TextBoxSequence = (entries) => {
12
+ return sequenceOf([
13
+ ...entries.map((entry) => DisplayTextBox(entry)),
14
+ ]);
15
+ };
16
+ //# sourceMappingURL=TextBoxSequence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextBoxSequence.js","sourceRoot":"","sources":["../../../src/ScriptedEvents/Library/TextBoxSequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAuB,MAAM,kCAAkC,CAAC;AAMhF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAgB,EAChB,EAAE;IACF,OAAO,QAAQ,CAAS,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAC7D,OAAO,CAAC,KAAK,CAAC,CACf,CAAC;YACF,GAAG,CAAC,eAAe,EAAE,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAoB,EACpB,EAAE;IACF,OAAO,UAAU,CAAS;QACxB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAS,KAAK,CAAC,CAAC;KACzD,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WaitForKeyPress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaitForKeyPress.d.ts","sourceRoot":"","sources":["../../../src/ScriptedEvents/Library/WaitForKeyPress.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=WaitForKeyPress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaitForKeyPress.js","sourceRoot":"","sources":["../../../src/ScriptedEvents/Library/WaitForKeyPress.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { GameObject } from "../../GameObject";
2
+ import type { Walker } from "../../GameObject/Walker";
3
+ export declare const walkCharacter: <TState extends object>(character: GameObject, walker: Walker, label?: string | null) => import("..").ScriptEvent<TState>;
4
+ //# sourceMappingURL=WalkCharacter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalkCharacter.d.ts","sourceRoot":"","sources":["../../../src/ScriptedEvents/Library/WalkCharacter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,eAAO,MAAM,aAAa,GAAI,MAAM,SAAS,MAAM,EACjD,WAAW,UAAU,EACrB,QAAQ,MAAM,EACd,QAAO,MAAM,GAAG,IAAW,qCAa5B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { scripted } from "..";
2
+ export const walkCharacter = (character, walker, label = null) => {
3
+ return scripted((ctx, state) => {
4
+ character.setWalker(walker);
5
+ if (!walker.getTargetedWaypoint()) {
6
+ return Promise.resolve(state);
7
+ }
8
+ return new Promise((resolve) => {
9
+ walker.setOnComplete(() => resolve(state));
10
+ walker.start();
11
+ });
12
+ }, label ?? "walkCharacter");
13
+ };
14
+ //# sourceMappingURL=WalkCharacter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalkCharacter.js","sourceRoot":"","sources":["../../../src/ScriptedEvents/Library/WalkCharacter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,SAAqB,EACrB,MAAc,EACd,QAAuB,IAAI,EAC3B,EAAE;IACF,OAAO,QAAQ,CAAS,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACrC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,KAAK,IAAI,eAAe,CAAC,CAAC;AAC/B,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./TextBoxSequence";
2
+ export * from "./WalkCharacter";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ScriptedEvents/Library/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./TextBoxSequence";
2
+ export * from "./WalkCharacter";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ScriptedEvents/Library/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { GameContext } from "../Context";
2
+ export * from "./Combinators";
3
+ export * from "./Library";
4
+ export type BaseTState = ErroredTState | AbortedTState | SuccessTState | ActiveTState;
5
+ export type ErroredTState = {
6
+ done: true;
7
+ aborted: undefined;
8
+ error: Error;
9
+ };
10
+ export type AbortedTState = {
11
+ done: true;
12
+ aborted: string;
13
+ error: undefined;
14
+ };
15
+ export type ActiveTState = {
16
+ done: false;
17
+ aborted: undefined;
18
+ error: undefined;
19
+ };
20
+ export type SuccessTState = {
21
+ done: true;
22
+ aborted: undefined;
23
+ error: undefined;
24
+ };
25
+ export type ScriptState<TState extends object> = BaseTState & TState;
26
+ export type ScriptInputState<TState extends object> = TState & Partial<BaseTState>;
27
+ export type ScriptEvent<TState extends object> = {
28
+ /**For debugging purposes */
29
+ label?: string;
30
+ /**Executes the script event and returns a new copy of the result state */
31
+ run(ctx: GameContext, state: ScriptInputState<TState>): Promise<ScriptState<TState>>;
32
+ abort: (reason: string) => void;
33
+ };
34
+ export declare const scripted: <TState extends object>(cb: (ctx: GameContext, state: ScriptState<TState>) => Promise<ScriptState<TState>>, label?: string | null) => ScriptEvent<TState>;
35
+ export declare const done: <TState extends BaseTState>(state: TState) => TState & SuccessTState;
36
+ export declare const abort: <TState extends BaseTState>(state: TState, reason: string) => TState & AbortedTState;
37
+ export declare const failed: <TState extends BaseTState>(state: TState, error: string) => TState & ErroredTState;
38
+ export declare const isAborted: <TState extends BaseTState>(state: TState) => state is TState & AbortedTState;
39
+ export declare const isErrored: <TState extends BaseTState>(state: TState) => state is TState & ErroredTState;
40
+ export declare const isDone: <TState extends BaseTState>(state: TState) => boolean;
41
+ export declare const runEvent: <TState extends object>(event: ScriptEvent<TState>, ctx: GameContext, state: ScriptState<TState>) => Promise<(ErroredTState & TState) | (AbortedTState & TState) | (SuccessTState & TState) | (ActiveTState & TState)>;
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ScriptedEvents/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAE1B,MAAM,MAAM,UAAU,GAClB,aAAa,GACb,aAAa,GACb,aAAa,GACb,YAAY,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,MAAM,IAAI,UAAU,GAAG,MAAM,CAAC;AACrE,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,MAAM,IAC9C,MAAM,GACN,OAAO,CAAC,UAAU,CAAC,CAAC;AAExB,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,MAAM,IAAI;IAC/C,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0EAA0E;IAC1E,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAM,SAAS,MAAM,EAC5C,IAAI,CACF,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KACvB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EACjC,QAAO,MAAM,GAAG,IAAW,KAC1B,WAAW,CAAC,MAAM,CAoBpB,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,MAAM,SAAS,UAAU,EAC5C,OAAO,MAAM,KACZ,MAAM,GAAG,aAKV,CAAC;AAEH,eAAO,MAAM,KAAK,GAAI,MAAM,SAAS,UAAU,EAC7C,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,MAAM,GAAG,aAKV,CAAC;AAEH,eAAO,MAAM,MAAM,GAAI,MAAM,SAAS,UAAU,EAC9C,OAAO,MAAM,EACb,OAAO,MAAM,KACZ,MAAM,GAAG,aAKV,CAAC;AAEH,eAAO,MAAM,SAAS,GAAI,MAAM,SAAS,UAAU,EACjD,OAAO,MAAM,KACZ,KAAK,IAAI,MAAM,GAAG,aAEpB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,MAAM,SAAS,UAAU,EACjD,OAAO,MAAM,KACZ,KAAK,IAAI,MAAM,GAAG,aAEpB,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,MAAM,SAAS,UAAU,EAAE,OAAO,MAAM,YAE9D,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAU,MAAM,SAAS,MAAM,EAClD,OAAO,WAAW,CAAC,MAAM,CAAC,EAC1B,KAAK,WAAW,EAChB,OAAO,WAAW,CAAC,MAAM,CAAC,sHAe3B,CAAC"}
@@ -0,0 +1,61 @@
1
+ export * from "./Combinators";
2
+ export * from "./Library";
3
+ export const scripted = (cb, label = null) => {
4
+ // This is the state that will be passed to the script event
5
+ const scriptState = {
6
+ done: false,
7
+ aborted: undefined,
8
+ error: undefined,
9
+ };
10
+ return {
11
+ label: label ?? undefined,
12
+ run: (ctx, state) => {
13
+ const newState = {
14
+ ...scriptState,
15
+ ...state,
16
+ };
17
+ return cb(ctx, newState);
18
+ },
19
+ abort: (reason) => abort(scriptState, reason),
20
+ };
21
+ };
22
+ export const done = (state) => ({
23
+ ...state,
24
+ done: true,
25
+ aborted: undefined,
26
+ error: undefined,
27
+ });
28
+ export const abort = (state, reason) => ({
29
+ ...state,
30
+ aborted: reason,
31
+ error: undefined,
32
+ done: true,
33
+ });
34
+ export const failed = (state, error) => ({
35
+ ...state,
36
+ aborted: undefined,
37
+ error: new Error(error),
38
+ done: true,
39
+ });
40
+ export const isAborted = (state) => {
41
+ return state.aborted !== undefined;
42
+ };
43
+ export const isErrored = (state) => {
44
+ return state.error !== undefined;
45
+ };
46
+ export const isDone = (state) => {
47
+ return state.done;
48
+ };
49
+ export const runEvent = async (event, ctx, state) => {
50
+ if (isDone(state)) {
51
+ return state;
52
+ }
53
+ if (isAborted(state)) {
54
+ return abort(state, `Sequence Aborted: ` + state.aborted);
55
+ }
56
+ if (isErrored(state)) {
57
+ return failed(state, `Sequence Failed: ` + state.error);
58
+ }
59
+ return event.run(ctx, state);
60
+ };
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ScriptedEvents/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AA8C1B,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,EAGiC,EACjC,QAAuB,IAAI,EACN,EAAE;IACvB,4DAA4D;IAC5D,MAAM,WAAW,GAAiB;QAChC,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;KACjB,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,KAAK,IAAI,SAAS;QACzB,GAAG,EAAE,CAAC,GAAgB,EAAE,KAA+B,EAAE,EAAE;YACzD,MAAM,QAAQ,GAAG;gBACf,GAAG,WAAW;gBACd,GAAG,KAAK;aACT,CAAC;YAEF,OAAO,EAAE,CAAC,GAAG,EAAE,QAA+B,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC;KACtD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,KAAa,EACW,EAAE,CAAC,CAAC;IAC5B,GAAG,KAAK;IACR,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,KAAa,EACb,MAAc,EACU,EAAE,CAAC,CAAC;IAC5B,GAAG,KAAK;IACR,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,IAAI;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,KAAa,EACb,KAAa,EACW,EAAE,CAAC,CAAC;IAC5B,GAAG,KAAK;IACR,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC;IACvB,IAAI,EAAE,IAAI;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAa,EACoB,EAAE;IACnC,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAa,EACoB,EAAE;IACnC,OAAO,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAA4B,KAAa,EAAE,EAAE;IACjE,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,KAA0B,EAC1B,GAAgB,EAChB,KAA0B,EAC1B,EAAE;IACF,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,KAAK,EAAE,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAC"}
@@ -0,0 +1,69 @@
1
+ type Audio = {
2
+ buffer: AudioBuffer;
3
+ volume: number;
4
+ tags: string[];
5
+ };
6
+ type AudioPlayOptions = {
7
+ volume?: number;
8
+ loop?: boolean;
9
+ playbackRate?: number;
10
+ /** wait time in seconds before playing the sound */
11
+ wait?: number;
12
+ /** Audio start time offset in seconds */
13
+ start?: number;
14
+ /** Audio end time in seconds */
15
+ end?: number;
16
+ /** how long to play the sound. Takes precedence over
17
+ * end if both are provided
18
+ */
19
+ duration?: number;
20
+ };
21
+ type SongTransitionOptions = {
22
+ /** Fade duration in seconds (used for both fade-in and fade-out). */
23
+ fade?: number;
24
+ /** Fade-in duration in seconds. Overrides `fade` for the fade-in side. */
25
+ fadeIn?: number;
26
+ /** Fade-out duration in seconds. Overrides `fade` for the fade-out side. */
27
+ fadeOut?: number;
28
+ };
29
+ type SongPlayOptions = Pick<AudioPlayOptions, "volume" | "loop" | "playbackRate"> & SongTransitionOptions;
30
+ type SongController = {
31
+ name: string;
32
+ stop: (options?: Pick<SongTransitionOptions, "fadeOut" | "fade">) => void;
33
+ };
34
+ declare class SoundManager {
35
+ private sounds;
36
+ active: boolean;
37
+ private context;
38
+ masterGain: GainNode;
39
+ private currentSong?;
40
+ private songIdCounter;
41
+ constructor();
42
+ /**
43
+ * Has to be called whenever the user clicks something or hits a key
44
+ * to unlock the audio context. Browsers require this to prevent
45
+ * autoplaying sounds.
46
+ */
47
+ unlock(): Promise<void>;
48
+ setMasterGain(volume: number): void;
49
+ getMasterGain(): number;
50
+ getLoadedSounds(): Record<string, Audio>;
51
+ setSoundVolume(sound: string, volume: number): void;
52
+ getSoundVolume(sound: string): number;
53
+ loadSound(name: string, url: URL, tags?: string[]): Promise<void>;
54
+ getCurrentSongName(): string | undefined;
55
+ stopSong(options?: Pick<SongTransitionOptions, "fadeOut" | "fade">): void;
56
+ /**
57
+ * Plays a single tracked "song" (typically background music).
58
+ * - If the same song is requested, nothing happens.
59
+ * - If a different song is requested, the previous song is stopped and the new one starts.
60
+ * - Optional fade transition is supported (in seconds) via `fade`, `fadeIn`, `fadeOut`.
61
+ */
62
+ playSong(name: string, options?: SongPlayOptions): SongController;
63
+ playSound(name: string, options?: AudioPlayOptions): {
64
+ stop: () => void;
65
+ };
66
+ private stopSongPlayback;
67
+ }
68
+ export { SoundManager, type AudioPlayOptions, type SongPlayOptions, type SongTransitionOptions, type SongController, type Audio, };
69
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SoundManager/index.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC,GAC/E,qBAAqB,CAAC;AAExB,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;CAC3E,CAAC;AAEF,cAAM,YAAY;IAChB,OAAO,CAAC,MAAM,CAA6B;IACpC,MAAM,EAAE,OAAO,CAAS;IAE/B,OAAO,CAAC,OAAO,CAAsB;IAC9B,UAAU,WAA6B;IAE9C,OAAO,CAAC,WAAW,CAAC,CAMlB;IACF,OAAO,CAAC,aAAa,CAAK;;IAI1B;;;;OAIG;IACG,MAAM;IASZ,aAAa,CAAC,MAAM,EAAE,MAAM;IAK5B,aAAa;IAIb,eAAe;IAIf,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAW5C,cAAc,CAAC,KAAK,EAAE,MAAM;IAWtB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,MAAM,EAAO;IAmB3D,kBAAkB;IAIlB,QAAQ,CAAC,OAAO,GAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,GAAG,MAAM,CAAM;IAMtE;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc;IAwErE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;;;IAkEtD,OAAO,CAAC,gBAAgB;CAuBzB;AAED,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,KAAK,GACX,CAAC"}
@@ -0,0 +1,208 @@
1
+ class SoundManager {
2
+ sounds = {};
3
+ active = false;
4
+ context = new AudioContext();
5
+ masterGain = this.context.createGain();
6
+ currentSong;
7
+ songIdCounter = 0;
8
+ constructor() { }
9
+ /**
10
+ * Has to be called whenever the user clicks something or hits a key
11
+ * to unlock the audio context. Browsers require this to prevent
12
+ * autoplaying sounds.
13
+ */
14
+ async unlock() {
15
+ this.masterGain.connect(this.context.destination);
16
+ if (this.context.state !== "running") {
17
+ await this.context.resume();
18
+ this.active = true;
19
+ }
20
+ }
21
+ setMasterGain(volume) {
22
+ // Avoid negative volumes
23
+ this.masterGain.gain.value = Math.max(0, volume);
24
+ }
25
+ getMasterGain() {
26
+ return this.masterGain.gain.value;
27
+ }
28
+ getLoadedSounds() {
29
+ return this.sounds;
30
+ }
31
+ setSoundVolume(sound, volume) {
32
+ const audioEntry = this.sounds[sound];
33
+ if (!audioEntry) {
34
+ throw new Error(`Tried to set volume of sound ${sound} but it was not loaded into the library`);
35
+ }
36
+ audioEntry.volume = Math.max(0, volume);
37
+ }
38
+ getSoundVolume(sound) {
39
+ const audioEntry = this.sounds[sound];
40
+ if (!audioEntry) {
41
+ throw new Error(`Tried to set volume of sound ${sound} but it was not loaded into the library`);
42
+ }
43
+ return audioEntry.volume;
44
+ }
45
+ async loadSound(name, url, tags = []) {
46
+ const res = await fetch(url.toString());
47
+ if (!res.ok) {
48
+ throw new Error(`Failed to fetch audio ${name}: ${res.status}-${res.statusText}`);
49
+ }
50
+ const arrayBuffer = await res.arrayBuffer();
51
+ const audioBuffer = await this.context.decodeAudioData(arrayBuffer);
52
+ this.sounds[name] = {
53
+ buffer: audioBuffer,
54
+ volume: 1,
55
+ tags,
56
+ };
57
+ }
58
+ getCurrentSongName() {
59
+ return this.currentSong?.name;
60
+ }
61
+ stopSong(options = {}) {
62
+ if (!this.currentSong)
63
+ return;
64
+ const fadeOutSeconds = Math.max(0, options.fadeOut ?? options.fade ?? 0);
65
+ this.stopSongPlayback(this.currentSong, fadeOutSeconds);
66
+ }
67
+ /**
68
+ * Plays a single tracked "song" (typically background music).
69
+ * - If the same song is requested, nothing happens.
70
+ * - If a different song is requested, the previous song is stopped and the new one starts.
71
+ * - Optional fade transition is supported (in seconds) via `fade`, `fadeIn`, `fadeOut`.
72
+ */
73
+ playSong(name, options = {}) {
74
+ if (!this.active) {
75
+ this.unlock();
76
+ }
77
+ if (this.currentSong?.name === name) {
78
+ return this.currentSong.controller;
79
+ }
80
+ const audioEntry = this.sounds[name];
81
+ if (!audioEntry) {
82
+ throw new Error(`Tried to play song ${name} but it was not found in the library`);
83
+ }
84
+ const fadeOutSeconds = Math.max(0, options.fadeOut ?? options.fade ?? 0);
85
+ const fadeInSeconds = Math.max(0, options.fadeIn ?? options.fade ?? 0);
86
+ if (this.currentSong) {
87
+ this.stopSongPlayback(this.currentSong, fadeOutSeconds);
88
+ }
89
+ const { buffer, volume: defaultVolume } = audioEntry;
90
+ const source = this.context.createBufferSource();
91
+ source.buffer = buffer;
92
+ source.loop = options.loop ?? true;
93
+ source.playbackRate.value = options.playbackRate ?? 1;
94
+ const gain = this.context.createGain();
95
+ const targetVolume = Math.max(0, options.volume ?? defaultVolume);
96
+ const now = this.context.currentTime;
97
+ gain.gain.cancelScheduledValues(now);
98
+ gain.gain.setValueAtTime(fadeInSeconds > 0 ? 0 : targetVolume, now);
99
+ if (fadeInSeconds > 0) {
100
+ gain.gain.linearRampToValueAtTime(targetVolume, now + fadeInSeconds);
101
+ }
102
+ source.connect(gain);
103
+ gain.connect(this.masterGain);
104
+ const id = ++this.songIdCounter;
105
+ // one try-catch for each disconnect to avoid one failing to stop the others
106
+ const onEnd = () => {
107
+ try {
108
+ source.disconnect();
109
+ }
110
+ catch { }
111
+ try {
112
+ gain.disconnect();
113
+ }
114
+ catch { }
115
+ if (this.currentSong?.id === id) {
116
+ this.currentSong = undefined;
117
+ }
118
+ };
119
+ source.onended = onEnd;
120
+ source.start(now);
121
+ const controller = {
122
+ name,
123
+ stop: (stopOptions = {}) => {
124
+ const fadeOut = Math.max(0, stopOptions.fadeOut ?? stopOptions.fade ?? 0);
125
+ this.stopSongPlayback({ source, gain }, fadeOut);
126
+ },
127
+ };
128
+ this.currentSong = { id, name, source, gain, controller };
129
+ return controller;
130
+ }
131
+ playSound(name, options = {}) {
132
+ // This will work only if the sonud was triggered by a
133
+ // User interaction.
134
+ if (!this.active) {
135
+ this.unlock();
136
+ }
137
+ const audioEntry = this.sounds[name];
138
+ if (!audioEntry) {
139
+ throw new Error(`Tried to play sound ${name} but it was not found in the library`);
140
+ }
141
+ const { buffer, volume } = audioEntry;
142
+ const source = this.context.createBufferSource();
143
+ source.buffer = buffer;
144
+ source.loop = options.loop ?? false;
145
+ source.playbackRate.value = options.playbackRate ?? 1;
146
+ const gain = this.context.createGain();
147
+ gain.gain.value = Math.max(0, options.volume ?? volume);
148
+ source.connect(gain);
149
+ gain.connect(this.masterGain);
150
+ const waitTime = options.wait ?? 0;
151
+ const audioStart = options.start ?? 0;
152
+ const audioDuration = (() => {
153
+ if (options.duration) {
154
+ return options.duration;
155
+ }
156
+ else if (options.end) {
157
+ return options.end - (options.start ?? 0);
158
+ }
159
+ else {
160
+ return undefined;
161
+ }
162
+ })();
163
+ // one try-catch for each disconnect to avoid one failing to stop the others
164
+ const onEnd = () => {
165
+ try {
166
+ source.disconnect();
167
+ }
168
+ catch { }
169
+ try {
170
+ gain.disconnect();
171
+ }
172
+ catch { }
173
+ };
174
+ source.onended = onEnd;
175
+ source.start(this.context.currentTime + waitTime, audioStart, audioDuration);
176
+ return {
177
+ stop: () => {
178
+ try {
179
+ source.stop();
180
+ }
181
+ catch (e) { }
182
+ onEnd();
183
+ },
184
+ };
185
+ }
186
+ stopSongPlayback(song, fadeOutSeconds) {
187
+ const { source, gain } = song;
188
+ const now = this.context.currentTime;
189
+ const stopAt = now + Math.max(0, fadeOutSeconds);
190
+ try {
191
+ gain.gain.cancelScheduledValues(now);
192
+ gain.gain.setValueAtTime(gain.gain.value, now);
193
+ if (fadeOutSeconds > 0) {
194
+ gain.gain.linearRampToValueAtTime(0, stopAt);
195
+ }
196
+ else {
197
+ gain.gain.setValueAtTime(0, now);
198
+ }
199
+ }
200
+ catch { }
201
+ try {
202
+ source.stop(stopAt);
203
+ }
204
+ catch { }
205
+ }
206
+ }
207
+ export { SoundManager, };
208
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/SoundManager/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export * from "./Assets/Shapes";
2
+ export * from "./CanvasController";
3
+ export * from "./Context";
4
+ export * from "./Events";
5
+ export * from "./Events/decorators";
6
+ export * from "./Game";
7
+ export * from "./GameObject";
8
+ export * from "./GameObject/Decorators";
9
+ export * from "./GameObject/Hitboxes";
10
+ export * from "./GameObject/Hitboxes/ColisionHandler";
11
+ export * from "./GameObject/Library";
12
+ export * from "./GameObject/Walker";
13
+ export * from "./Lib";
14
+ export * from "./Scenes";
15
+ export * from "./Scenes/SceneManager";
16
+ export * from "./Scenes/SceneManager/Transitions";
17
+ export * from "./ScriptedEvents";
18
+ export * from "./SoundManager";
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ export * from "./Assets/Shapes";
2
+ export * from "./CanvasController";
3
+ export * from "./Context";
4
+ export * from "./Events";
5
+ export * from "./Events/decorators";
6
+ export * from "./Game";
7
+ export * from "./GameObject";
8
+ export * from "./GameObject/Decorators";
9
+ export * from "./GameObject/Hitboxes";
10
+ export * from "./GameObject/Hitboxes/ColisionHandler";
11
+ export * from "./GameObject/Library";
12
+ export * from "./GameObject/Walker";
13
+ export * from "./Lib";
14
+ export * from "./Scenes";
15
+ export * from "./Scenes/SceneManager";
16
+ export * from "./Scenes/SceneManager/Transitions";
17
+ export * from "./ScriptedEvents";
18
+ export * from "./SoundManager";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "sliver-engine",
3
+ "version": "0.0.1-alpha-4",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "README.md"
16
+ ],
17
+ "devDependencies": {
18
+ "parcel": "^2.12.0",
19
+ "typescript": "^5.0.0"
20
+ },
21
+ "scripts": {
22
+ "clean": "bun scripts/clean.js",
23
+ "build": "bun run clean && bunx tsc -p tsconfig.build.json",
24
+ "typecheck": "bunx tsc -p tsconfig.json",
25
+ "prepack": "bun run build",
26
+ "debug:start": "parcel src/DebugGame/index.html --open --port 1234 --dist-dir .debugGame/dist --cache-dir .debugGame/.parcel-cache",
27
+ "debug:build": "parcel build src/DebugGame/index.html --dist-dir .debugGame/dist --cache-dir .debugGame/.parcel-cache --public-url ./",
28
+ "docs:install": "cd website && bun install",
29
+ "docs:start": "cd website && bun docusaurus start --port 3025",
30
+ "docs:build": "cd website && bun docusaurus build",
31
+ "docs:serve": "cd website && bun docusaurus serve --port 3025",
32
+ "docs:clear": "cd website && bun docusaurus clear",
33
+ "docs:version": "cd website && bun docusaurus docs:version",
34
+ "release": "bun scripts/release.js"
35
+ }
36
+ }