@datamoc/mw_games 0.7.8 → 0.8.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/CHANGELOG.md +178 -0
- package/README.md +21 -0
- package/dist/assets/index.d.ts +1 -1
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +1 -1
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/loader.d.ts.map +1 -1
- package/dist/assets/loader.js +10 -1
- package/dist/assets/loader.js.map +1 -1
- package/dist/assets/paths.d.ts +23 -0
- package/dist/assets/paths.d.ts.map +1 -1
- package/dist/assets/paths.js +29 -0
- package/dist/assets/paths.js.map +1 -1
- package/dist/core/Math.d.ts +14 -0
- package/dist/core/Math.d.ts.map +1 -0
- package/dist/core/Math.js +16 -0
- package/dist/core/Math.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/mw_games.global.js +102 -102
- package/dist/mwl/catalog.d.ts +18 -2
- package/dist/mwl/catalog.d.ts.map +1 -1
- package/dist/mwl/catalog.js +0 -0
- package/dist/mwl/catalog.js.map +1 -1
- package/dist/mwl/content.d.ts +4 -0
- package/dist/mwl/content.d.ts.map +1 -1
- package/dist/mwl/content.js +2 -0
- package/dist/mwl/content.js.map +1 -1
- package/dist/mwl/grammar.d.ts.map +1 -1
- package/dist/mwl/grammar.js +37 -0
- package/dist/mwl/grammar.js.map +1 -1
- package/dist/mwl/hooks.d.ts +42 -1
- package/dist/mwl/hooks.d.ts.map +1 -1
- package/dist/mwl/hooks.js +41 -0
- package/dist/mwl/hooks.js.map +1 -1
- package/dist/mwl/index.d.ts +4 -4
- package/dist/mwl/index.d.ts.map +1 -1
- package/dist/mwl/index.js +2 -2
- package/dist/mwl/index.js.map +1 -1
- package/dist/mwl/runtime.d.ts +9 -0
- package/dist/mwl/runtime.d.ts.map +1 -1
- package/dist/mwl/runtime.js +70 -9
- package/dist/mwl/runtime.js.map +1 -1
- package/dist/mwl/schema.d.ts +33 -1
- package/dist/mwl/schema.d.ts.map +1 -1
- package/dist/mwl/schema.js +70 -10
- package/dist/mwl/schema.js.map +1 -1
- package/dist/roguelike/Targeting.d.ts +35 -0
- package/dist/roguelike/Targeting.d.ts.map +1 -1
- package/dist/roguelike/Targeting.js +72 -0
- package/dist/roguelike/Targeting.js.map +1 -1
- package/dist/roguelike/index.d.ts +2 -0
- package/dist/roguelike/index.d.ts.map +1 -1
- package/dist/roguelike/index.js +1 -0
- package/dist/roguelike/index.js.map +1 -1
- package/dist/rpg/Collision.d.ts.map +1 -1
- package/dist/rpg/Collision.js +1 -3
- package/dist/rpg/Collision.js.map +1 -1
- package/dist/two-d/pixi-interop.d.ts +28 -10
- package/dist/two-d/pixi-interop.d.ts.map +1 -1
- package/dist/two-d/pixi-interop.js +36 -10
- package/dist/two-d/pixi-interop.js.map +1 -1
- package/dist/two-d/render/Camera.d.ts +11 -0
- package/dist/two-d/render/Camera.d.ts.map +1 -1
- package/dist/two-d/render/Camera.js +14 -3
- package/dist/two-d/render/Camera.js.map +1 -1
- package/dist/two-d/render/ImageModifiers.d.ts +40 -0
- package/dist/two-d/render/ImageModifiers.d.ts.map +1 -1
- package/dist/two-d/render/ImageModifiers.js +47 -0
- package/dist/two-d/render/ImageModifiers.js.map +1 -1
- package/dist/two-d/render/PaletteRemap.d.ts.map +1 -1
- package/dist/two-d/render/PaletteRemap.js +12 -1
- package/dist/two-d/render/PaletteRemap.js.map +1 -1
- package/dist/two-d/render/Particles.d.ts +30 -9
- package/dist/two-d/render/Particles.d.ts.map +1 -1
- package/dist/two-d/render/Particles.js +42 -7
- package/dist/two-d/render/Particles.js.map +1 -1
- package/dist/two-d/render/Projectile.d.ts +16 -0
- package/dist/two-d/render/Projectile.d.ts.map +1 -1
- package/dist/two-d/render/Projectile.js +14 -0
- package/dist/two-d/render/Projectile.js.map +1 -1
- package/dist/two-d/render/ScreenEffects.d.ts +42 -4
- package/dist/two-d/render/ScreenEffects.d.ts.map +1 -1
- package/dist/two-d/render/ScreenEffects.js +64 -9
- package/dist/two-d/render/ScreenEffects.js.map +1 -1
- package/dist/two-d/render/Shape2D.d.ts +22 -2
- package/dist/two-d/render/Shape2D.d.ts.map +1 -1
- package/dist/two-d/render/Shape2D.js +31 -2
- package/dist/two-d/render/Shape2D.js.map +1 -1
- package/dist/two-d/render/SpriteSheet.d.ts +19 -3
- package/dist/two-d/render/SpriteSheet.d.ts.map +1 -1
- package/dist/two-d/render/SpriteSheet.js +26 -5
- package/dist/two-d/render/SpriteSheet.js.map +1 -1
- package/dist/two-d/render/StatusVisuals.d.ts +41 -23
- package/dist/two-d/render/StatusVisuals.d.ts.map +1 -1
- package/dist/two-d/render/StatusVisuals.js +65 -26
- package/dist/two-d/render/StatusVisuals.js.map +1 -1
- package/dist/two-d/render/index.d.ts +2 -2
- package/dist/two-d/render/index.d.ts.map +1 -1
- package/dist/two-d/render/index.js +2 -2
- package/dist/two-d/render/index.js.map +1 -1
- package/dist/two-d/ui/ListView.d.ts +9 -0
- package/dist/two-d/ui/ListView.d.ts.map +1 -1
- package/dist/two-d/ui/ListView.js +16 -6
- package/dist/two-d/ui/ListView.js.map +1 -1
- package/dist/two-d/ui/MarkupText.d.ts +14 -1
- package/dist/two-d/ui/MarkupText.d.ts.map +1 -1
- package/dist/two-d/ui/MarkupText.js +45 -11
- package/dist/two-d/ui/MarkupText.js.map +1 -1
- package/dist/two-d/ui/MessageBox.d.ts +10 -1
- package/dist/two-d/ui/MessageBox.d.ts.map +1 -1
- package/dist/two-d/ui/MessageBox.js +4 -1
- package/dist/two-d/ui/MessageBox.js.map +1 -1
- package/dist/two-d/ui/RichLabel.d.ts +7 -1
- package/dist/two-d/ui/RichLabel.d.ts.map +1 -1
- package/dist/two-d/ui/RichLabel.js +20 -9
- package/dist/two-d/ui/RichLabel.js.map +1 -1
- package/dist/two-d/ui/Window.d.ts +37 -1
- package/dist/two-d/ui/Window.d.ts.map +1 -1
- package/dist/two-d/ui/Window.js +55 -2
- package/dist/two-d/ui/Window.js.map +1 -1
- package/dist/two-d/ui/WindowStack.d.ts +24 -2
- package/dist/two-d/ui/WindowStack.d.ts.map +1 -1
- package/dist/two-d/ui/WindowStack.js +22 -1
- package/dist/two-d/ui/WindowStack.js.map +1 -1
- package/dist/two-d/ui/markup.d.ts +9 -1
- package/dist/two-d/ui/markup.d.ts.map +1 -1
- package/dist/two-d/ui/markup.js +20 -3
- package/dist/two-d/ui/markup.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -1
- package/tools/classic-html.d.mts +6 -0
- package/tools/classic-html.mjs +61 -0
- package/tools/mwl.mjs +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpriteSheet.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/SpriteSheet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1E
|
|
1
|
+
{"version":3,"file":"SpriteSheet.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/SpriteSheet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1E;;;;;;;;;;;GAWG;AACH,qBAAa,WAAW;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,KAAK,CAA6B;IAE1C,OAAO,eAMN;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAI,EAAE,WAAW,SAAa,GAAG,WAAW,CAE/E;IAED,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,SAAI,EAAE,WAAW,SAAa,GAAG,WAAW,CAE5F;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,8FAA8F;IAC9F,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAGtC;IAED,yEAAyE;IACzE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAGrD;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5B;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAsBrC;IAED;;;;;;;;;OASG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI7E;IAED;8FAC0F;IAC1F,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAG5C;IAED,0EAA0E;IAC1E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,CAI3C;IAED,iEAAiE;IACjE,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,EAAE,CAEnD;CACD"}
|
|
@@ -8,6 +8,10 @@ import { rectOf } from './Types2D.js';
|
|
|
8
8
|
* case and `name` labels the frames that matter. Frames are cut once and cached: asking
|
|
9
9
|
* for the same index twice returns the same Texture, so sprites sharing a frame also share
|
|
10
10
|
* a texture and stay in one batch.
|
|
11
|
+
*
|
|
12
|
+
* The rest are not grids at all: a hand-packed icon atlas, a strip of bar segments, a
|
|
13
|
+
* nine-patch's corners. Those declare their own rectangles with `rect`, and the sheet is
|
|
14
|
+
* built with no frame size, which leaves it with no grid and only the frames declared.
|
|
11
15
|
*/
|
|
12
16
|
export class SpriteSheet {
|
|
13
17
|
constructor(texture, frameWidth, frameHeight) {
|
|
@@ -16,18 +20,19 @@ export class SpriteSheet {
|
|
|
16
20
|
this.texture = texture;
|
|
17
21
|
this.frameWidth = frameWidth;
|
|
18
22
|
this.frameHeight = frameHeight;
|
|
19
|
-
this.columns = Math.floor(texture.width / frameWidth);
|
|
20
|
-
this.rows = Math.floor(texture.height / frameHeight);
|
|
23
|
+
this.columns = frameWidth > 0 ? Math.floor(texture.width / frameWidth) : 0;
|
|
24
|
+
this.rows = frameHeight > 0 ? Math.floor(texture.height / frameHeight) : 0;
|
|
21
25
|
}
|
|
22
26
|
/**
|
|
23
|
-
* Cuts a loaded texture into a grid, numbered left to right then top to bottom
|
|
27
|
+
* Cuts a loaded texture into a grid, numbered left to right then top to bottom, or, with
|
|
28
|
+
* no frame size, leaves the sheet with no grid for `rect` to fill in.
|
|
24
29
|
*
|
|
25
30
|
* @param path the asset path the texture was loaded with
|
|
26
31
|
*/
|
|
27
|
-
static grid(path, frameWidth, frameHeight = frameWidth) {
|
|
32
|
+
static grid(path, frameWidth = 0, frameHeight = frameWidth) {
|
|
28
33
|
return new SpriteSheet(Resources.texture(path), frameWidth, frameHeight);
|
|
29
34
|
}
|
|
30
|
-
static fromTexture(texture, frameWidth, frameHeight = frameWidth) {
|
|
35
|
+
static fromTexture(texture, frameWidth = 0, frameHeight = frameWidth) {
|
|
31
36
|
return new SpriteSheet(texture, frameWidth, frameHeight);
|
|
32
37
|
}
|
|
33
38
|
get count() {
|
|
@@ -65,6 +70,22 @@ export class SpriteSheet {
|
|
|
65
70
|
this.frames.set(index, texture);
|
|
66
71
|
return texture;
|
|
67
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Cuts an arbitrary rectangle out of the texture, for a sheet that is not a grid: one
|
|
75
|
+
* hand-packed icon, two banner frames, the corners of a nine-patch.
|
|
76
|
+
*
|
|
77
|
+
* The rectangle is cached under `index` exactly like a grid frame, so `get`, `region`,
|
|
78
|
+
* `name` and `pick` all treat it as a frame and asking for it twice returns the same
|
|
79
|
+
* `Texture` rather than cutting a second one. Declaring a rect for an index the grid
|
|
80
|
+
* also covers replaces that frame, which is what a tightened sub-rect of a cell is:
|
|
81
|
+
* an item whose art is smaller than its 16 by 16 cell keeps its index and its name.
|
|
82
|
+
*/
|
|
83
|
+
rect(index, x, y, width, height) {
|
|
84
|
+
if (width <= 0 || height <= 0)
|
|
85
|
+
throw new Error('a sprite sheet rect needs a positive width and height');
|
|
86
|
+
this.frames.set(index, new Texture({ source: this.texture.source, frame: new Rectangle(x, y, width, height) }));
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
68
89
|
/** the texture and frame rectangle together, as plain MWG types rather than `pixi.js`'s
|
|
69
90
|
* `Texture`/`Rectangle` - for a game that needs the geometry, not just the cut texture */
|
|
70
91
|
region(frame) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpriteSheet.js","sourceRoot":"","sources":["../../../src/two-d/render/SpriteSheet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAsC,MAAM,cAAc,CAAC;AAE1E
|
|
1
|
+
{"version":3,"file":"SpriteSheet.js","sourceRoot":"","sources":["../../../src/two-d/render/SpriteSheet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAsC,MAAM,cAAc,CAAC;AAE1E;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,WAAW;IAUvB,YAAoB,OAAkB,EAAE,UAAkB,EAAE,WAAmB;QAHvE,WAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;QACpC,UAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;QAGzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,IAAY,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,UAAU;QACjE,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAkB,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,UAAU;QAC9E,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,8FAA8F;IAC9F,IAAI,CAAC,IAAY,EAAE,KAAa;QAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,yEAAyE;IACzE,OAAO,CAAC,KAAuC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,CAAC,IAAY;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,GAAG,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAsB;QACzB,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEtE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,uCAAuC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC3B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,KAAK,EAAE,IAAI,SAAS,CACnB,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,EACxC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,EACnD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,CAChB;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,CAAC,KAAa,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QACtE,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACxG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAChH,OAAO,IAAI,CAAC;IACb,CAAC;IAED;8FAC0F;IAC1F,MAAM,CAAC,KAAsB;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,IAAY,EAAE,EAAU;QAC7B,MAAM,GAAG,GAAc,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,iEAAiE;IACjE,IAAI,CAAC,GAAG,MAA8B;QACrC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;CACD"}
|
|
@@ -1,33 +1,37 @@
|
|
|
1
1
|
export interface TintTarget {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/** the packed additive colour, the same field `TintedSprite.colorAdd` is */
|
|
3
|
+
colorAdd: number;
|
|
4
4
|
}
|
|
5
5
|
export interface StatusVisualStyle {
|
|
6
|
-
/** colour
|
|
6
|
+
/** colour this status contributes on top of every other active one */
|
|
7
7
|
color: number;
|
|
8
|
-
/** 0..1, how
|
|
8
|
+
/** 0..1, how strongly this status's colour contributes at full intensity; defaults to 0.5 */
|
|
9
9
|
strength?: number;
|
|
10
|
-
/** cycles per second the strength oscillates between 0 and `strength`; omit for a steady
|
|
10
|
+
/** cycles per second the strength oscillates between 0 and `strength`; omit for a steady contribution */
|
|
11
11
|
pulseRate?: number;
|
|
12
12
|
}
|
|
13
13
|
export interface StatusVisualsOptions {
|
|
14
|
-
/**
|
|
14
|
+
/** each active status's own contribution; no ordering meaning, since every active one composes */
|
|
15
15
|
styles: Record<string, StatusVisualStyle>;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
* Turns a set of active status-effect names into one
|
|
19
|
-
* `actors.applyStatusEffect` handles - which know nothing about rendering - can drive what
|
|
20
|
-
* character looks like without either side importing the other.
|
|
21
|
-
* priority: with both `poisoned` and `burning` active, whichever is declared first wins, the
|
|
22
|
-
* same "declaration order decides" rule `rpg.activePage` uses for map events.
|
|
18
|
+
* Turns a set of active status-effect names into one additive colour on a sprite, so a game's
|
|
19
|
+
* own `actors.applyStatusEffect` handles - which know nothing about rendering - can drive what
|
|
20
|
+
* a character looks like without either side importing the other.
|
|
23
21
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
22
|
+
* Every active status composes over the additive channel (`TintedSprite.colorAdd`) rather than
|
|
23
|
+
* one winning by declaration order: poisoned-and-burning sums both colours (each channel
|
|
24
|
+
* clamped to 1, so an oversaturated combination clips rather than wrapping), instead of only
|
|
25
|
+
* the first-declared style showing. This class never touches the multiply `tint`, so a
|
|
26
|
+
* sprite's own identity tint (a team colour, say) rides underneath untouched - the composition
|
|
27
|
+
* this class's own earlier version could not do, because writing both halves of `lerpTint` per
|
|
28
|
+
* update meant the last status checked always overwrote whatever tint a caller had set. A
|
|
29
|
+
* one-shot `flash` (a damage hit, a heal glow) layers its own decaying contribution on top of
|
|
30
|
+
* whatever statuses are active, rather than needing a caller to juggle a separate colour write.
|
|
31
|
+
*
|
|
32
|
+
* `target` is any object shaped like `TintedSprite`'s own `colorAdd` field - duck-typed the way
|
|
33
|
+
* `Projectile` takes a plain `{x, y}` rather than a real Pixi `Sprite`, so this is fully
|
|
34
|
+
* testable without Pixi and works on any sprite subclass that exposes the same field.
|
|
31
35
|
*
|
|
32
36
|
* @example
|
|
33
37
|
* ```ts
|
|
@@ -35,6 +39,7 @@ export interface StatusVisualsOptions {
|
|
|
35
39
|
*
|
|
36
40
|
* declare const ratTexture: Texture2D;
|
|
37
41
|
* const rat = new TintedSprite(ratTexture);
|
|
42
|
+
* rat.tint = 0x8080ff; // a team colour, untouched by anything below
|
|
38
43
|
*
|
|
39
44
|
* const visuals = new StatusVisuals(rat, {
|
|
40
45
|
* styles: {
|
|
@@ -44,25 +49,38 @@ export interface StatusVisualsOptions {
|
|
|
44
49
|
* });
|
|
45
50
|
*
|
|
46
51
|
* visuals.set('poisoned', true);
|
|
47
|
-
* visuals.
|
|
52
|
+
* visuals.set('burning', true);
|
|
53
|
+
* visuals.update(1 / 60); // both colours composed into rat.colorAdd; rat.tint is untouched
|
|
48
54
|
* console.log(visuals.has('poisoned')); // true
|
|
49
55
|
*
|
|
56
|
+
* visuals.flash(0xffffff, 0.8, 0.2); // a bright hit-flash, decaying over 0.2s
|
|
57
|
+
* visuals.update(1 / 60);
|
|
58
|
+
*
|
|
50
59
|
* visuals.set('poisoned', false);
|
|
51
|
-
* visuals.
|
|
60
|
+
* visuals.set('burning', false);
|
|
61
|
+
* visuals.update(1 / 60); // no status or flash left active: colorAdd back to 0
|
|
52
62
|
* ```
|
|
53
63
|
*/
|
|
54
64
|
export declare class StatusVisuals {
|
|
55
65
|
private target;
|
|
56
66
|
private styles;
|
|
57
|
-
/** `styles`' own key order, computed once rather than every `update()` - a per-frame call */
|
|
58
|
-
private priority;
|
|
59
67
|
private active;
|
|
60
68
|
private elapsed;
|
|
69
|
+
private flashColor;
|
|
70
|
+
private flashStrength;
|
|
71
|
+
private flashDuration;
|
|
72
|
+
private flashRemaining;
|
|
61
73
|
constructor(target: TintTarget, options: StatusVisualsOptions);
|
|
62
74
|
/** marks `kind` active or inactive; a `kind` with no matching style is tracked but never shown */
|
|
63
75
|
set(kind: string, active: boolean): void;
|
|
64
76
|
has(kind: string): boolean;
|
|
65
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* Layers a transient additive pulse on top of whatever statuses are active, linearly
|
|
79
|
+
* decaying `strength` to zero over `duration` seconds - a damage hit or a heal glow that
|
|
80
|
+
* needs no status of its own and no caller-managed timer.
|
|
81
|
+
*/
|
|
82
|
+
flash(color: number, strength: number, duration: number): void;
|
|
83
|
+
/** advances any pulsing style and the flash decay, and repaints the sprite's additive channel */
|
|
66
84
|
update(dt: number): void;
|
|
67
85
|
}
|
|
68
86
|
//# sourceMappingURL=StatusVisuals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusVisuals.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/StatusVisuals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StatusVisuals.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/StatusVisuals.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IAC1B,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IACjC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yGAAyG;IACzG,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACpC,kGAAkG;IAClG,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAE3B,YAAY,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAG5D;IAED,kGAAkG;IAClG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAGvC;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAK7D;IAED,iGAAiG;IACjG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CA6BvB;CACD"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
import { packColorAdd } from './ColorTransformBatcher.js';
|
|
1
2
|
/**
|
|
2
|
-
* Turns a set of active status-effect names into one
|
|
3
|
-
* `actors.applyStatusEffect` handles - which know nothing about rendering - can drive what
|
|
4
|
-
* character looks like without either side importing the other.
|
|
5
|
-
* priority: with both `poisoned` and `burning` active, whichever is declared first wins, the
|
|
6
|
-
* same "declaration order decides" rule `rpg.activePage` uses for map events.
|
|
3
|
+
* Turns a set of active status-effect names into one additive colour on a sprite, so a game's
|
|
4
|
+
* own `actors.applyStatusEffect` handles - which know nothing about rendering - can drive what
|
|
5
|
+
* a character looks like without either side importing the other.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
7
|
+
* Every active status composes over the additive channel (`TintedSprite.colorAdd`) rather than
|
|
8
|
+
* one winning by declaration order: poisoned-and-burning sums both colours (each channel
|
|
9
|
+
* clamped to 1, so an oversaturated combination clips rather than wrapping), instead of only
|
|
10
|
+
* the first-declared style showing. This class never touches the multiply `tint`, so a
|
|
11
|
+
* sprite's own identity tint (a team colour, say) rides underneath untouched - the composition
|
|
12
|
+
* this class's own earlier version could not do, because writing both halves of `lerpTint` per
|
|
13
|
+
* update meant the last status checked always overwrote whatever tint a caller had set. A
|
|
14
|
+
* one-shot `flash` (a damage hit, a heal glow) layers its own decaying contribution on top of
|
|
15
|
+
* whatever statuses are active, rather than needing a caller to juggle a separate colour write.
|
|
16
|
+
*
|
|
17
|
+
* `target` is any object shaped like `TintedSprite`'s own `colorAdd` field - duck-typed the way
|
|
18
|
+
* `Projectile` takes a plain `{x, y}` rather than a real Pixi `Sprite`, so this is fully
|
|
19
|
+
* testable without Pixi and works on any sprite subclass that exposes the same field.
|
|
15
20
|
*
|
|
16
21
|
* @example
|
|
17
22
|
* ```ts
|
|
@@ -19,6 +24,7 @@
|
|
|
19
24
|
*
|
|
20
25
|
* declare const ratTexture: Texture2D;
|
|
21
26
|
* const rat = new TintedSprite(ratTexture);
|
|
27
|
+
* rat.tint = 0x8080ff; // a team colour, untouched by anything below
|
|
22
28
|
*
|
|
23
29
|
* const visuals = new StatusVisuals(rat, {
|
|
24
30
|
* styles: {
|
|
@@ -28,20 +34,28 @@
|
|
|
28
34
|
* });
|
|
29
35
|
*
|
|
30
36
|
* visuals.set('poisoned', true);
|
|
31
|
-
* visuals.
|
|
37
|
+
* visuals.set('burning', true);
|
|
38
|
+
* visuals.update(1 / 60); // both colours composed into rat.colorAdd; rat.tint is untouched
|
|
32
39
|
* console.log(visuals.has('poisoned')); // true
|
|
33
40
|
*
|
|
41
|
+
* visuals.flash(0xffffff, 0.8, 0.2); // a bright hit-flash, decaying over 0.2s
|
|
42
|
+
* visuals.update(1 / 60);
|
|
43
|
+
*
|
|
34
44
|
* visuals.set('poisoned', false);
|
|
35
|
-
* visuals.
|
|
45
|
+
* visuals.set('burning', false);
|
|
46
|
+
* visuals.update(1 / 60); // no status or flash left active: colorAdd back to 0
|
|
36
47
|
* ```
|
|
37
48
|
*/
|
|
38
49
|
export class StatusVisuals {
|
|
39
50
|
constructor(target, options) {
|
|
40
51
|
this.active = new Set();
|
|
41
52
|
this.elapsed = 0;
|
|
53
|
+
this.flashColor = 0;
|
|
54
|
+
this.flashStrength = 0;
|
|
55
|
+
this.flashDuration = 0;
|
|
56
|
+
this.flashRemaining = 0;
|
|
42
57
|
this.target = target;
|
|
43
58
|
this.styles = options.styles;
|
|
44
|
-
this.priority = Object.keys(options.styles);
|
|
45
59
|
}
|
|
46
60
|
/** marks `kind` active or inactive; a `kind` with no matching style is tracked but never shown */
|
|
47
61
|
set(kind, active) {
|
|
@@ -53,20 +67,45 @@ export class StatusVisuals {
|
|
|
53
67
|
has(kind) {
|
|
54
68
|
return this.active.has(kind);
|
|
55
69
|
}
|
|
56
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Layers a transient additive pulse on top of whatever statuses are active, linearly
|
|
72
|
+
* decaying `strength` to zero over `duration` seconds - a damage hit or a heal glow that
|
|
73
|
+
* needs no status of its own and no caller-managed timer.
|
|
74
|
+
*/
|
|
75
|
+
flash(color, strength, duration) {
|
|
76
|
+
this.flashColor = color;
|
|
77
|
+
this.flashStrength = strength;
|
|
78
|
+
this.flashDuration = Math.max(duration, 1e-6);
|
|
79
|
+
this.flashRemaining = this.flashDuration;
|
|
80
|
+
}
|
|
81
|
+
/** advances any pulsing style and the flash decay, and repaints the sprite's additive channel */
|
|
57
82
|
update(dt) {
|
|
58
83
|
this.elapsed += dt;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
84
|
+
if (this.flashRemaining > 0)
|
|
85
|
+
this.flashRemaining = Math.max(0, this.flashRemaining - dt);
|
|
86
|
+
let r = 0;
|
|
87
|
+
let g = 0;
|
|
88
|
+
let b = 0;
|
|
89
|
+
for (const kind of this.active) {
|
|
90
|
+
const style = this.styles[kind];
|
|
91
|
+
if (!style)
|
|
92
|
+
continue;
|
|
93
|
+
const peak = style.strength ?? 0.5;
|
|
94
|
+
const strength = style.pulseRate
|
|
95
|
+
? peak * (0.5 + 0.5 * Math.sin(this.elapsed * style.pulseRate * Math.PI * 2))
|
|
96
|
+
: peak;
|
|
97
|
+
r += (((style.color >> 16) & 0xff) / 255) * strength;
|
|
98
|
+
g += (((style.color >> 8) & 0xff) / 255) * strength;
|
|
99
|
+
b += ((style.color & 0xff) / 255) * strength;
|
|
100
|
+
}
|
|
101
|
+
if (this.flashRemaining > 0) {
|
|
102
|
+
const flashT = this.flashRemaining / this.flashDuration;
|
|
103
|
+
const flashStrength = this.flashStrength * flashT;
|
|
104
|
+
r += (((this.flashColor >> 16) & 0xff) / 255) * flashStrength;
|
|
105
|
+
g += (((this.flashColor >> 8) & 0xff) / 255) * flashStrength;
|
|
106
|
+
b += ((this.flashColor & 0xff) / 255) * flashStrength;
|
|
63
107
|
}
|
|
64
|
-
|
|
65
|
-
const peak = style.strength ?? 0.5;
|
|
66
|
-
const strength = style.pulseRate
|
|
67
|
-
? peak * (0.5 + 0.5 * Math.sin(this.elapsed * style.pulseRate * Math.PI * 2))
|
|
68
|
-
: peak;
|
|
69
|
-
this.target.lerpTint(style.color, strength);
|
|
108
|
+
this.target.colorAdd = packColorAdd(Math.min(1, r), Math.min(1, g), Math.min(1, b));
|
|
70
109
|
}
|
|
71
110
|
}
|
|
72
111
|
//# sourceMappingURL=StatusVisuals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusVisuals.js","sourceRoot":"","sources":["../../../src/two-d/render/StatusVisuals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StatusVisuals.js","sourceRoot":"","sources":["../../../src/two-d/render/StatusVisuals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAqB1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,OAAO,aAAa;IAWzB,YAAY,MAAkB,EAAE,OAA6B;QARrD,WAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3B,YAAO,GAAG,CAAC,CAAC;QAEZ,eAAU,GAAG,CAAC,CAAC;QACf,kBAAa,GAAG,CAAC,CAAC;QAClB,kBAAa,GAAG,CAAC,CAAC;QAClB,mBAAc,GAAG,CAAC,CAAC;QAG1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,kGAAkG;IAClG,GAAG,CAAC,IAAY,EAAE,MAAe;QAChC,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;YAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAa,EAAE,QAAgB,EAAE,QAAgB;QACtD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,CAAC;IAED,iGAAiG;IACjG,MAAM,CAAC,EAAU;QAChB,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;QAEzF,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC;YACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS;gBAC/B,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7E,CAAC,CAAC,IAAI,CAAC;YACR,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC;YACrD,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC;YACpD,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;YAClD,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,aAAa,CAAC;YAC9D,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,aAAa,CAAC;YAC7D,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,aAAa,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;CACD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { ColorTransformBatcher, packColorAdd, packTintAdd, NO_COLOR_ADD } from './ColorTransformBatcher.ts';
|
|
2
2
|
export type { HasColorAdd } from './ColorTransformBatcher.ts';
|
|
3
3
|
export { TintedSprite, registerColorTransform } from './TintedSprite.ts';
|
|
4
|
-
export { applyImageModifiers, applyTextureModifiers, blendMatrix, blendPixels, channelScaleMatrix, channelSwapMatrix, colorShiftMatrix, croppedTexture, imageModifier, maskPixels, parseColorPairs, parseImagePath, parsePaletteLists, rotatePixels, } from './ImageModifiers.ts';
|
|
4
|
+
export { applyAllImageModifiers, applyImageModifiers, applyTextureModifiers, blendMatrix, blendPixels, channelScaleMatrix, channelSwapMatrix, colorShiftMatrix, croppedTexture, imageModifier, maskPixels, parseColorPairs, parseImagePath, parsePaletteLists, rotatePixels, spriteColorMatrix, } from './ImageModifiers.ts';
|
|
5
5
|
export type { ChannelSource, ImageModifier, ImageTextureProbe, ParsedImagePath, RotatedPixels, } from './ImageModifiers.ts';
|
|
6
6
|
export { AnimatedSprite, Animation } from './AnimatedSprite.ts';
|
|
7
7
|
export type { AnimationFrame, AnimationFrameInput, AnimationOptions } from './AnimatedSprite.ts';
|
|
@@ -43,7 +43,7 @@ export { inspectGraphicsCapabilities, detectWebGpu, RENDERING_DECISIONS } from '
|
|
|
43
43
|
export type { GraphicsCapabilities, GraphicsProbe, GraphicsWorkload, RenderingDecision, WebGpuDetection, } from './Capabilities.ts';
|
|
44
44
|
export { Container2D, Rectangle2D, Texture2D, rectOf } from './Types2D.ts';
|
|
45
45
|
export type { Rect, TextureRegion } from './Types2D.ts';
|
|
46
|
-
export { Node2D, Shape2D, Text2D, Sprite2D, TiledSprite, Gradient } from './Shape2D.ts';
|
|
46
|
+
export { Node2D, Shape2D, Text2D, Sprite2D, TiledSprite, Gradient, createLayers } from './Shape2D.ts';
|
|
47
47
|
export { paletteRangeMapping, recolorTexture, remapPixels, withTextureCanvas } from './PaletteRemap.ts';
|
|
48
48
|
export type { PaletteMapping, PaletteRange, PaletteRemapMode, RecolorProbe, RemapCanvas, RemapCanvasContext, } from './PaletteRemap.ts';
|
|
49
49
|
export { loadTiledMap } from './TiledMap.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC5G,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ColorTransformBatcher, packColorAdd, packTintAdd, NO_COLOR_ADD } from './ColorTransformBatcher.js';
|
|
2
2
|
export { TintedSprite, registerColorTransform } from './TintedSprite.js';
|
|
3
|
-
export { applyImageModifiers, applyTextureModifiers, blendMatrix, blendPixels, channelScaleMatrix, channelSwapMatrix, colorShiftMatrix, croppedTexture, imageModifier, maskPixels, parseColorPairs, parseImagePath, parsePaletteLists, rotatePixels, } from './ImageModifiers.js';
|
|
3
|
+
export { applyAllImageModifiers, applyImageModifiers, applyTextureModifiers, blendMatrix, blendPixels, channelScaleMatrix, channelSwapMatrix, colorShiftMatrix, croppedTexture, imageModifier, maskPixels, parseColorPairs, parseImagePath, parsePaletteLists, rotatePixels, spriteColorMatrix, } from './ImageModifiers.js';
|
|
4
4
|
export { AnimatedSprite, Animation } from './AnimatedSprite.js';
|
|
5
5
|
export { SpriteSheet } from './SpriteSheet.js';
|
|
6
6
|
export { Camera, createCamera, snapZoom } from './Camera.js';
|
|
@@ -22,7 +22,7 @@ export { hexRotate, matchTerrainRule, resolveTerrainGraphics, squareRotate } fro
|
|
|
22
22
|
export { TerrainGraphicsLayer } from './TerrainGraphicsLayer.js';
|
|
23
23
|
export { inspectGraphicsCapabilities, detectWebGpu, RENDERING_DECISIONS } from './Capabilities.js';
|
|
24
24
|
export { Container2D, Rectangle2D, Texture2D, rectOf } from './Types2D.js';
|
|
25
|
-
export { Node2D, Shape2D, Text2D, Sprite2D, TiledSprite, Gradient } from './Shape2D.js';
|
|
25
|
+
export { Node2D, Shape2D, Text2D, Sprite2D, TiledSprite, Gradient, createLayers } from './Shape2D.js';
|
|
26
26
|
export { paletteRangeMapping, recolorTexture, remapPixels, withTextureCanvas } from './PaletteRemap.js';
|
|
27
27
|
export { loadTiledMap } from './TiledMap.js';
|
|
28
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG5G,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG5G,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACN,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAG3F,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEzF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAWzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,2BAA2B,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AASnG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEtG,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAUxG,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -90,6 +90,15 @@ export declare class ListView extends Container {
|
|
|
90
90
|
move(delta: number): boolean;
|
|
91
91
|
select(index: number): void;
|
|
92
92
|
confirm(): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Selects and confirms row `index` in one step, the way a mouse or touch player expects
|
|
95
|
+
* from a menu row rather than a select-then-confirm keyboard sequence - the same pointer
|
|
96
|
+
* parity `IconGrid.tapCell` already gives its cells. A disabled row is a no-op, the same
|
|
97
|
+
* as an out-of-range one. This is what a row's own `pointerdown` handler calls, so a game
|
|
98
|
+
* driving the list programmatically (a test, a gamepad-to-pointer bridge) reaches the
|
|
99
|
+
* exact behaviour a real tap would.
|
|
100
|
+
*/
|
|
101
|
+
tapRow(index: number): void;
|
|
93
102
|
/** @returns true when the action was used */
|
|
94
103
|
handleAction(action: Action): boolean;
|
|
95
104
|
private refresh;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/ListView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,QAAQ;IACxB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iEAAiE;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,qEAAqE;IACrE,IAAI,CAAC,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEnB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,QAAS,SAAQ,SAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGvB;IACH,OAAO,CAAC,IAAI,CAAmB;IAE/B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,KAAK,CAAkB;IAE/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAE5C,OAAO,CAAC,MAAM,CAAK;IAEnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IAEtD,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3D,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAE9D,YAAY,OAAO,EAAE,eAAe,EA6BnC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,OAAO;IA2BN,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;IAED,OAAO,CAAC,QAAQ;IAIhB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAE9B;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/ListView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,QAAQ;IACxB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iEAAiE;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,qEAAqE;IACrE,IAAI,CAAC,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEnB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,QAAS,SAAQ,SAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGvB;IACH,OAAO,CAAC,IAAI,CAAmB;IAE/B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,KAAK,CAAkB;IAE/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAE5C,OAAO,CAAC,MAAM,CAAK;IAEnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IAEtD,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3D,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAE9D,YAAY,OAAO,EAAE,eAAe,EA6BnC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,OAAO;IA2BN,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;IAED,OAAO,CAAC,QAAQ;IAIhB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAE9B;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CA0ChC;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAK1C;IAED;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3B;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE1B;IAED,OAAO,IAAI,OAAO,CAEjB;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAK1B;IAED,6CAA6C;IAC7C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAWpC;IAED,OAAO,CAAC,OAAO;CA0Bf"}
|
|
@@ -134,12 +134,7 @@ export class ListView extends Container {
|
|
|
134
134
|
//a tap selects and confirms in one step, the way a mouse/touch player expects
|
|
135
135
|
//from a menu row - IconGrid's cells already work this way, this closes the same
|
|
136
136
|
//gap on ListView, which was keyboard-only until now
|
|
137
|
-
row.on('pointerdown', () =>
|
|
138
|
-
if (item.disabled)
|
|
139
|
-
return;
|
|
140
|
-
this.select(i);
|
|
141
|
-
this.confirm();
|
|
142
|
-
});
|
|
137
|
+
row.on('pointerdown', () => this.tapRow(i));
|
|
143
138
|
if (item.icon) {
|
|
144
139
|
item.icon.x = rtl ? this.viewWidth - t.spacing - this.rowHeight : t.spacing;
|
|
145
140
|
row.addChild(item.icon);
|
|
@@ -181,6 +176,21 @@ export class ListView extends Container {
|
|
|
181
176
|
confirm() {
|
|
182
177
|
return this.selection.confirm(this.onSelect);
|
|
183
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Selects and confirms row `index` in one step, the way a mouse or touch player expects
|
|
181
|
+
* from a menu row rather than a select-then-confirm keyboard sequence - the same pointer
|
|
182
|
+
* parity `IconGrid.tapCell` already gives its cells. A disabled row is a no-op, the same
|
|
183
|
+
* as an out-of-range one. This is what a row's own `pointerdown` handler calls, so a game
|
|
184
|
+
* driving the list programmatically (a test, a gamepad-to-pointer bridge) reaches the
|
|
185
|
+
* exact behaviour a real tap would.
|
|
186
|
+
*/
|
|
187
|
+
tapRow(index) {
|
|
188
|
+
const items = this.selection.items;
|
|
189
|
+
if (index < 0 || index >= items.length || items[index].disabled)
|
|
190
|
+
return;
|
|
191
|
+
this.select(index);
|
|
192
|
+
this.confirm();
|
|
193
|
+
}
|
|
184
194
|
/** @returns true when the action was used */
|
|
185
195
|
handleAction(action) {
|
|
186
196
|
switch (action) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListView.js","sourceRoot":"","sources":["../../../src/two-d/ui/ListView.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ListView.js","sourceRoot":"","sources":["../../../src/two-d/ui/ListView.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Container } from 'pixi.js';
|
|
1
|
+
import { Container, type TextStyleOptions } from 'pixi.js';
|
|
2
2
|
import type { Texture2D } from '../render/Types2D.ts';
|
|
3
3
|
import { type MarkupAlign, type MarkupDirection } from './markup.ts';
|
|
4
4
|
export interface MarkupTextOptions {
|
|
@@ -16,6 +16,11 @@ export interface MarkupTextOptions {
|
|
|
16
16
|
resolveImage?: (path: string) => Texture2D;
|
|
17
17
|
/** what a `$name` in the text becomes, the same contract `parseMarkup` takes */
|
|
18
18
|
variables?: Readonly<Record<string, string>>;
|
|
19
|
+
/**
|
|
20
|
+
* Pixi `Text` tag styles for custom inline tags, the same option a bare `Text2D` takes:
|
|
21
|
+
* supplying `<quest>`, say, makes `<quest>...</quest>` a styled run rather than literal text.
|
|
22
|
+
*/
|
|
23
|
+
tagStyles?: Readonly<Record<string, TextStyleOptions>>;
|
|
19
24
|
}
|
|
20
25
|
/**
|
|
21
26
|
* The canvas backend for inline markup, and the counterpart to `RichLabel`'s HTML text: the same
|
|
@@ -46,6 +51,14 @@ export declare class MarkupText extends Container {
|
|
|
46
51
|
/** re-parses, re-lays-out and re-draws; a theme change must re-measure against the new font */
|
|
47
52
|
private rebuild;
|
|
48
53
|
private measurePiece;
|
|
54
|
+
/** the Pixi tag style for a run's custom tag, or undefined for a built-in styled run */
|
|
55
|
+
private tagStyle;
|
|
56
|
+
/**
|
|
57
|
+
* The font a run is measured and drawn with: a custom tag's own family/size/weight/style when it
|
|
58
|
+
* sets them, the run's built-in style otherwise. Both `measurePiece` and `textFor` read this, so
|
|
59
|
+
* a tag's larger font wraps where its wider glyphs land rather than where the base font would.
|
|
60
|
+
*/
|
|
61
|
+
private resolvedFont;
|
|
49
62
|
private textFor;
|
|
50
63
|
private spriteFor;
|
|
51
64
|
destroy(options?: Parameters<Container['destroy']>[0]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkupText.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/MarkupText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"MarkupText.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/MarkupText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAIN,KAAK,WAAW,EAChB,KAAK,eAAe,EAGpB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,iBAAiB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4GAA4G;IAC5G,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC;IAC3C,gFAAgF;IAChF,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;CACvD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,UAAW,SAAQ,SAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAE/D,YAAY,OAAO,GAAE,iBAAsB,EAK1C;IAED,uFAAuF;IACvF,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG3B;IAED,+FAA+F;IAC/F,OAAO,CAAC,OAAO;IAoCf,OAAO,CAAC,YAAY;IAcpB,wFAAwF;IACxF,OAAO,CAAC,QAAQ;IAIhB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,OAAO;IAkBf,OAAO,CAAC,SAAS;IASR,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;CACD"}
|