@jolly-pixel/engine 1.2.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -18
- package/dist/actor/Actor.d.ts +27 -17
- package/dist/actor/Actor.d.ts.map +1 -1
- package/dist/actor/Actor.js +88 -64
- package/dist/actor/Actor.js.map +1 -1
- package/dist/actor/ActorComponent.d.ts +13 -8
- package/dist/actor/ActorComponent.d.ts.map +1 -1
- package/dist/actor/ActorComponent.js +15 -11
- package/dist/actor/ActorComponent.js.map +1 -1
- package/dist/actor/ActorTree.d.ts +20 -19
- package/dist/actor/ActorTree.d.ts.map +1 -1
- package/dist/actor/ActorTree.js +0 -1
- package/dist/actor/ActorTree.js.map +1 -1
- package/dist/actor/Transform.d.ts +40 -27
- package/dist/actor/Transform.d.ts.map +1 -1
- package/dist/actor/Transform.js +150 -68
- package/dist/actor/Transform.js.map +1 -1
- package/dist/actor/index.d.ts +1 -0
- package/dist/actor/index.d.ts.map +1 -1
- package/dist/actor/index.js +1 -0
- package/dist/actor/index.js.map +1 -1
- package/dist/adapters/global.d.ts +3 -3
- package/dist/adapters/global.d.ts.map +1 -1
- package/dist/adapters/global.js +1 -1
- package/dist/adapters/global.js.map +1 -1
- package/dist/audio/AudioManager.d.ts +2 -2
- package/dist/audio/AudioManager.d.ts.map +1 -1
- package/dist/audio/AudioManager.js +2 -2
- package/dist/audio/AudioManager.js.map +1 -1
- package/dist/components/camera/Camera3DControls.d.ts +1 -1
- package/dist/components/camera/Camera3DControls.d.ts.map +1 -1
- package/dist/components/camera/Camera3DControls.js +4 -4
- package/dist/components/camera/Camera3DControls.js.map +1 -1
- package/dist/components/renderers/model/ModelRenderer.d.ts +2 -2
- package/dist/components/renderers/model/ModelRenderer.d.ts.map +1 -1
- package/dist/components/renderers/model/ModelRenderer.js +2 -2
- package/dist/components/renderers/model/ModelRenderer.js.map +1 -1
- package/dist/components/renderers/sprite/SpriteRenderer.class.d.ts +2 -2
- package/dist/components/renderers/sprite/SpriteRenderer.class.d.ts.map +1 -1
- package/dist/components/renderers/sprite/SpriteRenderer.class.js +2 -2
- package/dist/components/renderers/sprite/SpriteRenderer.class.js.map +1 -1
- package/dist/components/renderers/text/TextRenderer.class.d.ts +2 -2
- package/dist/components/renderers/text/TextRenderer.class.d.ts.map +1 -1
- package/dist/components/renderers/text/TextRenderer.class.js +3 -3
- package/dist/components/renderers/text/TextRenderer.class.js.map +1 -1
- package/dist/components/renderers/tiled/TileMapRenderer.d.ts +2 -2
- package/dist/components/renderers/tiled/TileMapRenderer.d.ts.map +1 -1
- package/dist/components/renderers/tiled/TileMapRenderer.js +2 -2
- package/dist/components/renderers/tiled/TileMapRenderer.js.map +1 -1
- package/dist/components/renderers/tiled/TileObject.d.ts +1 -1
- package/dist/components/renderers/tiled/TileObject.d.ts.map +1 -1
- package/dist/components/renderers/tiled/TileObject.js +4 -4
- package/dist/components/renderers/tiled/TileObject.js.map +1 -1
- package/dist/components/script/Behavior.d.ts +4 -3
- package/dist/components/script/Behavior.d.ts.map +1 -1
- package/dist/components/script/Behavior.js +0 -1
- package/dist/components/script/Behavior.js.map +1 -1
- package/dist/components/script/BehaviorInitializer.d.ts +5 -4
- package/dist/components/script/BehaviorInitializer.d.ts.map +1 -1
- package/dist/components/script/BehaviorInitializer.js +1 -2
- package/dist/components/script/BehaviorInitializer.js.map +1 -1
- package/dist/components/types.d.ts +1 -1
- package/dist/components/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/systems/{Scene.d.ts → SceneManager.d.ts} +8 -8
- package/dist/systems/SceneManager.d.ts.map +1 -0
- package/dist/systems/{Scene.js → SceneManager.js} +4 -4
- package/dist/systems/SceneManager.js.map +1 -0
- package/dist/systems/{GameInstance.d.ts → World.d.ts} +13 -8
- package/dist/systems/World.d.ts.map +1 -0
- package/dist/systems/{GameInstance.js → World.js} +11 -9
- package/dist/systems/World.js.map +1 -0
- package/dist/systems/generators/IntegerIncrement.d.ts +6 -0
- package/dist/systems/generators/IntegerIncrement.d.ts.map +1 -0
- package/dist/systems/generators/IntegerIncrement.js +10 -0
- package/dist/systems/generators/IntegerIncrement.js.map +1 -0
- package/dist/systems/generators/PersistentIdIncrement.d.ts +8 -0
- package/dist/systems/generators/PersistentIdIncrement.d.ts.map +1 -0
- package/dist/systems/generators/PersistentIdIncrement.js +23 -0
- package/dist/systems/generators/PersistentIdIncrement.js.map +1 -0
- package/dist/systems/index.d.ts +4 -2
- package/dist/systems/index.d.ts.map +1 -1
- package/dist/systems/index.js +4 -2
- package/dist/systems/index.js.map +1 -1
- package/dist/systems/rendering/ThreeRenderer.d.ts +3 -3
- package/dist/systems/rendering/ThreeRenderer.d.ts.map +1 -1
- package/dist/systems/rendering/ThreeRenderer.js.map +1 -1
- package/dist/{utils/types.d.ts → types.d.ts} +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/UINode.d.ts +3 -2
- package/dist/ui/UINode.d.ts.map +1 -1
- package/dist/ui/UINode.js +6 -6
- package/dist/ui/UINode.js.map +1 -1
- package/dist/ui/UIRenderer.d.ts +6 -6
- package/dist/ui/UIRenderer.d.ts.map +1 -1
- package/dist/ui/UIRenderer.js +16 -17
- package/dist/ui/UIRenderer.js.map +1 -1
- package/dist/ui/UISprite.d.ts +3 -2
- package/dist/ui/UISprite.d.ts.map +1 -1
- package/dist/ui/UISprite.js +2 -3
- package/dist/ui/UISprite.js.map +1 -1
- package/dist/ui/UIText.d.ts +4 -3
- package/dist/ui/UIText.d.ts.map +1 -1
- package/dist/ui/UIText.js.map +1 -1
- package/dist/ui/common.d.ts +2 -0
- package/dist/ui/common.d.ts.map +1 -0
- package/dist/ui/common.js +2 -0
- package/dist/ui/common.js.map +1 -0
- package/dist/utils/createViewHelper.d.ts +1 -1
- package/dist/utils/createViewHelper.d.ts.map +1 -1
- package/dist/utils/createViewHelper.js +4 -4
- package/dist/utils/createViewHelper.js.map +1 -1
- package/package.json +5 -3
- package/dist/systems/GameInstance.d.ts.map +0 -1
- package/dist/systems/GameInstance.js.map +0 -1
- package/dist/systems/Scene.d.ts.map +0 -1
- package/dist/systems/Scene.js.map +0 -1
- package/dist/utils/types.d.ts.map +0 -1
- package/dist/utils/types.js.map +0 -1
- /package/dist/{utils/types.js → types.js} +0 -0
|
@@ -1,32 +1,37 @@
|
|
|
1
1
|
import * as THREE from "three";
|
|
2
2
|
import { type Renderer } from "./rendering/index.ts";
|
|
3
3
|
import { Actor, type ActorOptions } from "../actor/index.ts";
|
|
4
|
-
import { type
|
|
4
|
+
import { type SceneContract } from "./SceneManager.ts";
|
|
5
5
|
import { Input } from "../controls/Input.class.ts";
|
|
6
6
|
import { GlobalAudio } from "../audio/GlobalAudio.ts";
|
|
7
7
|
import { type WindowAdapter } from "../adapters/window.ts";
|
|
8
8
|
import { type GlobalsAdapter } from "../adapters/global.ts";
|
|
9
|
-
export interface
|
|
9
|
+
export interface WorldOptions<TContext = WorldDefaultContext> {
|
|
10
10
|
enableOnExit?: boolean;
|
|
11
|
-
|
|
11
|
+
sceneManager: SceneContract;
|
|
12
12
|
input?: Input;
|
|
13
13
|
audio?: GlobalAudio;
|
|
14
|
+
context?: TContext;
|
|
14
15
|
windowAdapter?: WindowAdapter;
|
|
15
16
|
globalsAdapter?: GlobalsAdapter;
|
|
16
17
|
}
|
|
17
|
-
export
|
|
18
|
+
export interface WorldDefaultContext {
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
}
|
|
21
|
+
export declare class World<T = THREE.WebGLRenderer, TContext = WorldDefaultContext> {
|
|
18
22
|
#private;
|
|
19
23
|
renderer: Renderer<T>;
|
|
20
24
|
input: Input;
|
|
21
25
|
loadingManager: THREE.LoadingManager;
|
|
22
|
-
|
|
26
|
+
sceneManager: SceneContract;
|
|
23
27
|
audio: GlobalAudio;
|
|
24
|
-
|
|
28
|
+
context: TContext;
|
|
29
|
+
constructor(renderer: Renderer<T>, options: WorldOptions<TContext>);
|
|
25
30
|
setLoadingManager(manager: THREE.LoadingManager): this;
|
|
26
|
-
createActor(name: string, options
|
|
31
|
+
createActor(name: string, options?: Omit<ActorOptions<TContext>, "name">): Actor<TContext>;
|
|
27
32
|
connect(): this;
|
|
28
33
|
disconnect(): this;
|
|
29
34
|
update(deltaTime: number): boolean;
|
|
30
35
|
render(): void;
|
|
31
36
|
}
|
|
32
|
-
//# sourceMappingURL=
|
|
37
|
+
//# sourceMappingURL=World.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"World.d.ts","sourceRoot":"","sources":["../../src/systems/World.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EACL,KAAK,QAAQ,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,EACL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,YAAY,CAC3B,QAAQ,GAAG,mBAAmB;IAE9B,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,YAAY,EAAE,aAAa,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,KAAK,CAChB,CAAC,GAAG,KAAK,CAAC,aAAa,EACvB,QAAQ,GAAG,mBAAmB;;IAE9B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,EAAE,KAAK,CAAC,cAAc,CAA8B;IAClE,YAAY,EAAE,aAAa,CAAC;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,QAAQ,CAAC;gBAKhB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC;IAqBjC,iBAAiB,CACf,OAAO,EAAE,KAAK,CAAC,cAAc;IAO/B,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAM,GACjD,KAAK,CAAC,QAAQ,CAAC;IAOlB,OAAO;IAQP,UAAU;IAOV,MAAM,CACJ,SAAS,EAAE,MAAM,GAChB,OAAO;IAaV,MAAM;CAGP"}
|
|
@@ -3,24 +3,26 @@ import * as THREE from "three";
|
|
|
3
3
|
// Import Internal Dependencies
|
|
4
4
|
import {} from "./rendering/index.js";
|
|
5
5
|
import { Actor } from "../actor/index.js";
|
|
6
|
-
import {} from "./
|
|
6
|
+
import {} from "./SceneManager.js";
|
|
7
7
|
import { Input } from "../controls/Input.class.js";
|
|
8
8
|
import { GlobalAudio } from "../audio/GlobalAudio.js";
|
|
9
9
|
import { BrowserWindowAdapter } from "../adapters/window.js";
|
|
10
10
|
import { BrowserGlobalsAdapter } from "../adapters/global.js";
|
|
11
|
-
export class
|
|
11
|
+
export class World {
|
|
12
12
|
renderer;
|
|
13
13
|
input;
|
|
14
14
|
loadingManager = new THREE.LoadingManager();
|
|
15
|
-
|
|
15
|
+
sceneManager;
|
|
16
16
|
audio;
|
|
17
|
+
context;
|
|
17
18
|
#windowAdapter;
|
|
18
19
|
constructor(renderer, options) {
|
|
19
|
-
const {
|
|
20
|
+
const { sceneManager, input = new Input(renderer.canvas, { enableOnExit: options.enableOnExit ?? false }), audio = new GlobalAudio(), context = Object.create(null), windowAdapter = new BrowserWindowAdapter(), globalsAdapter = new BrowserGlobalsAdapter() } = options;
|
|
20
21
|
this.renderer = renderer;
|
|
21
|
-
this.
|
|
22
|
+
this.sceneManager = sceneManager;
|
|
22
23
|
this.input = input;
|
|
23
24
|
this.audio = audio;
|
|
25
|
+
this.context = context;
|
|
24
26
|
this.#windowAdapter = windowAdapter;
|
|
25
27
|
globalsAdapter.setGame(this);
|
|
26
28
|
}
|
|
@@ -28,7 +30,7 @@ export class GameInstance {
|
|
|
28
30
|
this.loadingManager = manager;
|
|
29
31
|
return this;
|
|
30
32
|
}
|
|
31
|
-
createActor(name, options) {
|
|
33
|
+
createActor(name, options = {}) {
|
|
32
34
|
return new Actor(this, {
|
|
33
35
|
name,
|
|
34
36
|
...options
|
|
@@ -37,7 +39,7 @@ export class GameInstance {
|
|
|
37
39
|
connect() {
|
|
38
40
|
this.input.connect();
|
|
39
41
|
this.#windowAdapter.addEventListener("resize", this.renderer.resize);
|
|
40
|
-
this.
|
|
42
|
+
this.sceneManager.awake();
|
|
41
43
|
return this;
|
|
42
44
|
}
|
|
43
45
|
disconnect() {
|
|
@@ -47,7 +49,7 @@ export class GameInstance {
|
|
|
47
49
|
}
|
|
48
50
|
update(deltaTime) {
|
|
49
51
|
this.input.update();
|
|
50
|
-
this.
|
|
52
|
+
this.sceneManager.update(deltaTime);
|
|
51
53
|
if (this.input.exited) {
|
|
52
54
|
this.renderer.clear();
|
|
53
55
|
return true;
|
|
@@ -58,4 +60,4 @@ export class GameInstance {
|
|
|
58
60
|
this.renderer.draw();
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
|
-
//# sourceMappingURL=
|
|
63
|
+
//# sourceMappingURL=World.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"World.js","sourceRoot":"","sources":["../../src/systems/World.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntegerIncrement.d.ts","sourceRoot":"","sources":["../../../src/systems/generators/IntegerIncrement.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;;IAG3B,IAAI,IAAI,MAAM;IAId,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntegerIncrement.js","sourceRoot":"","sources":["../../../src/systems/generators/IntegerIncrement.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAgB;IAC3B,MAAM,GAAG,CAAC,CAAC;IAEX,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersistentIdIncrement.d.ts","sourceRoot":"","sources":["../../../src/systems/generators/PersistentIdIncrement.ts"],"names":[],"mappings":"AAAA,qBAAa,qBAAqB;;IAGhC,IAAI,IAAI,MAAM;IAYd,GAAG,CACD,EAAE,EAAE,MAAM,GACT,OAAO;IAIV,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,QAAQ,IAAI,MAAM;CAM1B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export class PersistentIdIncrement {
|
|
2
|
+
#ids = new Set();
|
|
3
|
+
next() {
|
|
4
|
+
let id;
|
|
5
|
+
do {
|
|
6
|
+
id = PersistentIdIncrement.randomId();
|
|
7
|
+
} while (this.#ids.has(id));
|
|
8
|
+
this.#ids.add(id);
|
|
9
|
+
return id;
|
|
10
|
+
}
|
|
11
|
+
has(id) {
|
|
12
|
+
return this.#ids.has(id);
|
|
13
|
+
}
|
|
14
|
+
clear() {
|
|
15
|
+
this.#ids.clear();
|
|
16
|
+
}
|
|
17
|
+
static randomId() {
|
|
18
|
+
const bytes = new Uint8Array(8);
|
|
19
|
+
crypto.getRandomValues(bytes);
|
|
20
|
+
return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=PersistentIdIncrement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersistentIdIncrement.js","sourceRoot":"","sources":["../../../src/systems/generators/PersistentIdIncrement.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAqB;IAChC,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzB,IAAI;QACF,IAAI,EAAU,CAAC;QACf,GAAG,CAAC;YACF,EAAE,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAC;QACxC,CAAC,QACM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAE1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CACD,EAAU;QAEV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,QAAQ;QACb,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;CACF"}
|
package/dist/systems/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { AssetManager, type AssetOnProgressCallback } from "./asset/Manager.ts";
|
|
2
2
|
export * from "./asset/Base.ts";
|
|
3
3
|
export type { AssetLoaderCallback, AssetLoaderContext, AssetLoaderOptions } from "./asset/Registry.ts";
|
|
4
|
-
export * from "./
|
|
4
|
+
export * from "./World.ts";
|
|
5
5
|
export * from "./FixedTimeStep.ts";
|
|
6
6
|
export * from "./rendering/index.ts";
|
|
7
|
-
export * from "./
|
|
7
|
+
export * from "./SceneManager.ts";
|
|
8
|
+
export * from "./generators/IntegerIncrement.ts";
|
|
9
|
+
export * from "./generators/PersistentIdIncrement.ts";
|
|
8
10
|
export type { AssetOnProgressCallback };
|
|
9
11
|
export declare const Assets: AssetManager;
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/systems/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAE5B,cAAc,iBAAiB,CAAC;AAChC,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/systems/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAE5B,cAAc,iBAAiB,CAAC;AAChC,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AAEtD,YAAY,EACV,uBAAuB,EACxB,CAAC;AAEF,eAAO,MAAM,MAAM,cAAqB,CAAC"}
|
package/dist/systems/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// Import Internal Dependencies
|
|
2
2
|
import { AssetManager } from "./asset/Manager.js";
|
|
3
3
|
export * from "./asset/Base.js";
|
|
4
|
-
export * from "./
|
|
4
|
+
export * from "./World.js";
|
|
5
5
|
export * from "./FixedTimeStep.js";
|
|
6
6
|
export * from "./rendering/index.js";
|
|
7
|
-
export * from "./
|
|
7
|
+
export * from "./SceneManager.js";
|
|
8
|
+
export * from "./generators/IntegerIncrement.js";
|
|
9
|
+
export * from "./generators/PersistentIdIncrement.js";
|
|
8
10
|
export const Assets = new AssetManager();
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/systems/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EACL,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAE5B,cAAc,iBAAiB,CAAC;AAOhC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/systems/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EACL,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAE5B,cAAc,iBAAiB,CAAC;AAOhC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AAMtD,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -2,7 +2,7 @@ import * as THREE from "three";
|
|
|
2
2
|
import { type Pass } from "three/addons/postprocessing/EffectComposer.js";
|
|
3
3
|
import { EventEmitter } from "@posva/event-emitter";
|
|
4
4
|
import type { Renderer, RenderComponent, RendererEvents } from "./Renderer.ts";
|
|
5
|
-
import type {
|
|
5
|
+
import type { SceneContract } from "../SceneManager.ts";
|
|
6
6
|
import { type RenderMode, type RenderStrategy } from "./RenderStrategy.ts";
|
|
7
7
|
export type ThreeRendererEvents = RendererEvents;
|
|
8
8
|
export interface ThreeRendererOptions {
|
|
@@ -10,14 +10,14 @@ export interface ThreeRendererOptions {
|
|
|
10
10
|
* @default "direct"
|
|
11
11
|
*/
|
|
12
12
|
renderMode: RenderMode;
|
|
13
|
-
scene:
|
|
13
|
+
scene: SceneContract;
|
|
14
14
|
}
|
|
15
15
|
export declare class ThreeRenderer extends EventEmitter<ThreeRendererEvents> implements Renderer {
|
|
16
16
|
webGLRenderer: THREE.WebGLRenderer;
|
|
17
17
|
renderComponents: RenderComponent[];
|
|
18
18
|
renderStrategy: RenderStrategy;
|
|
19
19
|
ratio: number | null;
|
|
20
|
-
scene:
|
|
20
|
+
scene: SceneContract;
|
|
21
21
|
constructor(canvas: HTMLCanvasElement, options: ThreeRendererOptions);
|
|
22
22
|
get canvas(): HTMLCanvasElement;
|
|
23
23
|
getSource(): THREE.WebGLRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreeRenderer.d.ts","sourceRoot":"","sources":["../../../src/systems/rendering/ThreeRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,+CAA+C,CAAC;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ThreeRenderer.d.ts","sourceRoot":"","sources":["../../../src/systems/rendering/ThreeRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,+CAA+C,CAAC;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EAGpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAEjD,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,qBAAa,aAAc,SAAQ,YAAY,CAC7C,mBAAmB,CACnB,YAAW,QAAQ;IACnB,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC;IACnC,gBAAgB,EAAE,eAAe,EAAE,CAAM;IACzC,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5B,KAAK,EAAE,aAAa,CAAC;gBAGnB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,oBAAoB;IAU/B,IAAI,MAAM,sBAET;IAED,SAAS;IAIT,kBAAkB,CAChB,SAAS,EAAE,eAAe,GACzB,IAAI;IAQP,qBAAqB,CACnB,SAAS,EAAE,eAAe,GACzB,IAAI;IAeP,aAAa,CACX,IAAI,EAAE,UAAU,GACf,IAAI;IAuBP,UAAU,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI;IAUpC,QAAQ,CACN,KAAK,GAAE,MAAM,GAAG,IAAW;IAa7B,MAAM,aA4CJ;IAEF,IAAI;IAWJ,MAAM,CACJ,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;KAAE,KAAK,IAAI;IAK7D,KAAK;CAGN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreeRenderer.js","sourceRoot":"","sources":["../../../src/systems/rendering/ThreeRenderer.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAa,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AASpD,OAAO,EAGL,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAY7B,MAAM,OAAO,aAAc,SAAQ,YAElC;IACC,aAAa,CAAsB;IACnC,gBAAgB,GAAsB,EAAE,CAAC;IACzC,cAAc,CAAiB;IAC/B,KAAK,GAAkB,IAAI,CAAC;IAC5B,KAAK,
|
|
1
|
+
{"version":3,"file":"ThreeRenderer.js","sourceRoot":"","sources":["../../../src/systems/rendering/ThreeRenderer.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAa,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AASpD,OAAO,EAGL,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAY7B,MAAM,OAAO,aAAc,SAAQ,YAElC;IACC,aAAa,CAAsB;IACnC,gBAAgB,GAAsB,EAAE,CAAC;IACzC,cAAc,CAAiB;IAC/B,KAAK,GAAkB,IAAI,CAAC;IAC5B,KAAK,CAAgB;IAErB,YACE,MAAyB,EACzB,OAA6B;QAE7B,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC;QAEjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,kBAAkB,CAChB,SAA0B;QAE1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,cAAc,YAAY,sBAAsB,EAAE,CAAC;YAC1D,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC;YACrE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,qBAAqB,CACnB,SAA0B;QAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,YAAY,sBAAsB,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CACrC,CAAC,IAAI,EAAE,EAAE,CAAE,IAAmB,CAAC,MAAM,KAAK,SAAS,CACnD,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,aAAa,CACX,IAAgB;QAEhB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrE,CAAC;aACI,CAAC;YACJ,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAExD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrC,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;gBAC1D,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,IAAI,sBAAsB,CAC9C,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,GAAG,OAAe;QAC3B,IAAI,IAAI,CAAC,cAAc,YAAY,sBAAsB,EAAE,CAAC;YAC1D,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CACN,QAAuB,IAAI;QAE3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5B,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,EAAE;QACZ,IAAI,KAAa,CAAC;QAClB,IAAI,MAAc,CAAC;QACnB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBACxE,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;gBACpC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACnE,CAAC;iBACI,CAAC;gBACJ,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;gBAClC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;aACI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC;YAC3D,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC3B,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;YAC/B,CAAC;iBACI,CAAC;gBACJ,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC;gBAClD,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC;YACtD,CAAC;QACH,CAAC;QAED,IACE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,KAAK,KAAK;YAC7C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,KAAK,MAAM,EAC/C,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC1C,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpD,IAAI,eAAe,YAAY,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBACvD,eAAe,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;gBAC1C,CAAC;gBACD,IAAI,eAAe,YAAY,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBACxD,eAAe,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;oBAClC,eAAe,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;oBAClC,eAAe,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC;oBACjC,eAAe,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;gBACvC,CAAC;gBACD,eAAe,CAAC,sBAAsB,EAAE,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;IAEF,IAAI;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,IAAI,CAAC,cAAc,CAAC,MAAM,CACxB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EACtB,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CACJ,QAA2D;QAE3D,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF;AAED,SAAS,mBAAmB,CAC1B,MAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC;QACvC,MAAM;QACN,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9B,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC;IACjD,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAAC;IAChD,QAAQ,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAEpC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,QAAQ,CAAC;KACpC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACxE,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/ui/UINode.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as THREE from "three";
|
|
2
|
+
import type { WorldDefaultContext } from "../systems/World.ts";
|
|
2
3
|
import { type Actor, ActorComponent } from "../actor/index.ts";
|
|
3
4
|
export type UIAnchorX = "left" | "center" | "right";
|
|
4
5
|
export type UIAnchorY = "top" | "center" | "bottom";
|
|
@@ -32,9 +33,9 @@ export interface UINodeOptions extends UINodePositionalOptions {
|
|
|
32
33
|
y?: number;
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
|
-
export declare class UINode extends ActorComponent {
|
|
36
|
+
export declare class UINode<TContext = WorldDefaultContext> extends ActorComponent<TContext> {
|
|
36
37
|
#private;
|
|
37
|
-
constructor(actor: Actor
|
|
38
|
+
constructor(actor: Actor<TContext>, options?: UINodeOptions);
|
|
38
39
|
get size(): {
|
|
39
40
|
width: number;
|
|
40
41
|
height: number;
|
package/dist/ui/UINode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UINode.d.ts","sourceRoot":"","sources":["../../src/ui/UINode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,KAAK,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG/D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AACpD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAkBpD,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE;QACP,CAAC,CAAC,EAAE,SAAS,CAAC;QACd,CAAC,CAAC,EAAE,SAAS,CAAC;KACf,CAAC;IACF,MAAM,CAAC,EAAE;QACP,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;KACZ,CAAC;CACH;AAED,MAAM,WAAW,aAAc,SAAQ,uBAAuB;IAC5D;;;OAGG;IACH,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF;;;;;OAKG;IACH,KAAK,CAAC,EAAE;QACN,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;KACZ,CAAC;CACH;AAED,qBAAa,
|
|
1
|
+
{"version":3,"file":"UINode.d.ts","sourceRoot":"","sources":["../../src/ui/UINode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,KAAK,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG/D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AACpD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAkBpD,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE;QACP,CAAC,CAAC,EAAE,SAAS,CAAC;QACd,CAAC,CAAC,EAAE,SAAS,CAAC;KACf,CAAC;IACF,MAAM,CAAC,EAAE;QACP,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;KACZ,CAAC;CACH;AAED,MAAM,WAAW,aAAc,SAAQ,uBAAuB;IAC5D;;;OAGG;IACH,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF;;;;;OAKG;IACH,KAAK,CAAC,EAAE;QACN,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;KACZ,CAAC;CACH;AAED,qBAAa,MAAM,CAAC,QAAQ,GAAG,mBAAmB,CAAE,SAAQ,cAAc,CAAC,QAAQ,CAAC;;gBAIhF,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EACtB,OAAO,GAAE,aAAkB;IAmB7B,IAAI,IAAI;;;MAKP;IAED,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,CAK7B;IAED,WAAW,CACT,MAAM,EAAE,KAAK,CAAC,QAAQ,GACrB,IAAI;IAIP,qBAAqB,IAAI,IAAI;CAoE9B"}
|
package/dist/ui/UINode.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
// Import Third-party Dependencies
|
|
2
2
|
import * as THREE from "three";
|
|
3
|
-
// Import Internal Dependencies
|
|
4
3
|
import { ActorComponent } from "../actor/index.js";
|
|
4
|
+
import { UIRendererID } from "./common.js";
|
|
5
5
|
export class UINode extends ActorComponent {
|
|
6
6
|
#options;
|
|
7
7
|
constructor(actor, options = {}) {
|
|
8
8
|
super({ actor, typeName: "UINode" });
|
|
9
9
|
this.#options = options;
|
|
10
|
-
const uiRenderer = this.actor.
|
|
10
|
+
const uiRenderer = this.actor.world[UIRendererID];
|
|
11
11
|
if (uiRenderer) {
|
|
12
12
|
uiRenderer.addChildren(this);
|
|
13
13
|
}
|
|
14
14
|
else {
|
|
15
15
|
this.updateToWorldPosition();
|
|
16
|
-
this.actor.
|
|
16
|
+
this.actor.world.renderer.on("resize", this.updateToWorldPosition.bind(this));
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
get size() {
|
|
@@ -29,11 +29,11 @@ export class UINode extends ActorComponent {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
addChildren(object) {
|
|
32
|
-
this.actor.
|
|
32
|
+
this.actor.object3D.add(object);
|
|
33
33
|
}
|
|
34
34
|
updateToWorldPosition() {
|
|
35
35
|
const { offset = { x: 0, y: 0 }, anchor = { x: "center", y: "center" } } = this.#options;
|
|
36
|
-
const screenBounds = this.actor.
|
|
36
|
+
const screenBounds = this.actor.world.input.getScreenBounds();
|
|
37
37
|
const { width, height } = this.size;
|
|
38
38
|
const pivot = this.pivot;
|
|
39
39
|
const x = this.#computeX({
|
|
@@ -50,7 +50,7 @@ export class UINode extends ActorComponent {
|
|
|
50
50
|
height,
|
|
51
51
|
pivotY: pivot.y
|
|
52
52
|
});
|
|
53
|
-
this.actor.
|
|
53
|
+
this.actor.object3D.position.set(x, y, 0);
|
|
54
54
|
}
|
|
55
55
|
#computeX(params) {
|
|
56
56
|
const { anchor, bounds, offset, width, pivotX } = params;
|
package/dist/ui/UINode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UINode.js","sourceRoot":"","sources":["../../src/ui/UINode.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"UINode.js","sourceRoot":"","sources":["../../src/ui/UINode.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/UIRenderer.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import * as THREE from "three";
|
|
2
|
-
import
|
|
2
|
+
import type { WorldDefaultContext } from "../systems/World.ts";
|
|
3
3
|
import type { UINode } from "./UINode.ts";
|
|
4
|
+
import { type Actor, ActorComponent } from "../actor/index.ts";
|
|
4
5
|
export interface UIRendererOptions {
|
|
5
6
|
near?: number;
|
|
6
7
|
far?: number;
|
|
7
8
|
zIndex?: number;
|
|
8
9
|
}
|
|
9
|
-
export declare class UIRenderer extends ActorComponent {
|
|
10
|
+
export declare class UIRenderer<TContext = WorldDefaultContext> extends ActorComponent<TContext> {
|
|
10
11
|
#private;
|
|
11
|
-
static ID: symbol;
|
|
12
12
|
camera: THREE.OrthographicCamera;
|
|
13
|
-
nodes: UINode[];
|
|
14
|
-
constructor(actor: Actor
|
|
15
|
-
addChildren(node: UINode): void;
|
|
13
|
+
nodes: UINode<TContext>[];
|
|
14
|
+
constructor(actor: Actor<TContext>, options?: UIRendererOptions);
|
|
15
|
+
addChildren(node: UINode<TContext>): void;
|
|
16
16
|
updateWorldPosition(): void;
|
|
17
17
|
clear(): void;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UIRenderer.d.ts","sourceRoot":"","sources":["../../src/ui/UIRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,
|
|
1
|
+
{"version":3,"file":"UIRenderer.d.ts","sourceRoot":"","sources":["../../src/ui/UIRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAM/D,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,UAAU,CACrB,QAAQ,GAAG,mBAAmB,CAC9B,SAAQ,cAAc,CAAC,QAAQ,CAAC;;IAChC,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAM;gBAO7B,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EACtB,OAAO,GAAE,iBAAsB;IAiDjC,WAAW,CACT,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,GACrB,IAAI;IAUP,mBAAmB,IAAI,IAAI;IAmB3B,KAAK,IAAI,IAAI;CAed"}
|
package/dist/ui/UIRenderer.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
// Import Third-party Dependencies
|
|
2
2
|
import * as THREE from "three";
|
|
3
3
|
import { CSS2DRenderer as ThreeCSS2DRenderer } from "three/addons/renderers/CSS2DRenderer.js";
|
|
4
|
-
// Import Internal Dependencies
|
|
5
4
|
import { ActorComponent } from "../actor/index.js";
|
|
5
|
+
import { UIRendererID } from "./common.js";
|
|
6
6
|
// CONSTANTS
|
|
7
7
|
const kOrthographicCameraZIndex = 10;
|
|
8
8
|
export class UIRenderer extends ActorComponent {
|
|
9
|
-
static ID = Symbol.for("UIRenderer");
|
|
10
9
|
camera;
|
|
11
10
|
nodes = [];
|
|
12
11
|
#cssRenderer;
|
|
@@ -15,26 +14,26 @@ export class UIRenderer extends ActorComponent {
|
|
|
15
14
|
constructor(actor, options = {}) {
|
|
16
15
|
super({ actor, typeName: "UIRenderer" });
|
|
17
16
|
const { near = 0.1, far = 2000, zIndex = kOrthographicCameraZIndex } = options;
|
|
18
|
-
const {
|
|
19
|
-
const screenBounds =
|
|
17
|
+
const { world } = actor;
|
|
18
|
+
const screenBounds = world.input.getScreenBounds();
|
|
20
19
|
this.camera = new THREE.OrthographicCamera(screenBounds.left, screenBounds.right, screenBounds.top, screenBounds.bottom, near, far);
|
|
21
20
|
this.camera.position.z = zIndex;
|
|
22
|
-
this.actor.
|
|
21
|
+
this.actor.object3D.add(this.camera);
|
|
23
22
|
this.#cssRenderer = new ThreeCSS2DRenderer();
|
|
24
23
|
this.#cssRenderer.domElement.style.position = "absolute";
|
|
25
24
|
this.#cssRenderer.domElement.style.top = "0";
|
|
26
25
|
this.#cssRenderer.domElement.style.left = "0";
|
|
27
26
|
this.#cssRenderer.domElement.style.pointerEvents = "none";
|
|
28
|
-
const canvas =
|
|
27
|
+
const canvas = world.renderer.canvas;
|
|
29
28
|
canvas.parentElement?.appendChild(this.#cssRenderer.domElement);
|
|
30
29
|
const { width, height } = canvas.getBoundingClientRect();
|
|
31
30
|
this.#cssRenderer.setSize(width, height);
|
|
32
|
-
|
|
31
|
+
world.renderer.addRenderComponent(this.camera);
|
|
33
32
|
this.#boundResize = this.#onResize.bind(this);
|
|
34
33
|
this.#boundDraw = this.#onDraw.bind(this);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
Object.defineProperty(
|
|
34
|
+
world.renderer.on("resize", this.#boundResize);
|
|
35
|
+
world.renderer.on("draw", this.#boundDraw);
|
|
36
|
+
Object.defineProperty(world, UIRendererID, {
|
|
38
37
|
value: this,
|
|
39
38
|
enumerable: false
|
|
40
39
|
});
|
|
@@ -53,13 +52,13 @@ export class UIRenderer extends ActorComponent {
|
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
#onResize() {
|
|
56
|
-
const canvas = this.actor.
|
|
55
|
+
const canvas = this.actor.world.renderer.canvas;
|
|
57
56
|
const { width, height } = canvas.getBoundingClientRect();
|
|
58
57
|
this.#cssRenderer.setSize(width, height);
|
|
59
58
|
this.updateWorldPosition();
|
|
60
59
|
}
|
|
61
60
|
#onDraw() {
|
|
62
|
-
const scene = this.actor.
|
|
61
|
+
const scene = this.actor.world.sceneManager.getSource();
|
|
63
62
|
this.#cssRenderer.render(scene, this.camera);
|
|
64
63
|
}
|
|
65
64
|
clear() {
|
|
@@ -67,12 +66,12 @@ export class UIRenderer extends ActorComponent {
|
|
|
67
66
|
node.destroy();
|
|
68
67
|
}
|
|
69
68
|
this.nodes = [];
|
|
70
|
-
const {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
const { world } = this.actor;
|
|
70
|
+
world.renderer.removeRenderComponent(this.camera);
|
|
71
|
+
world.renderer.off("resize", this.#boundResize);
|
|
72
|
+
world.renderer.off("draw", this.#boundDraw);
|
|
74
73
|
this.#cssRenderer.domElement.remove();
|
|
75
|
-
|
|
74
|
+
world[UIRendererID] = undefined;
|
|
76
75
|
}
|
|
77
76
|
}
|
|
78
77
|
//# sourceMappingURL=UIRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UIRenderer.js","sourceRoot":"","sources":["../../src/ui/UIRenderer.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"UIRenderer.js","sourceRoot":"","sources":["../../src/ui/UIRenderer.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/UISprite.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as THREE from "three";
|
|
2
|
+
import type { WorldDefaultContext } from "../systems/World.ts";
|
|
2
3
|
import { Actor, SignalEvent } from "../actor/index.ts";
|
|
3
4
|
import { UINode, type UINodeOptions } from "./UINode.ts";
|
|
4
5
|
import { type UITextOptions } from "./UIText.ts";
|
|
@@ -12,7 +13,7 @@ export interface UISpriteOptions extends UINodeOptions {
|
|
|
12
13
|
style?: UISpriteStyle;
|
|
13
14
|
styleOnHover?: UISpriteStyle;
|
|
14
15
|
}
|
|
15
|
-
export declare class UISprite extends UINode {
|
|
16
|
+
export declare class UISprite<TContext = WorldDefaultContext> extends UINode<TContext> {
|
|
16
17
|
#private;
|
|
17
18
|
mesh: THREE.Mesh;
|
|
18
19
|
onPointerEnter: SignalEvent<[]>;
|
|
@@ -23,7 +24,7 @@ export declare class UISprite extends UINode {
|
|
|
23
24
|
onDoubleClick: SignalEvent<[]>;
|
|
24
25
|
onRightClick: SignalEvent<[]>;
|
|
25
26
|
onHover: SignalEvent<[]>;
|
|
26
|
-
constructor(actor: Actor
|
|
27
|
+
constructor(actor: Actor<TContext>, options?: UISpriteOptions);
|
|
27
28
|
awake(): void;
|
|
28
29
|
isPointerOver(): boolean;
|
|
29
30
|
update(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UISprite.d.ts","sourceRoot":"","sources":["../../src/ui/UISprite.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EACL,KAAK,EACL,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,MAAM,EACN,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC;IAClC,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,qBAAa,
|
|
1
|
+
{"version":3,"file":"UISprite.d.ts","sourceRoot":"","sources":["../../src/ui/UISprite.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EACV,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,EACL,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,MAAM,EACN,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC;IAClC,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,qBAAa,QAAQ,CACnB,QAAQ,GAAG,mBAAmB,CAC9B,SAAQ,MAAM,CAAC,QAAQ,CAAC;;IACxB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;IAUjB,cAAc,kBAAqB;IACnC,cAAc,kBAAqB;IACnC,aAAa,kBAAqB;IAClC,WAAW,kBAAqB;IAChC,OAAO,kBAAqB;IAC5B,aAAa,kBAAqB;IAClC,YAAY,kBAAqB;IACjC,OAAO,kBAAqB;gBAG1B,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EACtB,OAAO,GAAE,eAAoB;IAY/B,KAAK;IA0BL,aAAa,IAAI,OAAO;IASxB,MAAM;IAmDG,OAAO,IAAI,IAAI;CASzB"}
|
package/dist/ui/UISprite.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// Import Third-party Dependencies
|
|
2
2
|
import * as THREE from "three";
|
|
3
|
-
// Import Internal Dependencies
|
|
4
3
|
import { Actor, SignalEvent } from "../actor/index.js";
|
|
5
4
|
import { UINode } from "./UINode.js";
|
|
6
5
|
import { UIText } from "./UIText.js";
|
|
@@ -51,12 +50,12 @@ export class UISprite extends UINode {
|
|
|
51
50
|
material.needsUpdate = true;
|
|
52
51
|
}
|
|
53
52
|
isPointerOver() {
|
|
54
|
-
const mouse = this.actor.
|
|
53
|
+
const mouse = this.actor.world.input.getMouseWorldPosition();
|
|
55
54
|
const box = new THREE.Box3().setFromObject(this.mesh);
|
|
56
55
|
return box.containsPoint(new THREE.Vector3(mouse.x, mouse.y, 0));
|
|
57
56
|
}
|
|
58
57
|
update() {
|
|
59
|
-
const { input } = this.actor.
|
|
58
|
+
const { input } = this.actor.world;
|
|
60
59
|
const isOver = this.isPointerOver();
|
|
61
60
|
// --- Pointer Enter / Leave ---
|
|
62
61
|
if (isOver && !this.#isHovered) {
|