@jolly-pixel/engine 1.0.0 → 1.1.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 +221 -209
- package/dist/actor/ActorComponent.d.ts +1 -0
- package/dist/actor/ActorComponent.d.ts.map +1 -1
- package/dist/actor/ActorComponent.js +14 -0
- package/dist/actor/ActorComponent.js.map +1 -1
- package/dist/actor/Signal.d.ts +2 -0
- package/dist/actor/Signal.d.ts.map +1 -1
- package/dist/actor/Signal.js +13 -5
- package/dist/actor/Signal.js.map +1 -1
- package/dist/components/script/Behavior.js +0 -1
- package/dist/components/script/Behavior.js.map +1 -1
- package/dist/components/script/BehaviorDecorators.d.ts +0 -1
- package/dist/components/script/BehaviorDecorators.d.ts.map +1 -1
- package/dist/components/script/BehaviorDecorators.js +1 -2
- package/dist/components/script/BehaviorDecorators.js.map +1 -1
- package/dist/components/script/BehaviorInitializer.d.ts.map +1 -1
- package/dist/components/script/BehaviorInitializer.js +0 -8
- package/dist/components/script/BehaviorInitializer.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/systems/GameInstance.js.map +1 -1
- package/dist/systems/rendering/GameRenderer.d.ts +18 -1
- package/dist/systems/rendering/GameRenderer.d.ts.map +1 -1
- package/dist/systems/rendering/ThreeRenderer.d.ts +2 -14
- package/dist/systems/rendering/ThreeRenderer.d.ts.map +1 -1
- package/dist/systems/rendering/ThreeRenderer.js.map +1 -1
- package/dist/ui/UINode.d.ts +46 -0
- package/dist/ui/UINode.d.ts.map +1 -0
- package/dist/ui/UINode.js +86 -0
- package/dist/ui/UINode.js.map +1 -0
- package/dist/ui/UIRenderer.d.ts +19 -0
- package/dist/ui/UIRenderer.d.ts.map +1 -0
- package/dist/ui/UIRenderer.js +78 -0
- package/dist/ui/UIRenderer.js.map +1 -0
- package/dist/ui/UISprite.d.ts +32 -0
- package/dist/ui/UISprite.d.ts.map +1 -0
- package/dist/ui/UISprite.js +109 -0
- package/dist/ui/UISprite.js.map +1 -0
- package/dist/ui/UIText.d.ts +37 -0
- package/dist/ui/UIText.d.ts.map +1 -0
- package/dist/ui/UIText.js +53 -0
- package/dist/ui/UIText.js.map +1 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +5 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/utils/types.d.ts +4 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +2 -0
- package/dist/utils/types.js.map +1 -0
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BehaviorInitializer.js","sourceRoot":"","sources":["../../../src/components/script/BehaviorInitializer.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,kBAAkB,CAAC;AAE1B,+BAA+B;AAC/B,OAAO,EACL,KAAK,EAEN,MAAM,+BAA+B,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"BehaviorInitializer.js","sourceRoot":"","sources":["../../../src/components/script/BehaviorInitializer.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,kBAAkB,CAAC;AAE1B,+BAA+B;AAC/B,OAAO,EACL,KAAK,EAEN,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,mBAAmB,EAGpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAuB,MAAM,2BAA2B,CAAC;AAEhE,YAAY;AACZ,MAAM,cAAc,GAAuC;IACzD,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAChC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAChC,CAAC;AAMF,MAAM,OAAO,mBAAmB;IAC9B,SAAS,CAAW;IACpB,SAAS,CAAmB;IAC5B,QAAQ,CAAiB;IAEzB,MAAM,CAAC,GAAG,CACR,QAAkB;QAElB,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,YACE,QAAkB,EAClB,QAA0B,EAC1B,UAAsC,EAAE;QAExC,MAAM,EAAE,cAAc,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC;QAE7C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;IACjC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,IAAI;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,sBAAsB;QACpB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC;QAEpD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAClC,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,SAAS,CACwB,IAAI,EAAE,CAAC;QAE/C,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC5C,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,uCAAuC,UAAU,kBAAkB,IAAI,CAAC,YAAY,EAAE,CACvF,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;YACjE,MAAM,MAAM,GAAG,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAClE,MAAM,CAAC,EAAE,CACP,SAAS,EACT,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAChD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,KAAK,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YACnE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAE5B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,YAAY,IAAI,YAAY,CAAC;YAEhD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAmB,EAAE,UAAU,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,uBAAuB;QACrB,KAAK,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YACxE,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,oCAAoC,MAAM,CAAC,aAAa,CAAC,kBAAkB,IAAI,CAAC,YAAY,EAAE,CAC/F,CAAC;gBAEF,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CACpD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,CAClE,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,SAAS,IAAI,SAAS,CAAC;QACzD,CAAC;IACH,CAAC;IAED,gBAAgB,CACd,IAAuB;QAEvB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAEnC,IACE,KAAK,YAAY,KAAK,CAAC,OAAO;YAC9B,KAAK,YAAY,KAAK,CAAC,OAAO;YAC9B,KAAK,YAAY,KAAK,CAAC,OAAO;YAC9B,KAAK,YAAY,KAAK,CAAC,KAAK,EAC5B,CAAC;YACD,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,5 +5,6 @@ export * from "./controls/Input.class.ts";
|
|
|
5
5
|
export * from "./audio/AudioBackground.ts";
|
|
6
6
|
export * from "./audio/AudioManager.ts";
|
|
7
7
|
export * from "./controls/CombinedInput.ts";
|
|
8
|
+
export * from "./ui/index.ts";
|
|
8
9
|
export * from "./utils/index.ts";
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,5 +5,6 @@ export * from "./controls/Input.class.js";
|
|
|
5
5
|
export * from "./audio/AudioBackground.js";
|
|
6
6
|
export * from "./audio/AudioManager.js";
|
|
7
7
|
export * from "./controls/CombinedInput.js";
|
|
8
|
+
export * from "./ui/index.js";
|
|
8
9
|
export * from "./utils/index.js";
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameInstance.js","sourceRoot":"","sources":["../../src/systems/GameInstance.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,+BAA+B;AAC/B,OAAO,EAEN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEN,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAEL,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAa/B,MAAM,OAAO,YAAY;IACvB,QAAQ,CAAkB;IAC1B,KAAK,CAAQ;IACb,cAAc,GAAyB,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;IAClE,KAAK,CAAQ;IACb,KAAK,CAAc;IAEnB,cAAc,CAAgB;IAE9B,YACE,QAAyB,EACzB,OAA4B;QAE5B,MAAM,EACJ,KAAK,EACL,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK,EAAE,CAAC,EACnF,KAAK,GAAG,IAAI,WAAW,EAAE,EACzB,aAAa,GAAG,IAAI,oBAAoB,EAAE,EAC1C,cAAc,GAAG,IAAI,qBAAqB,EAAE,EAC7C,GAAG,OAAO,CAAC;QAEZ,IAAI,CAAC,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"GameInstance.js","sourceRoot":"","sources":["../../src/systems/GameInstance.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,+BAA+B;AAC/B,OAAO,EAEN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEN,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAEL,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAa/B,MAAM,OAAO,YAAY;IACvB,QAAQ,CAAkB;IAC1B,KAAK,CAAQ;IACb,cAAc,GAAyB,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;IAClE,KAAK,CAAQ;IACb,KAAK,CAAc;IAEnB,cAAc,CAAgB;IAE9B,YACE,QAAyB,EACzB,OAA4B;QAE5B,MAAM,EACJ,KAAK,EACL,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK,EAAE,CAAC,EACnF,KAAK,GAAG,IAAI,WAAW,EAAE,EACzB,aAAa,GAAG,IAAI,oBAAoB,EAAE,EAC1C,cAAc,GAAG,IAAI,qBAAqB,EAAE,EAC7C,GAAG,OAAO,CAAC;QAEZ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QAEpC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,iBAAiB,CACf,OAA6B;QAE7B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAExE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CACJ,SAAiB;QAEjB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAEtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
import * as THREE from "three";
|
|
2
2
|
import type { Pass } from "three/addons/postprocessing/EffectComposer.js";
|
|
3
|
+
import type { GenericEventMap, _Handler as Handler, _RemoveEventListener as RemoveEventListener } from "@posva/event-emitter";
|
|
3
4
|
import type { RenderMode } from "./RenderStrategy.ts";
|
|
4
5
|
export type RenderComponent = THREE.PerspectiveCamera | THREE.OrthographicCamera;
|
|
5
|
-
export
|
|
6
|
+
export type RendererEvents = {
|
|
7
|
+
resize: [
|
|
8
|
+
{
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
}
|
|
12
|
+
];
|
|
13
|
+
draw: [
|
|
14
|
+
{
|
|
15
|
+
source: THREE.WebGLRenderer;
|
|
16
|
+
}
|
|
17
|
+
];
|
|
18
|
+
};
|
|
19
|
+
export interface GameRenderer<T = any, Events extends GenericEventMap = RendererEvents> {
|
|
6
20
|
readonly canvas: HTMLCanvasElement;
|
|
7
21
|
getSource(): T;
|
|
8
22
|
setRenderMode(mode: RenderMode): this;
|
|
@@ -10,6 +24,9 @@ export interface GameRenderer<T = any> {
|
|
|
10
24
|
setEffects(...effects: Pass[]): this;
|
|
11
25
|
addRenderComponent(component: RenderComponent): void;
|
|
12
26
|
removeRenderComponent(component: RenderComponent): void;
|
|
27
|
+
on<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): RemoveEventListener;
|
|
28
|
+
off<Key extends keyof Events>(type: Key, handler?: Handler<Events[Key]>): void;
|
|
29
|
+
emit<Key extends keyof Events>(type: Key, ...payload: Events[Key] extends [unknown, ...unknown[]] | [] ? Events[Key] : [Events[Key]]): void;
|
|
13
30
|
resize(): void;
|
|
14
31
|
draw(): void;
|
|
15
32
|
onDraw(callback: (source: T) => void): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameRenderer.d.ts","sourceRoot":"","sources":["../../../src/systems/rendering/GameRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"GameRenderer.d.ts","sourceRoot":"","sources":["../../../src/systems/rendering/GameRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,IAAI,OAAO,EACnB,oBAAoB,IAAI,mBAAmB,EAC5C,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,kBAAkB,CAAC;AAEjF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE;QACN;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;SAAE;KACnC,CAAC;IACF,IAAI,EAAE;QACJ;YAAE,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;SAAE;KACjC,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,eAAe,GAAG,cAAc;IACpF,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,SAAS,IAAI,CAAC,CAAC;IACf,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAErC,kBAAkB,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IACrD,qBAAqB,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAExD,EAAE,CAAC,GAAG,SAAS,MAAM,MAAM,EACzB,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAC5B,mBAAmB,CAAC;IACvB,GAAG,CAAC,GAAG,SAAS,MAAM,MAAM,EAC1B,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAC7B,IAAI,CAAC;IACR,IAAI,CAAC,GAAG,SAAS,MAAM,MAAM,EAC3B,IAAI,EAAE,GAAG,EACT,GAAG,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,EAAE,GACxD,MAAM,CAAC,GAAG,CAAC,GACX,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAChB,IAAI,CAAC;IAER,MAAM,IAAI,IAAI,CAAC;IACf,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5C,KAAK,IAAI,IAAI,CAAC;CACf"}
|
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
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
|
-
import type { GameRenderer, RenderComponent } from "./GameRenderer.ts";
|
|
4
|
+
import type { GameRenderer, RenderComponent, RendererEvents } from "./GameRenderer.ts";
|
|
5
5
|
import type { Scene } from "../Scene.ts";
|
|
6
6
|
import { type RenderMode, type RenderStrategy } from "./RenderStrategy.ts";
|
|
7
|
-
export type ThreeRendererEvents =
|
|
8
|
-
resize: [
|
|
9
|
-
{
|
|
10
|
-
width: number;
|
|
11
|
-
height: number;
|
|
12
|
-
}
|
|
13
|
-
];
|
|
14
|
-
draw: [
|
|
15
|
-
{
|
|
16
|
-
source: THREE.WebGLRenderer;
|
|
17
|
-
}
|
|
18
|
-
];
|
|
19
|
-
};
|
|
7
|
+
export type ThreeRendererEvents = RendererEvents;
|
|
20
8
|
export interface ThreeRendererOptions {
|
|
21
9
|
/**
|
|
22
10
|
* @default "direct"
|
|
@@ -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,YAAY,EACZ,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,YAAY,EACZ,eAAe,EACf,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,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,KAAK,CAAC;CACd;AAED,qBAAa,aAAc,SAAQ,YAAY,CAC7C,mBAAmB,CACnB,YAAW,YAAY;IACvB,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,KAAK,CAAC;gBAGX,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;
|
|
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,CAAQ;IAEb,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,46 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import { type Actor, ActorComponent } from "../actor/index.ts";
|
|
3
|
+
export type UIAnchorX = "left" | "center" | "right";
|
|
4
|
+
export type UIAnchorY = "top" | "center" | "bottom";
|
|
5
|
+
export interface UINodePositionalOptions {
|
|
6
|
+
anchor?: {
|
|
7
|
+
x?: UIAnchorX;
|
|
8
|
+
y?: UIAnchorY;
|
|
9
|
+
};
|
|
10
|
+
offset?: {
|
|
11
|
+
x?: number;
|
|
12
|
+
y?: number;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export interface UINodeOptions extends UINodePositionalOptions {
|
|
16
|
+
/**
|
|
17
|
+
* Size of the UI element in world units.
|
|
18
|
+
* @default 0
|
|
19
|
+
*/
|
|
20
|
+
size?: {
|
|
21
|
+
width?: number;
|
|
22
|
+
height?: number;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Normalized origin point of the element (0 to 1).
|
|
26
|
+
* - `{ x: 0, y: 0 }` → bottom-left corner
|
|
27
|
+
* - `{ x: 0.5, y: 0.5 }` → center (default)
|
|
28
|
+
* - `{ x: 1, y: 1 }` → top-right corner
|
|
29
|
+
*/
|
|
30
|
+
pivot?: {
|
|
31
|
+
x?: number;
|
|
32
|
+
y?: number;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export declare class UINode extends ActorComponent {
|
|
36
|
+
#private;
|
|
37
|
+
constructor(actor: Actor, options?: UINodeOptions);
|
|
38
|
+
get size(): {
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
};
|
|
42
|
+
get pivot(): THREE.Vector2Like;
|
|
43
|
+
addChildren(object: THREE.Object3D): void;
|
|
44
|
+
updateToWorldPosition(): void;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=UINode.d.ts.map
|
|
@@ -0,0 +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,MAAO,SAAQ,cAAc;;gBAItC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,aAAkB;IAiB7B,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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// Import Third-party Dependencies
|
|
2
|
+
import * as THREE from "three";
|
|
3
|
+
// Import Internal Dependencies
|
|
4
|
+
import { ActorComponent } from "../actor/index.js";
|
|
5
|
+
export class UINode extends ActorComponent {
|
|
6
|
+
#options;
|
|
7
|
+
constructor(actor, options = {}) {
|
|
8
|
+
super({ actor, typeName: "UINode" });
|
|
9
|
+
this.#options = options;
|
|
10
|
+
const uiRenderer = this.actor.gameInstance[Symbol.for("UIRenderer")];
|
|
11
|
+
if (uiRenderer) {
|
|
12
|
+
uiRenderer.addChildren(this);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
this.updateToWorldPosition();
|
|
16
|
+
this.actor.gameInstance.renderer.on("resize", this.updateToWorldPosition.bind(this));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
get size() {
|
|
20
|
+
return {
|
|
21
|
+
width: this.#options.size?.width ?? 0,
|
|
22
|
+
height: this.#options.size?.height ?? 0
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
get pivot() {
|
|
26
|
+
return {
|
|
27
|
+
x: this.#options.pivot?.x ?? 0.5,
|
|
28
|
+
y: this.#options.pivot?.y ?? 0.5
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
addChildren(object) {
|
|
32
|
+
this.actor.threeObject.add(object);
|
|
33
|
+
}
|
|
34
|
+
updateToWorldPosition() {
|
|
35
|
+
const { offset = { x: 0, y: 0 }, anchor = { x: "center", y: "center" } } = this.#options;
|
|
36
|
+
const screenBounds = this.actor.gameInstance.input.getScreenBounds();
|
|
37
|
+
const { width, height } = this.size;
|
|
38
|
+
const pivot = this.pivot;
|
|
39
|
+
const x = this.#computeX({
|
|
40
|
+
anchor: anchor.x ?? "center",
|
|
41
|
+
bounds: screenBounds,
|
|
42
|
+
offset: offset.x ?? 0,
|
|
43
|
+
width,
|
|
44
|
+
pivotX: pivot.x
|
|
45
|
+
});
|
|
46
|
+
const y = this.#computeY({
|
|
47
|
+
anchor: anchor.y ?? "center",
|
|
48
|
+
bounds: screenBounds,
|
|
49
|
+
offset: offset.y ?? 0,
|
|
50
|
+
height,
|
|
51
|
+
pivotY: pivot.y
|
|
52
|
+
});
|
|
53
|
+
this.actor.threeObject.position.set(x, y, 0);
|
|
54
|
+
}
|
|
55
|
+
#computeX(params) {
|
|
56
|
+
const { anchor, bounds, offset, width, pivotX } = params;
|
|
57
|
+
// Shift so the pivot-aligned edge sits at the anchor
|
|
58
|
+
const pivotShift = width * (0.5 - pivotX);
|
|
59
|
+
switch (anchor) {
|
|
60
|
+
case "left":
|
|
61
|
+
return bounds.left + (width * (1 - pivotX)) + offset;
|
|
62
|
+
case "right":
|
|
63
|
+
return bounds.right - (width * pivotX) + offset;
|
|
64
|
+
case "center":
|
|
65
|
+
return pivotShift + offset;
|
|
66
|
+
default:
|
|
67
|
+
return pivotShift + offset;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
#computeY(params) {
|
|
71
|
+
const { anchor, bounds, offset, height, pivotY } = params;
|
|
72
|
+
// Shift so the pivot-aligned edge sits at the anchor
|
|
73
|
+
const pivotShift = height * (0.5 - pivotY);
|
|
74
|
+
switch (anchor) {
|
|
75
|
+
case "top":
|
|
76
|
+
return bounds.top - (height * pivotY) + offset;
|
|
77
|
+
case "bottom":
|
|
78
|
+
return bounds.bottom + (height * (1 - pivotY)) + offset;
|
|
79
|
+
case "center":
|
|
80
|
+
return pivotShift + offset;
|
|
81
|
+
default:
|
|
82
|
+
return pivotShift + offset;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=UINode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UINode.js","sourceRoot":"","sources":["../../src/ui/UINode.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,+BAA+B;AAC/B,OAAO,EAAc,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAsD/D,MAAM,OAAO,MAAO,SAAQ,cAAc;IACxC,QAAQ,CAAgB;IAExB,YACE,KAAY,EACZ,UAAyB,EAAE;QAE3B,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAe,CAAC;QACnF,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;aACI,CAAC;YACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CACjC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAChD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;SACxC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK;QACP,OAAO;YACL,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG;YAChC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG;SACjC,CAAC;IACJ,CAAC;IAED,WAAW,CACT,MAAsB;QAEtB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,qBAAqB;QACnB,MAAM,EACJ,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EACvB,MAAM,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EACtC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAErE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,QAAQ;YAC5B,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;YACrB,KAAK;YACL,MAAM,EAAE,KAAK,CAAC,CAAC;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,QAAQ;YAC5B,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;YACrB,MAAM;YACN,MAAM,EAAE,KAAK,CAAC,CAAC;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CACP,MAAsB;QAEtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAEzD,qDAAqD;QACrD,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;QAE1C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;YACvD,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;YAClD,KAAK,QAAQ;gBACX,OAAO,UAAU,GAAG,MAAM,CAAC;YAC7B;gBACE,OAAO,UAAU,GAAG,MAAM,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,SAAS,CACP,MAAsB;QAEtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE1D,qDAAqD;QACrD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;QAE3C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,KAAK;gBACR,OAAO,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;YACjD,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;YAC1D,KAAK,QAAQ;gBACX,OAAO,UAAU,GAAG,MAAM,CAAC;YAC7B;gBACE,OAAO,UAAU,GAAG,MAAM,CAAC;QAC/B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import { type Actor, ActorComponent } from "../actor/index.ts";
|
|
3
|
+
import type { UINode } from "./UINode.ts";
|
|
4
|
+
export interface UIRendererOptions {
|
|
5
|
+
near?: number;
|
|
6
|
+
far?: number;
|
|
7
|
+
zIndex?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class UIRenderer extends ActorComponent {
|
|
10
|
+
#private;
|
|
11
|
+
static ID: symbol;
|
|
12
|
+
camera: THREE.OrthographicCamera;
|
|
13
|
+
nodes: UINode[];
|
|
14
|
+
constructor(actor: Actor, options?: UIRendererOptions);
|
|
15
|
+
addChildren(node: UINode): void;
|
|
16
|
+
updateWorldPosition(): void;
|
|
17
|
+
clear(): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=UIRenderer.d.ts.map
|
|
@@ -0,0 +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,EAAE,KAAK,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,UAAW,SAAQ,cAAc;;IAC5C,MAAM,CAAC,EAAE,SAA4B;IAErC,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC;IACjC,KAAK,EAAE,MAAM,EAAE,CAAM;gBAOnB,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,iBAAsB;IAiDjC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAU/B,mBAAmB,IAAI,IAAI;IAmB3B,KAAK,IAAI,IAAI;CAed"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Import Third-party Dependencies
|
|
2
|
+
import * as THREE from "three";
|
|
3
|
+
import { CSS2DRenderer as ThreeCSS2DRenderer } from "three/addons/renderers/CSS2DRenderer.js";
|
|
4
|
+
// Import Internal Dependencies
|
|
5
|
+
import { ActorComponent } from "../actor/index.js";
|
|
6
|
+
// CONSTANTS
|
|
7
|
+
const kOrthographicCameraZIndex = 10;
|
|
8
|
+
export class UIRenderer extends ActorComponent {
|
|
9
|
+
static ID = Symbol.for("UIRenderer");
|
|
10
|
+
camera;
|
|
11
|
+
nodes = [];
|
|
12
|
+
#cssRenderer;
|
|
13
|
+
#boundDraw;
|
|
14
|
+
#boundResize;
|
|
15
|
+
constructor(actor, options = {}) {
|
|
16
|
+
super({ actor, typeName: "UIRenderer" });
|
|
17
|
+
const { near = 0.1, far = 2000, zIndex = kOrthographicCameraZIndex } = options;
|
|
18
|
+
const { gameInstance } = actor;
|
|
19
|
+
const screenBounds = gameInstance.input.getScreenBounds();
|
|
20
|
+
this.camera = new THREE.OrthographicCamera(screenBounds.left, screenBounds.right, screenBounds.top, screenBounds.bottom, near, far);
|
|
21
|
+
this.camera.position.z = zIndex;
|
|
22
|
+
this.actor.threeObject.add(this.camera);
|
|
23
|
+
this.#cssRenderer = new ThreeCSS2DRenderer();
|
|
24
|
+
this.#cssRenderer.domElement.style.position = "absolute";
|
|
25
|
+
this.#cssRenderer.domElement.style.top = "0";
|
|
26
|
+
this.#cssRenderer.domElement.style.left = "0";
|
|
27
|
+
this.#cssRenderer.domElement.style.pointerEvents = "none";
|
|
28
|
+
const canvas = gameInstance.renderer.canvas;
|
|
29
|
+
canvas.parentElement?.appendChild(this.#cssRenderer.domElement);
|
|
30
|
+
const { width, height } = canvas.getBoundingClientRect();
|
|
31
|
+
this.#cssRenderer.setSize(width, height);
|
|
32
|
+
gameInstance.renderer.addRenderComponent(this.camera);
|
|
33
|
+
this.#boundResize = this.#onResize.bind(this);
|
|
34
|
+
this.#boundDraw = this.#onDraw.bind(this);
|
|
35
|
+
gameInstance.renderer.on("resize", this.#boundResize);
|
|
36
|
+
gameInstance.renderer.on("draw", this.#boundDraw);
|
|
37
|
+
Object.defineProperty(gameInstance, UIRenderer.ID, {
|
|
38
|
+
value: this,
|
|
39
|
+
enumerable: false
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
addChildren(node) {
|
|
43
|
+
const nodeIndex = this.nodes.indexOf(node);
|
|
44
|
+
if (nodeIndex !== -1) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
node.updateToWorldPosition();
|
|
48
|
+
this.nodes.push(node);
|
|
49
|
+
}
|
|
50
|
+
updateWorldPosition() {
|
|
51
|
+
for (const node of this.nodes) {
|
|
52
|
+
node.updateToWorldPosition();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
#onResize() {
|
|
56
|
+
const canvas = this.actor.gameInstance.renderer.canvas;
|
|
57
|
+
const { width, height } = canvas.getBoundingClientRect();
|
|
58
|
+
this.#cssRenderer.setSize(width, height);
|
|
59
|
+
this.updateWorldPosition();
|
|
60
|
+
}
|
|
61
|
+
#onDraw() {
|
|
62
|
+
const scene = this.actor.gameInstance.scene.getSource();
|
|
63
|
+
this.#cssRenderer.render(scene, this.camera);
|
|
64
|
+
}
|
|
65
|
+
clear() {
|
|
66
|
+
for (const node of this.nodes) {
|
|
67
|
+
node.destroy();
|
|
68
|
+
}
|
|
69
|
+
this.nodes = [];
|
|
70
|
+
const { gameInstance } = this.actor;
|
|
71
|
+
gameInstance.renderer.removeRenderComponent(this.camera);
|
|
72
|
+
gameInstance.renderer.off("resize", this.#boundResize);
|
|
73
|
+
gameInstance.renderer.off("draw", this.#boundDraw);
|
|
74
|
+
this.#cssRenderer.domElement.remove();
|
|
75
|
+
gameInstance[UIRenderer.ID] = undefined;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=UIRenderer.js.map
|
|
@@ -0,0 +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;AAE9F,+BAA+B;AAC/B,OAAO,EAAc,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG/D,YAAY;AACZ,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAQrC,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAErC,MAAM,CAA2B;IACjC,KAAK,GAAa,EAAE,CAAC;IAErB,YAAY,CAAqB;IACjC,UAAU,CAAa;IACvB,YAAY,CAAa;IAEzB,YACE,KAAY,EACZ,UAA6B,EAAE;QAE/B,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;QAEzC,MAAM,EACJ,IAAI,GAAG,GAAG,EACV,GAAG,GAAG,IAAI,EACV,MAAM,GAAG,yBAAyB,EACnC,GAAG,OAAO,CAAC;QACZ,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;QAE/B,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAE1D,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,kBAAkB,CACxC,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,GAAG,EAChB,YAAY,CAAC,MAAM,EACnB,IAAI,EACJ,GAAG,CACJ,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,YAAY,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QAE1D,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAEhE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEzC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAElD,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE;YACjD,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,mBAAmB;QACjB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,SAAS;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK;QACH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACvD,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAEtC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;IAC1C,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import { Actor, SignalEvent } from "../actor/index.ts";
|
|
3
|
+
import { UINode, type UINodeOptions } from "./UINode.ts";
|
|
4
|
+
import { type UITextOptions } from "./UIText.ts";
|
|
5
|
+
export interface UISpriteStyle {
|
|
6
|
+
color?: THREE.ColorRepresentation;
|
|
7
|
+
map?: THREE.Texture;
|
|
8
|
+
opacity?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface UISpriteOptions extends UINodeOptions {
|
|
11
|
+
text?: UITextOptions;
|
|
12
|
+
style?: UISpriteStyle;
|
|
13
|
+
styleOnHover?: UISpriteStyle;
|
|
14
|
+
}
|
|
15
|
+
export declare class UISprite extends UINode {
|
|
16
|
+
#private;
|
|
17
|
+
mesh: THREE.Mesh;
|
|
18
|
+
onPointerEnter: SignalEvent<[]>;
|
|
19
|
+
onPointerLeave: SignalEvent<[]>;
|
|
20
|
+
onPointerDown: SignalEvent<[]>;
|
|
21
|
+
onPointerUp: SignalEvent<[]>;
|
|
22
|
+
onClick: SignalEvent<[]>;
|
|
23
|
+
onDoubleClick: SignalEvent<[]>;
|
|
24
|
+
onRightClick: SignalEvent<[]>;
|
|
25
|
+
onHover: SignalEvent<[]>;
|
|
26
|
+
constructor(actor: Actor, options?: UISpriteOptions);
|
|
27
|
+
awake(): void;
|
|
28
|
+
isPointerOver(): boolean;
|
|
29
|
+
update(): void;
|
|
30
|
+
destroy(): void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=UISprite.d.ts.map
|
|
@@ -0,0 +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,QAAS,SAAQ,MAAM;;IAClC,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,EACZ,OAAO,GAAE,eAAoB;IAY/B,KAAK;IA0BL,aAAa,IAAI,OAAO;IASxB,MAAM;IAmDG,OAAO,IAAI,IAAI;CASzB"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// Import Third-party Dependencies
|
|
2
|
+
import * as THREE from "three";
|
|
3
|
+
// Import Internal Dependencies
|
|
4
|
+
import { Actor, SignalEvent } from "../actor/index.js";
|
|
5
|
+
import { UINode } from "./UINode.js";
|
|
6
|
+
import { UIText } from "./UIText.js";
|
|
7
|
+
// CONSTANTS
|
|
8
|
+
const kDoubleClickThresholdMs = 300;
|
|
9
|
+
export class UISprite extends UINode {
|
|
10
|
+
mesh;
|
|
11
|
+
#isHovered = false;
|
|
12
|
+
#isPressed = false;
|
|
13
|
+
#style;
|
|
14
|
+
#styleOnHover;
|
|
15
|
+
#text;
|
|
16
|
+
#lastClickTime = 0;
|
|
17
|
+
onPointerEnter = new SignalEvent();
|
|
18
|
+
onPointerLeave = new SignalEvent();
|
|
19
|
+
onPointerDown = new SignalEvent();
|
|
20
|
+
onPointerUp = new SignalEvent();
|
|
21
|
+
onClick = new SignalEvent();
|
|
22
|
+
onDoubleClick = new SignalEvent();
|
|
23
|
+
onRightClick = new SignalEvent();
|
|
24
|
+
onHover = new SignalEvent();
|
|
25
|
+
constructor(actor, options = {}) {
|
|
26
|
+
super(actor, options);
|
|
27
|
+
this.#style = options.style ?? {};
|
|
28
|
+
this.#styleOnHover = options.styleOnHover ?? null;
|
|
29
|
+
if (options.text) {
|
|
30
|
+
this.#text = new UIText(this, options.text);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
awake() {
|
|
34
|
+
const { width, height } = this.size;
|
|
35
|
+
const geometry = new THREE.PlaneGeometry(width, height);
|
|
36
|
+
const material = new THREE.MeshBasicMaterial({
|
|
37
|
+
color: this.#style.color ?? 0xffffff,
|
|
38
|
+
map: this.#style.map ?? null,
|
|
39
|
+
opacity: this.#style.opacity ?? 1,
|
|
40
|
+
transparent: true,
|
|
41
|
+
side: THREE.DoubleSide
|
|
42
|
+
});
|
|
43
|
+
this.mesh = new THREE.Mesh(geometry, material);
|
|
44
|
+
this.addChildren(this.mesh);
|
|
45
|
+
}
|
|
46
|
+
#applyStyle(style) {
|
|
47
|
+
const material = this.mesh.material;
|
|
48
|
+
material.color.set(style.color ?? this.#style.color ?? 0xffffff);
|
|
49
|
+
material.map = style.map ?? this.#style.map ?? null;
|
|
50
|
+
material.opacity = style.opacity ?? this.#style.opacity ?? 1;
|
|
51
|
+
material.needsUpdate = true;
|
|
52
|
+
}
|
|
53
|
+
isPointerOver() {
|
|
54
|
+
const mouse = this.actor.gameInstance.input.getMouseWorldPosition();
|
|
55
|
+
const box = new THREE.Box3().setFromObject(this.mesh);
|
|
56
|
+
return box.containsPoint(new THREE.Vector3(mouse.x, mouse.y, 0));
|
|
57
|
+
}
|
|
58
|
+
update() {
|
|
59
|
+
const { input } = this.actor.gameInstance;
|
|
60
|
+
const isOver = this.isPointerOver();
|
|
61
|
+
// --- Pointer Enter / Leave ---
|
|
62
|
+
if (isOver && !this.#isHovered) {
|
|
63
|
+
this.#isHovered = true;
|
|
64
|
+
this.onPointerEnter.emit();
|
|
65
|
+
this.onHover.emit();
|
|
66
|
+
if (this.#styleOnHover) {
|
|
67
|
+
this.#applyStyle(this.#styleOnHover);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (!isOver && this.#isHovered) {
|
|
71
|
+
this.#isHovered = false;
|
|
72
|
+
this.onPointerLeave.emit();
|
|
73
|
+
this.#applyStyle(this.#style);
|
|
74
|
+
}
|
|
75
|
+
// --- Pointer Down ---
|
|
76
|
+
if (isOver && input.wasMouseButtonJustPressed("left")) {
|
|
77
|
+
this.#isPressed = true;
|
|
78
|
+
this.onPointerDown.emit();
|
|
79
|
+
}
|
|
80
|
+
// --- Right Click ---
|
|
81
|
+
if (isOver && input.wasMouseButtonJustReleased("right")) {
|
|
82
|
+
this.onRightClick.emit();
|
|
83
|
+
}
|
|
84
|
+
// --- Pointer Up / Click / Double Click ---
|
|
85
|
+
if (this.#isPressed && input.wasMouseButtonJustReleased("left")) {
|
|
86
|
+
this.#isPressed = false;
|
|
87
|
+
this.onPointerUp.emit();
|
|
88
|
+
if (isOver) {
|
|
89
|
+
this.onClick.emit();
|
|
90
|
+
const now = performance.now();
|
|
91
|
+
if (now - this.#lastClickTime < kDoubleClickThresholdMs) {
|
|
92
|
+
this.onDoubleClick.emit();
|
|
93
|
+
this.#lastClickTime = 0;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.#lastClickTime = now;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
destroy() {
|
|
102
|
+
const material = this.mesh.material;
|
|
103
|
+
material.map?.dispose();
|
|
104
|
+
material.dispose();
|
|
105
|
+
this.mesh.geometry.dispose();
|
|
106
|
+
this.#text?.destroy();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=UISprite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UISprite.js","sourceRoot":"","sources":["../../src/ui/UISprite.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { UINode } from "./UINode.ts";
|
|
2
|
+
export interface UITextStyle {
|
|
3
|
+
color?: string;
|
|
4
|
+
fontSize?: string;
|
|
5
|
+
fontFamily?: string;
|
|
6
|
+
fontWeight?: string;
|
|
7
|
+
textAlign?: string;
|
|
8
|
+
lineHeight?: string;
|
|
9
|
+
letterSpacing?: string;
|
|
10
|
+
textTransform?: string;
|
|
11
|
+
whiteSpace?: string;
|
|
12
|
+
textShadow?: string;
|
|
13
|
+
padding?: string;
|
|
14
|
+
backgroundColor?: string;
|
|
15
|
+
borderRadius?: string;
|
|
16
|
+
opacity?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface UITextOptions {
|
|
19
|
+
textContent?: string;
|
|
20
|
+
style?: UITextStyle;
|
|
21
|
+
/**
|
|
22
|
+
* Z offset to place the text in front of the UINode.
|
|
23
|
+
* @default 0.1
|
|
24
|
+
*/
|
|
25
|
+
zOffset?: number;
|
|
26
|
+
}
|
|
27
|
+
export declare class UIText {
|
|
28
|
+
#private;
|
|
29
|
+
constructor(node: UINode, options?: UITextOptions);
|
|
30
|
+
get node(): UINode;
|
|
31
|
+
get element(): HTMLDivElement;
|
|
32
|
+
get text(): string;
|
|
33
|
+
set text(value: string);
|
|
34
|
+
setStyle(style: Partial<UITextStyle>): void;
|
|
35
|
+
destroy(): void;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=UIText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIText.d.ts","sourceRoot":"","sources":["../../src/ui/UIText.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAWD,qBAAa,MAAM;;gBAOf,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,aAAkB;IAgB7B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAa3C,OAAO,IAAI,IAAI;CAGhB"}
|