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.
- package/README.md +37 -0
- package/dist/Assets/Shapes/Arrow.d.ts +12 -0
- package/dist/Assets/Shapes/Arrow.d.ts.map +1 -0
- package/dist/Assets/Shapes/Arrow.js +32 -0
- package/dist/Assets/Shapes/Arrow.js.map +1 -0
- package/dist/Assets/Shapes/index.d.ts +4 -0
- package/dist/Assets/Shapes/index.d.ts.map +1 -0
- package/dist/Assets/Shapes/index.js +2 -0
- package/dist/Assets/Shapes/index.js.map +1 -0
- package/dist/CanvasController/SpriteLibrary.d.ts +58 -0
- package/dist/CanvasController/SpriteLibrary.d.ts.map +1 -0
- package/dist/CanvasController/SpriteLibrary.js +412 -0
- package/dist/CanvasController/SpriteLibrary.js.map +1 -0
- package/dist/CanvasController/Transformations.d.ts +5 -0
- package/dist/CanvasController/Transformations.d.ts.map +1 -0
- package/dist/CanvasController/Transformations.js +19 -0
- package/dist/CanvasController/Transformations.js.map +1 -0
- package/dist/CanvasController/index.d.ts +238 -0
- package/dist/CanvasController/index.d.ts.map +1 -0
- package/dist/CanvasController/index.js +418 -0
- package/dist/CanvasController/index.js.map +1 -0
- package/dist/Context/index.d.ts +53 -0
- package/dist/Context/index.d.ts.map +1 -0
- package/dist/Context/index.js +103 -0
- package/dist/Context/index.js.map +1 -0
- package/dist/Events/decorators.d.ts +74 -0
- package/dist/Events/decorators.d.ts.map +1 -0
- package/dist/Events/decorators.js +417 -0
- package/dist/Events/decorators.js.map +1 -0
- package/dist/Events/index.d.ts +50 -0
- package/dist/Events/index.d.ts.map +1 -0
- package/dist/Events/index.js +73 -0
- package/dist/Events/index.js.map +1 -0
- package/dist/Events/keyAccumulator.d.ts +9 -0
- package/dist/Events/keyAccumulator.d.ts.map +1 -0
- package/dist/Events/keyAccumulator.js +17 -0
- package/dist/Events/keyAccumulator.js.map +1 -0
- package/dist/Game/Saves/index.d.ts +39 -0
- package/dist/Game/Saves/index.d.ts.map +1 -0
- package/dist/Game/Saves/index.js +213 -0
- package/dist/Game/Saves/index.js.map +1 -0
- package/dist/Game/index.d.ts +45 -0
- package/dist/Game/index.d.ts.map +1 -0
- package/dist/Game/index.js +101 -0
- package/dist/Game/index.js.map +1 -0
- package/dist/GameObject/Decorators/index.d.ts +81 -0
- package/dist/GameObject/Decorators/index.d.ts.map +1 -0
- package/dist/GameObject/Decorators/index.js +183 -0
- package/dist/GameObject/Decorators/index.js.map +1 -0
- package/dist/GameObject/Hitboxes/ColisionHandler.d.ts +23 -0
- package/dist/GameObject/Hitboxes/ColisionHandler.d.ts.map +1 -0
- package/dist/GameObject/Hitboxes/ColisionHandler.js +458 -0
- package/dist/GameObject/Hitboxes/ColisionHandler.js.map +1 -0
- package/dist/GameObject/Hitboxes/index.d.ts +50 -0
- package/dist/GameObject/Hitboxes/index.d.ts.map +1 -0
- package/dist/GameObject/Hitboxes/index.js +306 -0
- package/dist/GameObject/Hitboxes/index.js.map +1 -0
- package/dist/GameObject/Library/Button.d.ts +15 -0
- package/dist/GameObject/Library/Button.d.ts.map +1 -0
- package/dist/GameObject/Library/Button.js +45 -0
- package/dist/GameObject/Library/Button.js.map +1 -0
- package/dist/GameObject/Library/Clickableshape.d.ts +14 -0
- package/dist/GameObject/Library/Clickableshape.d.ts.map +1 -0
- package/dist/GameObject/Library/Clickableshape.js +36 -0
- package/dist/GameObject/Library/Clickableshape.js.map +1 -0
- package/dist/GameObject/Library/FloatingView.d.ts +20 -0
- package/dist/GameObject/Library/FloatingView.d.ts.map +1 -0
- package/dist/GameObject/Library/FloatingView.js +39 -0
- package/dist/GameObject/Library/FloatingView.js.map +1 -0
- package/dist/GameObject/Library/Group.d.ts +8 -0
- package/dist/GameObject/Library/Group.d.ts.map +1 -0
- package/dist/GameObject/Library/Group.js +26 -0
- package/dist/GameObject/Library/Group.js.map +1 -0
- package/dist/GameObject/Library/HoverableShape.d.ts +15 -0
- package/dist/GameObject/Library/HoverableShape.d.ts.map +1 -0
- package/dist/GameObject/Library/HoverableShape.js +41 -0
- package/dist/GameObject/Library/HoverableShape.js.map +1 -0
- package/dist/GameObject/Library/SceneTranslator.d.ts +14 -0
- package/dist/GameObject/Library/SceneTranslator.d.ts.map +1 -0
- package/dist/GameObject/Library/SceneTranslator.js +104 -0
- package/dist/GameObject/Library/SceneTranslator.js.map +1 -0
- package/dist/GameObject/Library/ScrollView.d.ts +41 -0
- package/dist/GameObject/Library/ScrollView.d.ts.map +1 -0
- package/dist/GameObject/Library/ScrollView.js +112 -0
- package/dist/GameObject/Library/ScrollView.js.map +1 -0
- package/dist/GameObject/Library/ShowOnHover.d.ts +13 -0
- package/dist/GameObject/Library/ShowOnHover.d.ts.map +1 -0
- package/dist/GameObject/Library/ShowOnHover.js +33 -0
- package/dist/GameObject/Library/ShowOnHover.js.map +1 -0
- package/dist/GameObject/Library/Text.d.ts +25 -0
- package/dist/GameObject/Library/Text.d.ts.map +1 -0
- package/dist/GameObject/Library/Text.js +35 -0
- package/dist/GameObject/Library/Text.js.map +1 -0
- package/dist/GameObject/Library/TextBox.d.ts +45 -0
- package/dist/GameObject/Library/TextBox.d.ts.map +1 -0
- package/dist/GameObject/Library/TextBox.js +170 -0
- package/dist/GameObject/Library/TextBox.js.map +1 -0
- package/dist/GameObject/Library/index.d.ts +11 -0
- package/dist/GameObject/Library/index.d.ts.map +1 -0
- package/dist/GameObject/Library/index.js +11 -0
- package/dist/GameObject/Library/index.js.map +1 -0
- package/dist/GameObject/Walker.d.ts +91 -0
- package/dist/GameObject/Walker.d.ts.map +1 -0
- package/dist/GameObject/Walker.js +634 -0
- package/dist/GameObject/Walker.js.map +1 -0
- package/dist/GameObject/index.d.ts +97 -0
- package/dist/GameObject/index.d.ts.map +1 -0
- package/dist/GameObject/index.js +386 -0
- package/dist/GameObject/index.js.map +1 -0
- package/dist/Lib/Math.d.ts +2 -0
- package/dist/Lib/Math.d.ts.map +1 -0
- package/dist/Lib/Math.js +4 -0
- package/dist/Lib/Math.js.map +1 -0
- package/dist/Lib/MinHeap/index.d.ts +12 -0
- package/dist/Lib/MinHeap/index.d.ts.map +1 -0
- package/dist/Lib/MinHeap/index.js +64 -0
- package/dist/Lib/MinHeap/index.js.map +1 -0
- package/dist/Lib/Mixins/index.d.ts +8 -0
- package/dist/Lib/Mixins/index.d.ts.map +1 -0
- package/dist/Lib/Mixins/index.js +45 -0
- package/dist/Lib/Mixins/index.js.map +1 -0
- package/dist/Lib/PathfindingProxy/index.d.ts +16 -0
- package/dist/Lib/PathfindingProxy/index.d.ts.map +1 -0
- package/dist/Lib/PathfindingProxy/index.js +48 -0
- package/dist/Lib/PathfindingProxy/index.js.map +1 -0
- package/dist/Lib/Vector/index.d.ts +24 -0
- package/dist/Lib/Vector/index.d.ts.map +1 -0
- package/dist/Lib/Vector/index.js +94 -0
- package/dist/Lib/Vector/index.js.map +1 -0
- package/dist/Lib/index.d.ts +6 -0
- package/dist/Lib/index.d.ts.map +1 -0
- package/dist/Lib/index.js +6 -0
- package/dist/Lib/index.js.map +1 -0
- package/dist/Scenes/SceneManager/Transitions.d.ts +37 -0
- package/dist/Scenes/SceneManager/Transitions.d.ts.map +1 -0
- package/dist/Scenes/SceneManager/Transitions.js +165 -0
- package/dist/Scenes/SceneManager/Transitions.js.map +1 -0
- package/dist/Scenes/SceneManager/index.d.ts +24 -0
- package/dist/Scenes/SceneManager/index.d.ts.map +1 -0
- package/dist/Scenes/SceneManager/index.js +151 -0
- package/dist/Scenes/SceneManager/index.js.map +1 -0
- package/dist/Scenes/index.d.ts +44 -0
- package/dist/Scenes/index.d.ts.map +1 -0
- package/dist/Scenes/index.js +252 -0
- package/dist/Scenes/index.js.map +1 -0
- package/dist/ScriptedEvents/Combinators/index.d.ts +17 -0
- package/dist/ScriptedEvents/Combinators/index.d.ts.map +1 -0
- package/dist/ScriptedEvents/Combinators/index.js +127 -0
- package/dist/ScriptedEvents/Combinators/index.js.map +1 -0
- package/dist/ScriptedEvents/Library/TextBoxSequence.d.ts +7 -0
- package/dist/ScriptedEvents/Library/TextBoxSequence.d.ts.map +1 -0
- package/dist/ScriptedEvents/Library/TextBoxSequence.js +16 -0
- package/dist/ScriptedEvents/Library/TextBoxSequence.js.map +1 -0
- package/dist/ScriptedEvents/Library/WaitForKeyPress.d.ts +2 -0
- package/dist/ScriptedEvents/Library/WaitForKeyPress.d.ts.map +1 -0
- package/dist/ScriptedEvents/Library/WaitForKeyPress.js +1 -0
- package/dist/ScriptedEvents/Library/WaitForKeyPress.js.map +1 -0
- package/dist/ScriptedEvents/Library/WalkCharacter.d.ts +4 -0
- package/dist/ScriptedEvents/Library/WalkCharacter.d.ts.map +1 -0
- package/dist/ScriptedEvents/Library/WalkCharacter.js +14 -0
- package/dist/ScriptedEvents/Library/WalkCharacter.js.map +1 -0
- package/dist/ScriptedEvents/Library/index.d.ts +3 -0
- package/dist/ScriptedEvents/Library/index.d.ts.map +1 -0
- package/dist/ScriptedEvents/Library/index.js +3 -0
- package/dist/ScriptedEvents/Library/index.js.map +1 -0
- package/dist/ScriptedEvents/index.d.ts +42 -0
- package/dist/ScriptedEvents/index.d.ts.map +1 -0
- package/dist/ScriptedEvents/index.js +61 -0
- package/dist/ScriptedEvents/index.js.map +1 -0
- package/dist/SoundManager/index.d.ts +69 -0
- package/dist/SoundManager/index.d.ts.map +1 -0
- package/dist/SoundManager/index.js +208 -0
- package/dist/SoundManager/index.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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":"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"}
|
|
@@ -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"}
|