@datamoc/mw_games 0.7.9 → 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 +87 -0
- package/dist/mw_games.global.js +102 -102
- package/dist/mwl/catalog.d.ts +7 -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/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 +62 -7
- 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 +56 -5
- 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/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/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/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/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/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -15,7 +15,9 @@ import { screenReader } from './a11y.js';
|
|
|
15
15
|
* driven by a character count rather than by animating the label.
|
|
16
16
|
*
|
|
17
17
|
* This is the one window that is not closable by `cancel`: a conversation ends when it
|
|
18
|
-
* ends, or a cutscene would be left half-run.
|
|
18
|
+
* ends, or a cutscene would be left half-run. It swallows clicks for the same reason, and
|
|
19
|
+
* because it is not closable that can only ever swallow them: a click under the box does not
|
|
20
|
+
* move the player or open something, it does nothing at all.
|
|
19
21
|
*
|
|
20
22
|
* @example
|
|
21
23
|
* ```ts
|
|
@@ -45,6 +47,7 @@ export class MessageBox extends Window {
|
|
|
45
47
|
modal: true,
|
|
46
48
|
closable: false,
|
|
47
49
|
dims: options.dims,
|
|
50
|
+
blocker: options.blocker ?? true,
|
|
48
51
|
anchor: options.anchor ?? 'bottom',
|
|
49
52
|
});
|
|
50
53
|
this.pageIndex = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageBox.js","sourceRoot":"","sources":["../../../src/two-d/ui/MessageBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AAE3G,OAAO,EAAE,iBAAiB,EAAuB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageBox.js","sourceRoot":"","sources":["../../../src/two-d/ui/MessageBox.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,15 @@ export interface WindowOptions {
|
|
|
19
19
|
dims?: boolean;
|
|
20
20
|
/** where the stack puts it; 'bottom' is the usual place for a dialogue box */
|
|
21
21
|
anchor?: 'center' | 'bottom' | 'top';
|
|
22
|
+
/**
|
|
23
|
+
* Whether a click anywhere is swallowed rather than reaching what is underneath, and closes
|
|
24
|
+
* the window when it lands outside it. A window left to itself is not clickable - only the
|
|
25
|
+
* widgets inside it are - so a click on a map under an open inventory still reaches the map;
|
|
26
|
+
* this is the layer that stops it, and the tap-outside-to-dismiss a phone user expects.
|
|
27
|
+
*
|
|
28
|
+
* Off by default, since it is a change to what the whole screen answers to.
|
|
29
|
+
*/
|
|
30
|
+
blocker?: boolean;
|
|
22
31
|
}
|
|
23
32
|
/**
|
|
24
33
|
* A panel with a frame, a title and a content area.
|
|
@@ -29,11 +38,16 @@ export interface WindowOptions {
|
|
|
29
38
|
* Contents go in `content`, whose origin is already inset past the frame and padding, so a
|
|
30
39
|
* child placed at 0,0 sits correctly whatever the theme's border is.
|
|
31
40
|
*
|
|
41
|
+
* The window's own area is not clickable: the frame, the title and any part of the body with
|
|
42
|
+
* no widget in it let a click travel to whatever is underneath, so a window over a map is not
|
|
43
|
+
* by itself a wall. `blocker` is the option that makes one, and it is what a window that has
|
|
44
|
+
* to be answered should set.
|
|
45
|
+
*
|
|
32
46
|
* @example
|
|
33
47
|
* ```ts
|
|
34
48
|
* import { Window, Label } from '@datamoc/mw_games/two-d/ui';
|
|
35
49
|
*
|
|
36
|
-
* const confirm = new Window({ width: 200, height: 100, title: 'Leave?', anchor: 'center' });
|
|
50
|
+
* const confirm = new Window({ width: 200, height: 100, title: 'Leave?', anchor: 'center', blocker: true });
|
|
37
51
|
* confirm.content.addChild(new Label({ text: 'Progress since your last save will be lost.' }));
|
|
38
52
|
* confirm.onClose.add(() => console.log('window closed'));
|
|
39
53
|
*
|
|
@@ -54,6 +68,8 @@ export declare class Window extends Container {
|
|
|
54
68
|
private innerHeight;
|
|
55
69
|
private currentWidth;
|
|
56
70
|
private currentHeight;
|
|
71
|
+
/** the full-viewport click layer, first child so every widget of the window sits above it */
|
|
72
|
+
private blocker;
|
|
57
73
|
private readonly themeListener;
|
|
58
74
|
private isClosed;
|
|
59
75
|
constructor(options: WindowOptions);
|
|
@@ -97,6 +113,26 @@ export declare class Window extends Container {
|
|
|
97
113
|
close(): void;
|
|
98
114
|
/** positions the window in a viewport of the given size, per its anchor */
|
|
99
115
|
place(viewportWidth: number, viewportHeight: number): void;
|
|
116
|
+
/**
|
|
117
|
+
* The blocker's hit area is the whole viewport, expressed in the window's own coordinates,
|
|
118
|
+
* which is where the blocker's local space starts. It covers the window itself as well as
|
|
119
|
+
* the space around it, so nothing at all is clicked through while it is there; whether the
|
|
120
|
+
* click also closes the window is `handleOutsideClick`'s question, not the shape's.
|
|
121
|
+
*/
|
|
122
|
+
private fitBlocker;
|
|
123
|
+
private readonly onBlockerDown;
|
|
124
|
+
/**
|
|
125
|
+
* Offered a click that landed on the blocker, at `x, y` in this window's own coordinates
|
|
126
|
+
* (its top-left corner is 0, 0). A click outside the window closes it when it is closable -
|
|
127
|
+
* the pointer's answer to `handleAction('cancel')` - and a click on the window itself is
|
|
128
|
+
* swallowed without closing, so its frame and empty body are never a dismiss button.
|
|
129
|
+
*
|
|
130
|
+
* The blocker calls this for every click it takes, which is all a game usually needs; it is
|
|
131
|
+
* public because it is also the whole decision, and a headless test can ask it directly.
|
|
132
|
+
*
|
|
133
|
+
* @returns true when the click closed the window
|
|
134
|
+
*/
|
|
135
|
+
handleOutsideClick(x: number, y: number): boolean;
|
|
100
136
|
destroy(options?: Parameters<Container['destroy']>[0]): void;
|
|
101
137
|
}
|
|
102
138
|
//# sourceMappingURL=Window.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Window.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"Window.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmD,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMlD,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,8EAA8E;IAC9E,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAErC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,MAAO,SAAQ,SAAS;IACpC,QAAQ,CAAC,OAAO,8CAAmB;IACnC,QAAQ,CAAC,OAAO,eAAsB;IAEtC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAE7C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAsB;IAExC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAE1B,6FAA6F;IAC7F,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAY,OAAO,EAAE,aAAa,EAqCjC;IAED,2FAA2F;IAC3F,OAAO,CAAC,OAAO;IAKf,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA6B1C;IAED,0FAA0F;IAC1F,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE3B;IAED;;;;;;OAMG;IACH,QAAQ,EAAE;QAAE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI,CAAQ;IAElE;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CASpC;IAED;;;;;OAKG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,kEAAkE;IAClE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAExB;IAED;;;;OAIG;IACH,KAAK,IAAI,IAAI,CAMZ;IAED,2EAA2E;IAC3E,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAgBzD;IAED;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;IAEF;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAMhD;IAEQ,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAIpE;CACD"}
|
package/dist/two-d/ui/Window.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Container, Graphics } from 'pixi.js';
|
|
1
|
+
import { Container, Graphics, Rectangle } from 'pixi.js';
|
|
2
2
|
import { Signal } from '../../core/Signal.js';
|
|
3
3
|
import { NinePatch } from './NinePatch.js';
|
|
4
4
|
import { Label } from './Label.js';
|
|
@@ -13,11 +13,16 @@ import { screenReader } from './a11y.js';
|
|
|
13
13
|
* Contents go in `content`, whose origin is already inset past the frame and padding, so a
|
|
14
14
|
* child placed at 0,0 sits correctly whatever the theme's border is.
|
|
15
15
|
*
|
|
16
|
+
* The window's own area is not clickable: the frame, the title and any part of the body with
|
|
17
|
+
* no widget in it let a click travel to whatever is underneath, so a window over a map is not
|
|
18
|
+
* by itself a wall. `blocker` is the option that makes one, and it is what a window that has
|
|
19
|
+
* to be answered should set.
|
|
20
|
+
*
|
|
16
21
|
* @example
|
|
17
22
|
* ```ts
|
|
18
23
|
* import { Window, Label } from '@datamoc/mw_games/two-d/ui';
|
|
19
24
|
*
|
|
20
|
-
* const confirm = new Window({ width: 200, height: 100, title: 'Leave?', anchor: 'center' });
|
|
25
|
+
* const confirm = new Window({ width: 200, height: 100, title: 'Leave?', anchor: 'center', blocker: true });
|
|
21
26
|
* confirm.content.addChild(new Label({ text: 'Progress since your last save will be lost.' }));
|
|
22
27
|
* confirm.onClose.add(() => console.log('window closed'));
|
|
23
28
|
*
|
|
@@ -35,6 +40,8 @@ export class Window extends Container {
|
|
|
35
40
|
this.innerHeight = 0;
|
|
36
41
|
this.currentWidth = 0;
|
|
37
42
|
this.currentHeight = 0;
|
|
43
|
+
/** the full-viewport click layer, first child so every widget of the window sits above it */
|
|
44
|
+
this.blocker = null;
|
|
38
45
|
this.themeListener = () => this.restyle();
|
|
39
46
|
this.isClosed = false;
|
|
40
47
|
/**
|
|
@@ -45,11 +52,25 @@ export class Window extends Container {
|
|
|
45
52
|
* best and, done by assigning over the method, a trap.
|
|
46
53
|
*/
|
|
47
54
|
this.delegate = null;
|
|
55
|
+
this.onBlockerDown = (event) => {
|
|
56
|
+
//a blocker means the click stops here: what is under the window never hears about it
|
|
57
|
+
event.stopPropagation();
|
|
58
|
+
const at = event.getLocalPosition(this);
|
|
59
|
+
this.handleOutsideClick(at.x, at.y);
|
|
60
|
+
};
|
|
48
61
|
const t = theme();
|
|
49
62
|
this.modal = options.modal ?? true;
|
|
50
63
|
this.closable = options.closable ?? true;
|
|
51
64
|
this.dims = options.dims ?? this.modal;
|
|
52
65
|
this.anchor = options.anchor ?? 'center';
|
|
66
|
+
if (options.blocker === true) {
|
|
67
|
+
//a plain container draws nothing and is not hit-tested at all without a hitArea,
|
|
68
|
+
//which is exactly the shape wanted: a click catcher with no appearance
|
|
69
|
+
this.blocker = new Container();
|
|
70
|
+
this.blocker.eventMode = 'static';
|
|
71
|
+
this.blocker.on('pointerdown', this.onBlockerDown);
|
|
72
|
+
this.addChild(this.blocker);
|
|
73
|
+
}
|
|
53
74
|
if (t.panel) {
|
|
54
75
|
this.background = new NinePatch(t.panel, { border: t.panelBorder });
|
|
55
76
|
}
|
|
@@ -169,6 +190,38 @@ export class Window extends Container {
|
|
|
169
190
|
else {
|
|
170
191
|
this.y = Math.round((viewportHeight - bounds.height) / 2);
|
|
171
192
|
}
|
|
193
|
+
this.fitBlocker(viewportWidth, viewportHeight);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* The blocker's hit area is the whole viewport, expressed in the window's own coordinates,
|
|
197
|
+
* which is where the blocker's local space starts. It covers the window itself as well as
|
|
198
|
+
* the space around it, so nothing at all is clicked through while it is there; whether the
|
|
199
|
+
* click also closes the window is `handleOutsideClick`'s question, not the shape's.
|
|
200
|
+
*/
|
|
201
|
+
fitBlocker(width, height) {
|
|
202
|
+
if (!this.blocker)
|
|
203
|
+
return;
|
|
204
|
+
this.blocker.hitArea = new Rectangle(-this.x, -this.y, width, height);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Offered a click that landed on the blocker, at `x, y` in this window's own coordinates
|
|
208
|
+
* (its top-left corner is 0, 0). A click outside the window closes it when it is closable -
|
|
209
|
+
* the pointer's answer to `handleAction('cancel')` - and a click on the window itself is
|
|
210
|
+
* swallowed without closing, so its frame and empty body are never a dismiss button.
|
|
211
|
+
*
|
|
212
|
+
* The blocker calls this for every click it takes, which is all a game usually needs; it is
|
|
213
|
+
* public because it is also the whole decision, and a headless test can ask it directly.
|
|
214
|
+
*
|
|
215
|
+
* @returns true when the click closed the window
|
|
216
|
+
*/
|
|
217
|
+
handleOutsideClick(x, y) {
|
|
218
|
+
if (this.isClosed)
|
|
219
|
+
return false;
|
|
220
|
+
const onWindow = x >= 0 && y >= 0 && x < this.currentWidth && y < this.currentHeight;
|
|
221
|
+
if (onWindow || !this.closable)
|
|
222
|
+
return false;
|
|
223
|
+
this.close();
|
|
224
|
+
return true;
|
|
172
225
|
}
|
|
173
226
|
destroy(options) {
|
|
174
227
|
this.isClosed = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Window.js","sourceRoot":"","sources":["../../../src/two-d/ui/Window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Window.js","sourceRoot":"","sources":["../../../src/two-d/ui/Window.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Container } from 'pixi.js';
|
|
2
|
+
import type { Action } from '../../core/Input.ts';
|
|
2
3
|
import type { Window } from './Window.ts';
|
|
3
4
|
/**
|
|
4
5
|
* The stack of open windows, and the arbiter of who has the keyboard.
|
|
@@ -8,6 +9,21 @@ import type { Window } from './Window.ts';
|
|
|
8
9
|
* responding until the confirmation is answered, without either window knowing about the
|
|
9
10
|
* other.
|
|
10
11
|
*
|
|
12
|
+
* A scene with its own keyboard handling has to say which comes first, because registration
|
|
13
|
+
* order decides nothing here: `Input.onAction` offers an action to the most recently
|
|
14
|
+
* registered listener first, and the stack registers in its constructor, so a scene that
|
|
15
|
+
* builds its stack in `create()` and then registers a handler is asked *before* the windows
|
|
16
|
+
* are. Returning true for a key a window needed takes it away from that window. Chain through
|
|
17
|
+
* `handleAction` instead, and the windows keep the priority they are supposed to have:
|
|
18
|
+
*
|
|
19
|
+
* ```ts
|
|
20
|
+
* Input.onAction.add((action) => stack.handleAction(action) || myOwnHandling(action));
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* A scene that does not chain must return false for every key it did not consume, and check
|
|
24
|
+
* `blocksWorld` itself before acting on one, since an open modal window is not otherwise
|
|
25
|
+
* visible from outside.
|
|
26
|
+
*
|
|
11
27
|
* Below a modal window sits a dimming layer, which is both a visual cue and a hint that
|
|
12
28
|
* the world underneath is not listening.
|
|
13
29
|
*/
|
|
@@ -31,8 +47,14 @@ export declare class WindowStack extends Container {
|
|
|
31
47
|
private forget;
|
|
32
48
|
private updateOverlay;
|
|
33
49
|
private drawOverlay;
|
|
34
|
-
/**
|
|
35
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Offers an action to the top window, which is the routing the stack does for itself:
|
|
52
|
+
* exposed so a scene can put the windows ahead of its own handling rather than racing them
|
|
53
|
+
* for it (see the class doc for the order that race is decided by).
|
|
54
|
+
*
|
|
55
|
+
* @returns true when the top window consumed the action
|
|
56
|
+
*/
|
|
57
|
+
handleAction(action: Action): boolean;
|
|
36
58
|
/** true while any window is open, so the world knows to hold still */
|
|
37
59
|
get blocksWorld(): boolean;
|
|
38
60
|
update(dt: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindowStack.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/WindowStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"WindowStack.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/WindowStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACzC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAkB;IAEjC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,QAAQ,CAA0D;IAC1E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAE1D,cASC;IAED,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAM/C;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,IAAI,CAEvB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,mEAAmE;IACnE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAa3B;IAED,+CAA+C;IAC/C,GAAG,IAAI,IAAI,CAEV;IAED,QAAQ,IAAI,IAAI,CAGf;IAED,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,WAAW;IAQnB;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpC;IAED,sEAAsE;IACtE,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEvB;IAEQ,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAIpE;CACD"}
|
|
@@ -9,6 +9,21 @@ import { theme, themeChanged } from './theme.js';
|
|
|
9
9
|
* responding until the confirmation is answered, without either window knowing about the
|
|
10
10
|
* other.
|
|
11
11
|
*
|
|
12
|
+
* A scene with its own keyboard handling has to say which comes first, because registration
|
|
13
|
+
* order decides nothing here: `Input.onAction` offers an action to the most recently
|
|
14
|
+
* registered listener first, and the stack registers in its constructor, so a scene that
|
|
15
|
+
* builds its stack in `create()` and then registers a handler is asked *before* the windows
|
|
16
|
+
* are. Returning true for a key a window needed takes it away from that window. Chain through
|
|
17
|
+
* `handleAction` instead, and the windows keep the priority they are supposed to have:
|
|
18
|
+
*
|
|
19
|
+
* ```ts
|
|
20
|
+
* Input.onAction.add((action) => stack.handleAction(action) || myOwnHandling(action));
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* A scene that does not chain must return false for every key it did not consume, and check
|
|
24
|
+
* `blocksWorld` itself before acting on one, since an open modal window is not otherwise
|
|
25
|
+
* visible from outside.
|
|
26
|
+
*
|
|
12
27
|
* Below a modal window sits a dimming layer, which is both a visual cue and a hint that
|
|
13
28
|
* the world underneath is not listening.
|
|
14
29
|
*/
|
|
@@ -91,7 +106,13 @@ export class WindowStack extends Container {
|
|
|
91
106
|
.rect(0, 0, this.viewportWidth, this.viewportHeight)
|
|
92
107
|
.fill({ color: t.color.overlay, alpha: t.overlayAlpha });
|
|
93
108
|
}
|
|
94
|
-
/**
|
|
109
|
+
/**
|
|
110
|
+
* Offers an action to the top window, which is the routing the stack does for itself:
|
|
111
|
+
* exposed so a scene can put the windows ahead of its own handling rather than racing them
|
|
112
|
+
* for it (see the class doc for the order that race is decided by).
|
|
113
|
+
*
|
|
114
|
+
* @returns true when the top window consumed the action
|
|
115
|
+
*/
|
|
95
116
|
handleAction(action) {
|
|
96
117
|
return this.top?.handleAction(action) ?? false;
|
|
97
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindowStack.js","sourceRoot":"","sources":["../../../src/two-d/ui/WindowStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"WindowStack.js","sourceRoot":"","sources":["../../../src/two-d/ui/WindowStack.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
* this from `package.json` automatically, chosen because this project's own build already
|
|
10
10
|
* has no step before `tsc`/`vite` that this would need to run ahead of.
|
|
11
11
|
*/
|
|
12
|
-
export declare const version = "0.
|
|
12
|
+
export declare const version = "0.8.0";
|
|
13
13
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
* this from `package.json` automatically, chosen because this project's own build already
|
|
10
10
|
* has no step before `tsc`/`vite` that this would need to run ahead of.
|
|
11
11
|
*/
|
|
12
|
-
export const version = '0.
|
|
12
|
+
export const version = '0.8.0';
|
|
13
13
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datamoc/mw_games",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "A local-file game framework: renderer-free game logic, drawn through PixiJS in 2D or Babylon.js in 3D, with mobile and desktop packaging.",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"repository": {
|