@oidoid/void 0.1.0-4 → 0.1.0-7
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/dist/meta.json +1 -0
- package/dist/package.json +66 -0
- package/dist/public/favicon/favicon16.png +0 -0
- package/dist/public/favicon/favicon16.webp +0 -0
- package/dist/public/favicon/favicon192.png +0 -0
- package/dist/public/favicon/favicon192.webp +0 -0
- package/dist/public/favicon/favicon32.png +0 -0
- package/dist/public/favicon/favicon32.webp +0 -0
- package/dist/public/favicon/favicon48.png +0 -0
- package/dist/public/favicon/favicon48.webp +0 -0
- package/dist/public/favicon/favicon64.png +0 -0
- package/dist/public/favicon/favicon64.webp +0 -0
- package/dist/public/index.js +98 -0
- package/dist/public/index.js.map +7 -0
- package/dist/public/preload-atlas.png +0 -0
- package/dist/public/preload-atlas.webp +0 -0
- package/dist/public/void-v0.1.0-6+20251020.7cdf98d.html +111 -0
- package/dist/public/void-v0.1.0-6+20251020.e4e9eef.html +111 -0
- package/dist/public/void-v0.1.0-7+20251021.7cdf98d.html +111 -0
- package/dist/schema/config-file.d.ts +32 -0
- package/dist/schema/config-file.js +41 -0
- package/dist/schema/config-file.js.map +1 -0
- package/dist/schema/config-file.v0.json +68 -0
- package/dist/src/audio.d.ts +7 -0
- package/dist/src/audio.js +25 -0
- package/dist/src/audio.js.map +1 -0
- package/dist/src/demo/assets/manifest.json +41 -0
- package/dist/src/demo/assets/preload-atlas.json +193 -0
- package/dist/src/demo/ents/clock-ent.d.ts +11 -0
- package/dist/src/demo/ents/clock-ent.js +26 -0
- package/dist/src/demo/ents/clock-ent.js.map +1 -0
- package/dist/src/demo/ents/render-toggle-ent.d.ts +12 -0
- package/dist/src/demo/ents/render-toggle-ent.js +41 -0
- package/dist/src/demo/ents/render-toggle-ent.js.map +1 -0
- package/dist/src/demo/ents/work-counter-ent.d.ts +10 -0
- package/dist/src/demo/ents/work-counter-ent.js +20 -0
- package/dist/src/demo/ents/work-counter-ent.js.map +1 -0
- package/dist/src/demo/game.d.ts +12 -0
- package/dist/src/demo/game.js +135 -0
- package/dist/src/demo/game.js.map +1 -0
- package/dist/src/demo/index.d.ts +1 -0
- package/dist/src/demo/index.js +8 -0
- package/dist/src/demo/index.js.map +1 -0
- package/dist/src/demo/tsconfig.json +15 -0
- package/dist/src/demo/types/tag.d.ts +2 -0
- package/dist/src/demo/types/tag.js +2 -0
- package/dist/src/demo/types/tag.js.map +1 -0
- package/dist/src/demo/void.json +11 -0
- package/dist/src/ents/button-ent.d.ts +39 -0
- package/dist/src/ents/button-ent.js +128 -0
- package/dist/src/ents/button-ent.js.map +1 -0
- package/dist/src/ents/cursor-ent.d.ts +18 -0
- package/dist/src/ents/cursor-ent.js +63 -0
- package/dist/src/ents/cursor-ent.js.map +1 -0
- package/dist/src/ents/ent.d.ts +7 -0
- package/dist/src/ents/ent.js +2 -0
- package/dist/src/ents/ent.js.map +1 -0
- package/dist/src/ents/follow-cam-ent.d.ts +25 -0
- package/dist/src/ents/follow-cam-ent.js +87 -0
- package/dist/src/ents/follow-cam-ent.js.map +1 -0
- package/dist/src/ents/nine-patch-ent.d.ts +43 -0
- package/dist/src/ents/nine-patch-ent.js +143 -0
- package/dist/src/ents/nine-patch-ent.js.map +1 -0
- package/dist/src/ents/text-ent.d.ts +23 -0
- package/dist/src/ents/text-ent.js +109 -0
- package/dist/src/ents/text-ent.js.map +1 -0
- package/dist/src/ents/zoo.d.ts +17 -0
- package/dist/src/ents/zoo.js +45 -0
- package/dist/src/ents/zoo.js.map +1 -0
- package/dist/src/graphics/atlas-parser.d.ts +4 -0
- package/dist/src/graphics/atlas-parser.js +27 -0
- package/dist/src/graphics/atlas-parser.js.map +1 -0
- package/dist/src/graphics/atlas.d.ts +49 -0
- package/dist/src/graphics/atlas.js +7 -0
- package/dist/src/graphics/atlas.js.map +1 -0
- package/dist/src/graphics/cam.d.ts +89 -0
- package/dist/src/graphics/cam.js +220 -0
- package/dist/src/graphics/cam.js.map +1 -0
- package/dist/src/graphics/gl.d.ts +24 -0
- package/dist/src/graphics/gl.js +70 -0
- package/dist/src/graphics/gl.js.map +1 -0
- package/dist/src/graphics/layer.d.ts +21 -0
- package/dist/src/graphics/layer.js +23 -0
- package/dist/src/graphics/layer.js.map +1 -0
- package/dist/src/graphics/renderer.d.ts +36 -0
- package/dist/src/graphics/renderer.js +180 -0
- package/dist/src/graphics/renderer.js.map +1 -0
- package/dist/src/graphics/sprite-frag.glsl.d.ts +1 -0
- package/dist/src/graphics/sprite-frag.glsl.js +35 -0
- package/dist/src/graphics/sprite-frag.glsl.js.map +1 -0
- package/dist/src/graphics/sprite-vert.glsl.d.ts +1 -0
- package/dist/src/graphics/sprite-vert.glsl.js +68 -0
- package/dist/src/graphics/sprite-vert.glsl.js.map +1 -0
- package/dist/src/graphics/sprite.d.ts +108 -0
- package/dist/src/graphics/sprite.js +301 -0
- package/dist/src/graphics/sprite.js.map +1 -0
- package/dist/src/index.d.ts +30 -0
- package/dist/src/index.js +33 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/input/context-menu.d.ts +8 -0
- package/dist/src/input/context-menu.js +25 -0
- package/dist/src/input/context-menu.js.map +1 -0
- package/dist/src/input/gamepad.d.ts +18 -0
- package/dist/src/input/gamepad.js +49 -0
- package/dist/src/input/gamepad.js.map +1 -0
- package/dist/src/input/input.d.ts +148 -0
- package/dist/src/input/input.js +383 -0
- package/dist/src/input/input.js.map +1 -0
- package/dist/src/input/keyboard.d.ts +17 -0
- package/dist/src/input/keyboard.js +46 -0
- package/dist/src/input/keyboard.js.map +1 -0
- package/dist/src/input/pointer.d.ts +53 -0
- package/dist/src/input/pointer.js +162 -0
- package/dist/src/input/pointer.js.map +1 -0
- package/dist/src/input/wheel.d.ts +12 -0
- package/dist/src/input/wheel.js +30 -0
- package/dist/src/input/wheel.js.map +1 -0
- package/dist/src/looper.d.ts +17 -0
- package/dist/src/looper.js +51 -0
- package/dist/src/looper.js.map +1 -0
- package/dist/src/mem/pool.d.ts +31 -0
- package/dist/src/mem/pool.js +98 -0
- package/dist/src/mem/pool.js.map +1 -0
- package/dist/src/random/random.d.ts +8 -0
- package/dist/src/random/random.js +23 -0
- package/dist/src/random/random.js.map +1 -0
- package/dist/src/storage/local-storage.d.ts +3 -0
- package/dist/src/storage/local-storage.js +11 -0
- package/dist/src/storage/local-storage.js.map +1 -0
- package/dist/src/text/font.d.ts +6 -0
- package/dist/src/text/font.js +20 -0
- package/dist/src/text/font.js.map +1 -0
- package/dist/src/text/mem-prop-5x6.json +573 -0
- package/dist/src/text/text-layout.d.ts +19 -0
- package/dist/src/text/text-layout.js +85 -0
- package/dist/src/text/text-layout.js.map +1 -0
- package/dist/src/tsconfig.json +15 -0
- package/dist/src/types/geo.d.ts +38 -0
- package/dist/src/types/geo.js +61 -0
- package/dist/src/types/geo.js.map +1 -0
- package/dist/src/types/json.d.ts +31 -0
- package/dist/src/types/json.js +2 -0
- package/dist/src/types/json.js.map +1 -0
- package/dist/src/types/time.d.ts +19 -0
- package/dist/src/types/time.js +10 -0
- package/dist/src/types/time.js.map +1 -0
- package/dist/src/types/void-version.d.ts +7 -0
- package/dist/src/types/void-version.js +2 -0
- package/dist/src/types/void-version.js.map +1 -0
- package/dist/src/utils/async-util.d.ts +11 -0
- package/dist/src/utils/async-util.js +36 -0
- package/dist/src/utils/async-util.js.map +1 -0
- package/dist/src/utils/canvas-util.d.ts +7 -0
- package/dist/src/utils/canvas-util.js +128 -0
- package/dist/src/utils/canvas-util.js.map +1 -0
- package/dist/src/utils/color-util.d.ts +1 -0
- package/dist/src/utils/color-util.js +4 -0
- package/dist/src/utils/color-util.js.map +1 -0
- package/dist/src/utils/debug.d.ts +19 -0
- package/dist/src/utils/debug.js +35 -0
- package/dist/src/utils/debug.js.map +1 -0
- package/dist/src/utils/delay-interval.d.ts +7 -0
- package/dist/src/utils/delay-interval.js +29 -0
- package/dist/src/utils/delay-interval.js.map +1 -0
- package/dist/src/utils/dom-util.d.ts +3 -0
- package/dist/src/utils/dom-util.js +29 -0
- package/dist/src/utils/dom-util.js.map +1 -0
- package/dist/src/utils/fetch-util.d.ts +3 -0
- package/dist/src/utils/fetch-util.js +24 -0
- package/dist/src/utils/fetch-util.js.map +1 -0
- package/dist/src/utils/math.d.ts +6 -0
- package/dist/src/utils/math.js +18 -0
- package/dist/src/utils/math.js.map +1 -0
- package/dist/src/utils/vibrate.d.ts +1 -0
- package/dist/src/utils/vibrate.js +4 -0
- package/dist/src/utils/vibrate.js.map +1 -0
- package/dist/src/void.d.ts +48 -0
- package/dist/src/void.js +102 -0
- package/dist/src/void.js.map +1 -0
- package/dist/tools/atlas-pack/aseprite.d.ts +58 -0
- package/dist/tools/atlas-pack/aseprite.js +16 -0
- package/dist/tools/atlas-pack/aseprite.js.map +1 -0
- package/dist/tools/atlas-pack/atlas-json-parser.d.ts +21 -0
- package/dist/tools/atlas-pack/atlas-json-parser.js +116 -0
- package/dist/tools/atlas-pack/atlas-json-parser.js.map +1 -0
- package/dist/tools/atlas-pack/atlas-pack.d.ts +2 -0
- package/dist/tools/atlas-pack/atlas-pack.js +22 -0
- package/dist/tools/atlas-pack/atlas-pack.js.map +1 -0
- package/dist/tools/bundle/bundle.d.ts +3 -0
- package/dist/tools/bundle/bundle.js +48 -0
- package/dist/tools/bundle/bundle.js.map +1 -0
- package/dist/tools/bundle/html-plugin.d.ts +3 -0
- package/dist/tools/bundle/html-plugin.js +90 -0
- package/dist/tools/bundle/html-plugin.js.map +1 -0
- package/dist/tools/tsconfig-base.json +48 -0
- package/dist/tools/tsconfig.json +19 -0
- package/dist/tools/types/config.d.ts +27 -0
- package/dist/tools/types/config.js +31 -0
- package/dist/tools/types/config.js.map +1 -0
- package/dist/tools/types/package-json.d.ts +4 -0
- package/dist/tools/types/package-json.js +2 -0
- package/dist/tools/types/package-json.js.map +1 -0
- package/dist/tools/utils/argv.d.ts +12 -0
- package/dist/tools/utils/argv.js +19 -0
- package/dist/tools/utils/argv.js.map +1 -0
- package/dist/tools/utils/exec.d.ts +3 -0
- package/dist/tools/utils/exec.js +15 -0
- package/dist/tools/utils/exec.js.map +1 -0
- package/dist/tools/utils/file-util.d.ts +1 -0
- package/dist/tools/utils/file-util.js +13 -0
- package/dist/tools/utils/file-util.js.map +1 -0
- package/dist/tools/utils/html-parser.d.ts +1 -0
- package/dist/tools/utils/html-parser.js +10 -0
- package/dist/tools/utils/html-parser.js.map +1 -0
- package/dist/tools/void.d.ts +15 -0
- package/dist/tools/void.js +31 -0
- package/dist/tools/void.js.map +1 -0
- package/package.json +31 -41
- package/readme.md +1 -1
- package/schema/config-file.test.ts +55 -0
- package/schema/config-file.ts +69 -0
- package/schema/config-file.v0.json +68 -0
- package/tools/atlas-pack/aseprite.ts +60 -0
- package/tools/atlas-pack/atlas-json-parser.test.ts +780 -0
- package/tools/atlas-pack/atlas-json-parser.ts +159 -0
- package/tools/atlas-pack/atlas-pack.ts +51 -0
- package/tools/bundle/bundle.ts +64 -0
- package/tools/bundle/html-plugin.ts +135 -0
- package/tools/types/config.ts +65 -0
- package/tools/types/package-json.ts +4 -0
- package/tools/utils/argv.test.ts +41 -0
- package/tools/utils/argv.ts +29 -0
- package/tools/utils/exec.ts +22 -0
- package/tools/utils/file-util.ts +11 -0
- package/tools/utils/html-parser.ts +9 -0
- package/tools/void.ts +55 -0
- package/dist/atlas/anim.d.ts +0 -30
- package/dist/atlas/anim.js +0 -16
- package/dist/atlas/anim.js.map +0 -1
- package/dist/atlas/aseprite.d.ts +0 -37
- package/dist/atlas/aseprite.js +0 -2
- package/dist/atlas/aseprite.js.map +0 -1
- package/dist/atlas/atlas-parser.d.ts +0 -52
- package/dist/atlas/atlas-parser.js +0 -109
- package/dist/atlas/atlas-parser.js.map +0 -1
- package/dist/atlas/atlas.d.ts +0 -4
- package/dist/atlas/atlas.js +0 -2
- package/dist/atlas/atlas.js.map +0 -1
- package/dist/audio/synth.d.ts +0 -4
- package/dist/audio/synth.js +0 -21
- package/dist/audio/synth.js.map +0 -1
- package/dist/graphics/bitmap.d.ts +0 -14
- package/dist/graphics/bitmap.js +0 -14
- package/dist/graphics/bitmap.js.map +0 -1
- package/dist/graphics/cam.d.ts +0 -16
- package/dist/graphics/cam.js +0 -42
- package/dist/graphics/cam.js.map +0 -1
- package/dist/graphics/frag.glsl.d.ts +0 -1
- package/dist/graphics/frag.glsl.js +0 -15
- package/dist/graphics/frag.glsl.js.map +0 -1
- package/dist/graphics/frame-listener.d.ts +0 -16
- package/dist/graphics/frame-listener.js +0 -83
- package/dist/graphics/frame-listener.js.map +0 -1
- package/dist/graphics/renderer.d.ts +0 -12
- package/dist/graphics/renderer.js +0 -184
- package/dist/graphics/renderer.js.map +0 -1
- package/dist/graphics/vert.glsl.d.ts +0 -1
- package/dist/graphics/vert.glsl.js +0 -46
- package/dist/graphics/vert.glsl.js.map +0 -1
- package/dist/index.d.ts +0 -31
- package/dist/index.js +0 -79
- package/dist/index.js.map +0 -1
- package/dist/input/gamepad-poller.d.ts +0 -8
- package/dist/input/gamepad-poller.js +0 -38
- package/dist/input/gamepad-poller.js.map +0 -1
- package/dist/input/input.d.ts +0 -44
- package/dist/input/input.js +0 -175
- package/dist/input/input.js.map +0 -1
- package/dist/input/keyboard-poller.d.ts +0 -7
- package/dist/input/keyboard-poller.js +0 -30
- package/dist/input/keyboard-poller.js.map +0 -1
- package/dist/input/pointer-poller.d.ts +0 -12
- package/dist/input/pointer-poller.js +0 -67
- package/dist/input/pointer-poller.js.map +0 -1
- package/dist/sprite/sprite.d.ts +0 -51
- package/dist/sprite/sprite.js +0 -161
- package/dist/sprite/sprite.js.map +0 -1
- package/dist/storage/json-storage.d.ts +0 -4
- package/dist/storage/json-storage.js +0 -13
- package/dist/storage/json-storage.js.map +0 -1
- package/dist/test/tsconfig.json +0 -14
- package/dist/text/font.d.ts +0 -6
- package/dist/text/font.js +0 -18
- package/dist/text/font.js.map +0 -1
- package/dist/text/text-layout.d.ts +0 -11
- package/dist/text/text-layout.js +0 -73
- package/dist/text/text-layout.js.map +0 -1
- package/dist/tsconfig.json +0 -13
- package/dist/types/2d.d.ts +0 -9
- package/dist/types/2d.js +0 -2
- package/dist/types/2d.js.map +0 -1
- package/dist/void.js +0 -60
- package/dist/void.js.map +0 -7
- package/dist/void.meta.json +0 -289
- package/src/atlas/anim.js +0 -17
- package/tools/atlas-parser.js +0 -120
- package/tools/void.js +0 -143
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { Layer, layerOffset } from "../graphics/layer.js";
|
|
2
|
+
import { xyEq } from "../types/geo.js";
|
|
3
|
+
import { NinePatchEnt } from "./nine-patch-ent.js";
|
|
4
|
+
import { TextEnt } from "./text-ent.js";
|
|
5
|
+
export class ButtonEnt {
|
|
6
|
+
#button;
|
|
7
|
+
#invalid = true;
|
|
8
|
+
#pressed;
|
|
9
|
+
#selected;
|
|
10
|
+
#started = false;
|
|
11
|
+
#toggle = false;
|
|
12
|
+
#text = new TextEnt();
|
|
13
|
+
#xy = { x: 0, y: 0 };
|
|
14
|
+
constructor(v, opts) {
|
|
15
|
+
const buttonZ = opts.button.z ?? Layer.UID;
|
|
16
|
+
this.#button = new NinePatchEnt(v, {
|
|
17
|
+
...opts.button,
|
|
18
|
+
x: opts.x,
|
|
19
|
+
y: opts.y,
|
|
20
|
+
z: buttonZ,
|
|
21
|
+
wh: { w: opts.w, h: opts.h }
|
|
22
|
+
});
|
|
23
|
+
this.#pressed = {
|
|
24
|
+
sprite: v.sprites.alloc(),
|
|
25
|
+
z: opts.pressed.z ?? layerOffset(buttonZ, 2)
|
|
26
|
+
};
|
|
27
|
+
this.#selected = {
|
|
28
|
+
sprite: v.sprites.alloc(),
|
|
29
|
+
z: opts.selected.z ?? layerOffset(this.#pressed.z, -1)
|
|
30
|
+
};
|
|
31
|
+
this.#pressed.sprite.tag = opts.pressed.tag;
|
|
32
|
+
this.#pressed.sprite.x = opts.x ?? 0;
|
|
33
|
+
this.#pressed.sprite.y = opts.y ?? 0;
|
|
34
|
+
this.#pressed.sprite.w = opts.w ?? this.#button.wh.w;
|
|
35
|
+
this.#pressed.sprite.h = opts.h ?? this.#button.wh.h;
|
|
36
|
+
this.#pressed.sprite.z = Layer.Hidden;
|
|
37
|
+
this.#selected.sprite.tag = opts.selected.tag;
|
|
38
|
+
this.#selected.sprite.x = opts.x ?? 0;
|
|
39
|
+
this.#selected.sprite.y = opts.y ?? 0;
|
|
40
|
+
this.#selected.sprite.w = opts.w ?? this.#button.wh.w;
|
|
41
|
+
this.#selected.sprite.h = opts.h ?? this.#button.wh.h;
|
|
42
|
+
this.#selected.sprite.z = Layer.Hidden;
|
|
43
|
+
this.#text.text = opts.text?.text ?? '';
|
|
44
|
+
this.#text.scale = opts.text?.scale ?? 1;
|
|
45
|
+
this.#text.layout(v);
|
|
46
|
+
this.#moveText(v);
|
|
47
|
+
this.#text.maxW = opts.w ?? this.#button.wh.w;
|
|
48
|
+
this.#text.z = opts.text?.z ?? layerOffset(buttonZ, -1);
|
|
49
|
+
this.#toggle = opts.toggle ?? false;
|
|
50
|
+
}
|
|
51
|
+
get selected() {
|
|
52
|
+
return this.#selected.z !== Layer.Hidden;
|
|
53
|
+
}
|
|
54
|
+
free(v) {
|
|
55
|
+
this.#button.free(v);
|
|
56
|
+
this.#text.free(v);
|
|
57
|
+
v.sprites.free(this.#selected.sprite, this.#pressed.sprite);
|
|
58
|
+
}
|
|
59
|
+
get on() {
|
|
60
|
+
return this.#pressed.sprite.z !== Layer.Hidden;
|
|
61
|
+
}
|
|
62
|
+
set on(on) {
|
|
63
|
+
this.#pressed.sprite.z = on ? this.#pressed.z : Layer.Hidden;
|
|
64
|
+
}
|
|
65
|
+
// to-do: offStart() for pointer up listen? would need a boundary check too.
|
|
66
|
+
get onStart() {
|
|
67
|
+
return this.on && this.#started;
|
|
68
|
+
}
|
|
69
|
+
set text(str) {
|
|
70
|
+
this.#text.text = str;
|
|
71
|
+
}
|
|
72
|
+
update(v) {
|
|
73
|
+
let invalid = this.#invalid;
|
|
74
|
+
if (this.#button.update())
|
|
75
|
+
invalid = true;
|
|
76
|
+
if (this.#text.update(v))
|
|
77
|
+
invalid = true;
|
|
78
|
+
const hitsCursor = !v.input.handled && !!v.zoo.cursor?.hits(v, this.#selected.sprite, 'UI');
|
|
79
|
+
const clickStarted = (hitsCursor && v.input.isOnStart('Click')) ||
|
|
80
|
+
(v.zoo.cursor?.keyboard && v.input.isOnStart('A'));
|
|
81
|
+
const on = clickStarted
|
|
82
|
+
? this.#toggle
|
|
83
|
+
? !this.on
|
|
84
|
+
: true
|
|
85
|
+
: this.#toggle
|
|
86
|
+
? this.on
|
|
87
|
+
: v.input.isOn('Click') ||
|
|
88
|
+
(!!v.zoo.cursor?.keyboard && v.input.isOn('A'));
|
|
89
|
+
this.#started = this.on !== on;
|
|
90
|
+
if (this.#started) {
|
|
91
|
+
this.on = on;
|
|
92
|
+
invalid = true;
|
|
93
|
+
}
|
|
94
|
+
if (hitsCursor &&
|
|
95
|
+
(v.input.point?.click || v.input.point?.type === 'Mouse')) {
|
|
96
|
+
invalid ||= this.#selected.sprite.z !== this.#selected.z;
|
|
97
|
+
this.#selected.sprite.z = this.#selected.z;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
invalid ||= this.#selected.sprite.z !== Layer.Hidden;
|
|
101
|
+
this.#selected.sprite.z = Layer.Hidden;
|
|
102
|
+
}
|
|
103
|
+
v.input.handled ||= hitsCursor;
|
|
104
|
+
this.#invalid = false;
|
|
105
|
+
return invalid;
|
|
106
|
+
}
|
|
107
|
+
setXY(v, xy) {
|
|
108
|
+
if (xyEq(xy, this.#xy))
|
|
109
|
+
return;
|
|
110
|
+
this.#xy.x = xy.x;
|
|
111
|
+
this.#xy.y = xy.y;
|
|
112
|
+
this.#button.xy = xy;
|
|
113
|
+
this.#moveText(v);
|
|
114
|
+
this.#pressed.sprite.xy = xy;
|
|
115
|
+
this.#selected.sprite.xy = xy;
|
|
116
|
+
this.#invalid = true;
|
|
117
|
+
}
|
|
118
|
+
#moveText(v) {
|
|
119
|
+
this.#text.layout(v);
|
|
120
|
+
this.#text.xy = {
|
|
121
|
+
x: this.#button.xy.x + this.#button.wh.w / 2 - this.#text.wh.w / 2,
|
|
122
|
+
y: this.#button.xy.y +
|
|
123
|
+
this.#button.wh.h / 2 -
|
|
124
|
+
(this.#text.wh.h - this.#text.scaledLeading) / 2
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=button-ent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-ent.js","sourceRoot":"","sources":["../../../src/ents/button-ent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TagFormat } from '../graphics/atlas.ts';
|
|
2
|
+
import { type Box, type WH, type XY } from '../types/geo.ts';
|
|
3
|
+
import type { Void } from '../void.ts';
|
|
4
|
+
import type { Ent } from './ent.ts';
|
|
5
|
+
/**
|
|
6
|
+
* update this ent first. always prefer testing against cursor, not input, in
|
|
7
|
+
* other ents. the cursor may be moved by keyboard and has a hitbox.
|
|
8
|
+
*/
|
|
9
|
+
export declare class CursorEnt<out Tag extends TagFormat> implements Ent<Tag> {
|
|
10
|
+
#private;
|
|
11
|
+
keyboard: boolean;
|
|
12
|
+
constructor(v: Void<Tag, string>, point: Tag, pick?: Tag | undefined);
|
|
13
|
+
free(v: Void<Tag, string>): void;
|
|
14
|
+
hitbox(v: Readonly<Void<Tag, string>>, coords: 'Level' | 'UI'): Box;
|
|
15
|
+
hits(v: Readonly<Void<Tag, string>>, box: Readonly<XY & Partial<WH>>, coords: 'Level' | 'UI'): boolean;
|
|
16
|
+
update(v: Void<Tag, 'L' | 'R' | 'U' | 'D'>): boolean | undefined;
|
|
17
|
+
get visible(): boolean;
|
|
18
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Layer } from "../graphics/layer.js";
|
|
2
|
+
import { boxHits } from "../types/geo.js";
|
|
3
|
+
/**
|
|
4
|
+
* update this ent first. always prefer testing against cursor, not input, in
|
|
5
|
+
* other ents. the cursor may be moved by keyboard and has a hitbox.
|
|
6
|
+
*/
|
|
7
|
+
export class CursorEnt {
|
|
8
|
+
keyboard = false;
|
|
9
|
+
#sprite;
|
|
10
|
+
#pick;
|
|
11
|
+
#point;
|
|
12
|
+
constructor(v, point, pick) {
|
|
13
|
+
this.#point = point;
|
|
14
|
+
this.#pick = pick ?? this.#point;
|
|
15
|
+
this.#sprite = v.sprites.alloc();
|
|
16
|
+
this.#sprite.tag = point;
|
|
17
|
+
this.#sprite.z = Layer.Hidden;
|
|
18
|
+
}
|
|
19
|
+
free(v) {
|
|
20
|
+
v.sprites.free(this.#sprite);
|
|
21
|
+
}
|
|
22
|
+
hitbox(v, coords) {
|
|
23
|
+
const lvl = coords === 'Level';
|
|
24
|
+
const hitbox = this.#sprite.hitbox;
|
|
25
|
+
if (!hitbox)
|
|
26
|
+
throw Error('cursor has no hitbox');
|
|
27
|
+
return {
|
|
28
|
+
x: (lvl ? v.cam.x : 0) + hitbox.x,
|
|
29
|
+
y: (lvl ? v.cam.y : 0) + hitbox.y,
|
|
30
|
+
w: hitbox.w,
|
|
31
|
+
h: hitbox.h
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
hits(v, box, coords) {
|
|
35
|
+
return this.visible && boxHits(this.hitbox(v, coords), box);
|
|
36
|
+
}
|
|
37
|
+
update(v) {
|
|
38
|
+
if (v.input.point?.invalid) {
|
|
39
|
+
this.#sprite.tag = v.input.point.click ? this.#pick : this.#point;
|
|
40
|
+
this.#sprite.xy = v.input.point.local;
|
|
41
|
+
this.#sprite.z =
|
|
42
|
+
v.input.point?.type === 'Mouse' ? Layer.Top : Layer.Hidden;
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
if (this.keyboard && v.input.isAnyOn('L', 'R', 'U', 'D')) {
|
|
46
|
+
const epsilon = 1;
|
|
47
|
+
if (v.input.isOn('L'))
|
|
48
|
+
this.#sprite.x -= epsilon;
|
|
49
|
+
if (v.input.isOn('R'))
|
|
50
|
+
this.#sprite.x += epsilon;
|
|
51
|
+
if (v.input.isOn('U'))
|
|
52
|
+
this.#sprite.y -= epsilon;
|
|
53
|
+
if (v.input.isOn('D'))
|
|
54
|
+
this.#sprite.y += epsilon;
|
|
55
|
+
this.#sprite.z = Layer.Top;
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
get visible() {
|
|
60
|
+
return this.#sprite.z !== Layer.Hidden;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=cursor-ent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor-ent.js","sourceRoot":"","sources":["../../../src/ents/cursor-ent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TagFormat } from '../graphics/atlas.ts';
|
|
2
|
+
import type { Void } from '../void.ts';
|
|
3
|
+
export interface Ent<out Tag extends TagFormat> {
|
|
4
|
+
free?(v: Void<Tag, string>): void;
|
|
5
|
+
/** returns true if a render is required. */
|
|
6
|
+
update?(v: Void<Tag, string>): boolean | undefined;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ent.js","sourceRoot":"","sources":["../../../src/ents/ent.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { TagFormat } from '../graphics/atlas.ts';
|
|
2
|
+
import type { Layer } from '../graphics/layer.ts';
|
|
3
|
+
import { type CompassDir, type WH, type XY } from '../types/geo.ts';
|
|
4
|
+
import type { Void } from '../void.ts';
|
|
5
|
+
import type { Ent } from './ent.ts';
|
|
6
|
+
export declare class FollowCamEnt<Tag extends TagFormat> implements Ent<Tag> {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(v: Void<Tag, string>, tag: Tag, pivot: CompassDir);
|
|
9
|
+
get fill(): 'X' | 'Y' | 'XY' | undefined;
|
|
10
|
+
set fill(fill: 'X' | 'Y' | 'XY' | undefined);
|
|
11
|
+
free(v: Void<Tag, string>): void;
|
|
12
|
+
get h(): number;
|
|
13
|
+
set h(h: number);
|
|
14
|
+
get margin(): Readonly<WH>;
|
|
15
|
+
set margin(margin: Readonly<WH>);
|
|
16
|
+
get modulo(): Readonly<XY>;
|
|
17
|
+
set modulo(modulo: Readonly<XY>);
|
|
18
|
+
get pivot(): CompassDir;
|
|
19
|
+
set pivot(pivot: CompassDir);
|
|
20
|
+
update(v: Void<Tag, string>): boolean | undefined;
|
|
21
|
+
get w(): number;
|
|
22
|
+
set w(w: number);
|
|
23
|
+
get z(): Layer;
|
|
24
|
+
set z(z: Layer);
|
|
25
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { whAssign, whEq, xyAssign, xyEq } from "../types/geo.js";
|
|
2
|
+
export class FollowCamEnt {
|
|
3
|
+
#fill;
|
|
4
|
+
#invalid = true;
|
|
5
|
+
#margin = { w: 0, h: 0 };
|
|
6
|
+
#modulo = { x: 0, y: 0 };
|
|
7
|
+
#pivot;
|
|
8
|
+
#sprite;
|
|
9
|
+
constructor(v, tag, pivot) {
|
|
10
|
+
this.#sprite = v.sprites.alloc();
|
|
11
|
+
this.#sprite.tag = tag;
|
|
12
|
+
this.#pivot = pivot;
|
|
13
|
+
}
|
|
14
|
+
get fill() {
|
|
15
|
+
return this.#fill;
|
|
16
|
+
}
|
|
17
|
+
set fill(fill) {
|
|
18
|
+
if (this.#fill === fill)
|
|
19
|
+
return;
|
|
20
|
+
this.#fill = fill;
|
|
21
|
+
this.#invalid = true;
|
|
22
|
+
}
|
|
23
|
+
free(v) {
|
|
24
|
+
v.sprites.free(this.#sprite);
|
|
25
|
+
}
|
|
26
|
+
get h() {
|
|
27
|
+
return this.#sprite.h;
|
|
28
|
+
}
|
|
29
|
+
set h(h) {
|
|
30
|
+
if (this.#sprite.h === h)
|
|
31
|
+
return;
|
|
32
|
+
this.#sprite.h = h;
|
|
33
|
+
this.#invalid = true;
|
|
34
|
+
}
|
|
35
|
+
get margin() {
|
|
36
|
+
return this.#margin;
|
|
37
|
+
}
|
|
38
|
+
set margin(margin) {
|
|
39
|
+
if (whEq(margin, this.#margin))
|
|
40
|
+
return;
|
|
41
|
+
whAssign(this.#margin, margin);
|
|
42
|
+
this.#invalid = true;
|
|
43
|
+
}
|
|
44
|
+
get modulo() {
|
|
45
|
+
return this.#modulo;
|
|
46
|
+
}
|
|
47
|
+
set modulo(modulo) {
|
|
48
|
+
if (xyEq(modulo, this.#modulo))
|
|
49
|
+
return;
|
|
50
|
+
xyAssign(this.#modulo, modulo);
|
|
51
|
+
this.#invalid = true;
|
|
52
|
+
}
|
|
53
|
+
get pivot() {
|
|
54
|
+
return this.#pivot;
|
|
55
|
+
}
|
|
56
|
+
set pivot(pivot) {
|
|
57
|
+
if (this.#pivot === pivot)
|
|
58
|
+
return;
|
|
59
|
+
this.#pivot = pivot;
|
|
60
|
+
this.#invalid = true;
|
|
61
|
+
}
|
|
62
|
+
update(v) {
|
|
63
|
+
if (!this.#invalid && !v.cam.invalid)
|
|
64
|
+
return;
|
|
65
|
+
const follow = v.cam.follow({ w: this.#sprite.w, h: this.#sprite.h }, this.#sprite.z, this.#pivot, { fill: this.#fill, modulo: this.#modulo, margin: this.#margin });
|
|
66
|
+
this.#sprite.x = follow.x;
|
|
67
|
+
this.#sprite.y = follow.y;
|
|
68
|
+
this.#invalid = false;
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
get w() {
|
|
72
|
+
return this.#sprite.w;
|
|
73
|
+
}
|
|
74
|
+
set w(w) {
|
|
75
|
+
if (this.#sprite.w === w)
|
|
76
|
+
return;
|
|
77
|
+
this.#sprite.w = w;
|
|
78
|
+
this.#invalid = true;
|
|
79
|
+
}
|
|
80
|
+
get z() {
|
|
81
|
+
return this.#sprite.z;
|
|
82
|
+
}
|
|
83
|
+
set z(z) {
|
|
84
|
+
this.#sprite.z = z;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=follow-cam-ent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"follow-cam-ent.js","sourceRoot":"","sources":["../../../src/ents/follow-cam-ent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { TagFormat } from '../graphics/atlas.ts';
|
|
2
|
+
import type { Layer } from '../graphics/layer.ts';
|
|
3
|
+
import { type CardinalDir, type WH, type XY } from '../types/geo.ts';
|
|
4
|
+
import type { Void } from '../void.ts';
|
|
5
|
+
import type { Ent } from './ent.ts';
|
|
6
|
+
export type NinePatchOpts<Tag extends TagFormat> = {
|
|
7
|
+
margin?: {
|
|
8
|
+
w?: number | undefined;
|
|
9
|
+
h?: number | undefined;
|
|
10
|
+
} | undefined;
|
|
11
|
+
n: NinePatchDirOpts<Tag>;
|
|
12
|
+
origin: NinePatchDirOpts<Tag>;
|
|
13
|
+
border?: {
|
|
14
|
+
[dir in Lowercase<CardinalDir>]?: number | undefined;
|
|
15
|
+
};
|
|
16
|
+
wh?: {
|
|
17
|
+
w?: number | undefined;
|
|
18
|
+
h?: number | undefined;
|
|
19
|
+
} | undefined;
|
|
20
|
+
x?: number | undefined;
|
|
21
|
+
y?: number | undefined;
|
|
22
|
+
z?: Layer | undefined;
|
|
23
|
+
} & {
|
|
24
|
+
[dir in 'w' | 'nw' | 'n' | 'ne' | 'e' | 'se' | 's' | 'sw']?: NinePatchDirOpts<Tag> | undefined;
|
|
25
|
+
};
|
|
26
|
+
export type NinePatchDirOpts<Tag extends TagFormat> = {
|
|
27
|
+
flip?: {
|
|
28
|
+
x?: boolean;
|
|
29
|
+
y?: boolean;
|
|
30
|
+
} | undefined;
|
|
31
|
+
tag: Tag;
|
|
32
|
+
stretch?: boolean | undefined;
|
|
33
|
+
};
|
|
34
|
+
export declare class NinePatchEnt<Tag extends TagFormat> implements Ent<Tag> {
|
|
35
|
+
#private;
|
|
36
|
+
constructor(v: Void<Tag, string>, opts: Readonly<NinePatchOpts<Tag>>);
|
|
37
|
+
free(v: Void<Tag, string>): void;
|
|
38
|
+
update(): boolean | undefined;
|
|
39
|
+
get wh(): WH;
|
|
40
|
+
set wh(wh: Readonly<WH>);
|
|
41
|
+
get xy(): XY;
|
|
42
|
+
set xy(xy: Readonly<XY>);
|
|
43
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { whEq, xyEq } from "../types/geo.js";
|
|
2
|
+
export class NinePatchEnt {
|
|
3
|
+
#dir;
|
|
4
|
+
#margin;
|
|
5
|
+
#invalid = true;
|
|
6
|
+
constructor(v, opts) {
|
|
7
|
+
this.#dir = {
|
|
8
|
+
w: v.sprites.alloc(),
|
|
9
|
+
nw: v.sprites.alloc(),
|
|
10
|
+
n: v.sprites.alloc(),
|
|
11
|
+
ne: v.sprites.alloc(),
|
|
12
|
+
e: v.sprites.alloc(),
|
|
13
|
+
se: v.sprites.alloc(),
|
|
14
|
+
s: v.sprites.alloc(),
|
|
15
|
+
sw: v.sprites.alloc(),
|
|
16
|
+
origin: v.sprites.alloc()
|
|
17
|
+
};
|
|
18
|
+
this.#dir.w.tag = opts.w?.tag ?? opts.e?.tag ?? opts.n.tag;
|
|
19
|
+
this.#dir.n.tag = opts.n.tag;
|
|
20
|
+
this.#dir.e.tag = opts.e?.tag ?? this.#dir.w.tag;
|
|
21
|
+
this.#dir.s.tag = opts.s?.tag ?? this.#dir.n.tag;
|
|
22
|
+
this.#dir.nw.tag = opts.nw?.tag ?? opts.se?.tag ?? opts.n.tag;
|
|
23
|
+
this.#dir.ne.tag =
|
|
24
|
+
opts.ne?.tag ?? opts.sw?.tag ?? opts.nw?.tag ?? opts.n.tag;
|
|
25
|
+
this.#dir.se.tag = opts.se?.tag ?? this.#dir.nw.tag;
|
|
26
|
+
this.#dir.sw.tag = opts.sw?.tag ?? this.#dir.ne.tag;
|
|
27
|
+
this.#dir.origin.tag = opts.origin.tag;
|
|
28
|
+
this.#dir.w.z =
|
|
29
|
+
this.#dir.nw.z =
|
|
30
|
+
this.#dir.n.z =
|
|
31
|
+
this.#dir.ne.z =
|
|
32
|
+
this.#dir.e.z =
|
|
33
|
+
this.#dir.se.z =
|
|
34
|
+
this.#dir.s.z =
|
|
35
|
+
this.#dir.sw.z =
|
|
36
|
+
this.#dir.origin.z =
|
|
37
|
+
opts.z ?? 0;
|
|
38
|
+
this.#dir.w.stretch = opts.w?.stretch ?? opts.e?.stretch ?? false;
|
|
39
|
+
this.#dir.n.stretch = opts.n.stretch ?? opts.s?.stretch ?? false;
|
|
40
|
+
this.#dir.e.stretch = opts.e?.stretch ?? this.#dir.w.stretch;
|
|
41
|
+
this.#dir.s.stretch = opts.s?.stretch ?? this.#dir.n.stretch;
|
|
42
|
+
this.#dir.nw.stretch = opts.nw?.stretch ?? opts.se?.stretch ?? false;
|
|
43
|
+
this.#dir.ne.stretch = opts.ne?.stretch ?? opts.sw?.stretch ?? false;
|
|
44
|
+
this.#dir.se.stretch = opts.se?.stretch ?? this.#dir.nw.stretch;
|
|
45
|
+
this.#dir.sw.stretch = opts.sw?.stretch ?? this.#dir.ne.stretch;
|
|
46
|
+
this.#dir.origin.stretch = opts.origin.stretch ?? false;
|
|
47
|
+
this.#dir.w.flipX = opts.w?.flip?.x ?? !opts.e?.flip?.x;
|
|
48
|
+
this.#dir.w.flipY = opts.w?.flip?.y ?? !!opts.e?.flip?.y;
|
|
49
|
+
this.#dir.n.flipX = opts.n.flip?.x ?? !!opts.s?.flip?.x;
|
|
50
|
+
this.#dir.n.flipY = opts.n.flip?.y ?? !opts.s?.flip?.y;
|
|
51
|
+
this.#dir.e.flipX = opts.e?.flip?.x ?? !this.#dir.w.flipX;
|
|
52
|
+
this.#dir.e.flipY = opts.e?.flip?.y ?? this.#dir.w.flipY;
|
|
53
|
+
this.#dir.s.flipX = opts.s?.flip?.x ?? this.#dir.n.flipX;
|
|
54
|
+
this.#dir.s.flipY = opts.s?.flip?.y ?? !this.#dir.n.flipY;
|
|
55
|
+
this.#dir.origin.flipX = !!opts.origin.flip?.x;
|
|
56
|
+
this.#dir.origin.flipY = !!opts.origin.flip?.y;
|
|
57
|
+
this.#dir.n.h = opts.border?.n ?? opts.border?.s ?? this.#dir.n.h;
|
|
58
|
+
this.#dir.w.w = opts.border?.w ?? opts.border?.e ?? this.#dir.n.h;
|
|
59
|
+
this.#dir.e.w = opts.border?.e ?? this.#dir.w.w;
|
|
60
|
+
this.#dir.s.h = opts.border?.s ?? this.#dir.n.h;
|
|
61
|
+
this.#dir.nw.w = this.#dir.w.w;
|
|
62
|
+
this.#dir.nw.h = this.#dir.n.h;
|
|
63
|
+
this.#dir.ne.w = this.#dir.e.w;
|
|
64
|
+
this.#dir.ne.h = this.#dir.n.h;
|
|
65
|
+
this.#dir.se.w = this.#dir.e.w;
|
|
66
|
+
this.#dir.se.h = this.#dir.s.h;
|
|
67
|
+
this.#dir.sw.w = this.#dir.w.w;
|
|
68
|
+
this.#dir.sw.h = this.#dir.s.h;
|
|
69
|
+
this.#margin = { w: opts.margin?.w ?? 0, h: opts.margin?.h ?? 0 };
|
|
70
|
+
const w = opts.wh?.w == null
|
|
71
|
+
? this.#dir.w.w + this.#dir.n.w + this.#dir.e.w
|
|
72
|
+
: opts.wh.w;
|
|
73
|
+
this.#dir.n.w = w - 1; // force resize
|
|
74
|
+
this.wh = {
|
|
75
|
+
w,
|
|
76
|
+
h: opts.wh?.h == null
|
|
77
|
+
? this.#dir.n.h + this.#dir.e.h + this.#dir.s.h
|
|
78
|
+
: opts.wh.h
|
|
79
|
+
};
|
|
80
|
+
this.#dir.nw.x = (opts.x ?? 0) - 1; // force move.
|
|
81
|
+
this.xy = { x: opts.x ?? 0, y: opts.y ?? 0 };
|
|
82
|
+
}
|
|
83
|
+
free(v) {
|
|
84
|
+
v.sprites.free(this.#dir.w, this.#dir.nw, this.#dir.n, this.#dir.ne, this.#dir.e, this.#dir.se, this.#dir.s, this.#dir.sw, this.#dir.origin);
|
|
85
|
+
}
|
|
86
|
+
update() {
|
|
87
|
+
if (!this.#invalid)
|
|
88
|
+
return;
|
|
89
|
+
this.#invalid = false;
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
get wh() {
|
|
93
|
+
return {
|
|
94
|
+
w: this.#dir.w.w + this.#dir.n.w + this.#dir.e.w + this.#margin.w,
|
|
95
|
+
h: this.#dir.n.h + this.#dir.w.h + this.#dir.s.h + this.#margin.h
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
set wh(wh) {
|
|
99
|
+
if (whEq(wh, this.wh))
|
|
100
|
+
return;
|
|
101
|
+
this.#dir.w.h = wh.h - this.#dir.n.h - this.#dir.s.h - this.#margin.h;
|
|
102
|
+
this.#dir.n.w = wh.w - this.#dir.w.w - this.#dir.e.w - this.#margin.w;
|
|
103
|
+
this.#dir.s.w = this.#dir.n.w;
|
|
104
|
+
this.#dir.e.h = this.#dir.w.h;
|
|
105
|
+
this.#dir.origin.w = this.#dir.n.w;
|
|
106
|
+
this.#dir.origin.h = this.#dir.e.h;
|
|
107
|
+
this.#setXYRight();
|
|
108
|
+
this.#invalid = true;
|
|
109
|
+
}
|
|
110
|
+
get xy() {
|
|
111
|
+
return {
|
|
112
|
+
x: this.#dir.nw.x - this.#margin.w / 2,
|
|
113
|
+
y: this.#dir.nw.y - this.#margin.h / 2
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
set xy(xy) {
|
|
117
|
+
if (xyEq(xy, this.xy))
|
|
118
|
+
return;
|
|
119
|
+
this.#dir.nw.x = xy.x + this.#margin.w / 2;
|
|
120
|
+
this.#dir.nw.y = xy.y + this.#margin.h / 2;
|
|
121
|
+
this.#dir.w.x = this.#dir.nw.x;
|
|
122
|
+
this.#dir.w.y = this.#dir.nw.y + this.#dir.nw.h;
|
|
123
|
+
this.#dir.n.x = this.#dir.nw.x + this.#dir.nw.w;
|
|
124
|
+
this.#dir.n.y = this.#dir.nw.y;
|
|
125
|
+
this.#dir.origin.x = this.#dir.n.x;
|
|
126
|
+
this.#dir.origin.y = this.#dir.nw.y + this.#dir.ne.h;
|
|
127
|
+
this.#setXYRight();
|
|
128
|
+
this.#invalid = true;
|
|
129
|
+
}
|
|
130
|
+
#setXYRight() {
|
|
131
|
+
this.#dir.ne.x = this.#dir.n.x + this.#dir.n.w;
|
|
132
|
+
this.#dir.ne.y = this.#dir.nw.y;
|
|
133
|
+
this.#dir.e.x = this.#dir.ne.x;
|
|
134
|
+
this.#dir.e.y = this.#dir.nw.y + this.#dir.ne.h;
|
|
135
|
+
this.#dir.se.x = this.#dir.e.x;
|
|
136
|
+
this.#dir.se.y = this.#dir.e.y + this.#dir.e.h;
|
|
137
|
+
this.#dir.s.x = this.#dir.n.x;
|
|
138
|
+
this.#dir.s.y = this.#dir.se.y;
|
|
139
|
+
this.#dir.sw.x = this.#dir.nw.x;
|
|
140
|
+
this.#dir.sw.y = this.#dir.se.y;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=nine-patch-ent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nine-patch-ent.js","sourceRoot":"","sources":["../../../src/ents/nine-patch-ent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { TagFormat } from '../graphics/atlas.ts';
|
|
2
|
+
import { Layer } from '../graphics/layer.ts';
|
|
3
|
+
import { type WH, type XY } from '../types/geo.ts';
|
|
4
|
+
import type { Void } from '../void.ts';
|
|
5
|
+
import type { Ent } from './ent.ts';
|
|
6
|
+
export declare class TextEnt implements Ent<TagFormat> {
|
|
7
|
+
#private;
|
|
8
|
+
free(v: Void<TagFormat, string>): void;
|
|
9
|
+
layout(v: Void<TagFormat, string>): boolean;
|
|
10
|
+
get maxW(): number;
|
|
11
|
+
set maxW(w: number);
|
|
12
|
+
get scale(): number;
|
|
13
|
+
set scale(scale: number);
|
|
14
|
+
get text(): string;
|
|
15
|
+
set text(str: string);
|
|
16
|
+
update(v: Void<TagFormat, string>): boolean | undefined;
|
|
17
|
+
get scaledLeading(): number;
|
|
18
|
+
get wh(): Readonly<WH>;
|
|
19
|
+
get xy(): Readonly<XY>;
|
|
20
|
+
set xy(xy: Readonly<XY>);
|
|
21
|
+
get z(): Layer;
|
|
22
|
+
set z(layer: Layer);
|
|
23
|
+
}
|