@datamoc/mw_games 0.14.0 → 0.15.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/audio/Music.d.ts +27 -0
  3. package/dist/audio/Music.d.ts.map +1 -1
  4. package/dist/audio/Music.js +70 -2
  5. package/dist/audio/Music.js.map +1 -1
  6. package/dist/audio/Orchestrator.d.ts +4 -0
  7. package/dist/audio/Orchestrator.d.ts.map +1 -1
  8. package/dist/audio/Orchestrator.js +12 -0
  9. package/dist/audio/Orchestrator.js.map +1 -1
  10. package/dist/audio/Sound.d.ts +9 -0
  11. package/dist/audio/Sound.d.ts.map +1 -1
  12. package/dist/audio/Sound.js +18 -0
  13. package/dist/audio/Sound.js.map +1 -1
  14. package/dist/core/Settings.d.ts +96 -0
  15. package/dist/core/Settings.d.ts.map +1 -0
  16. package/dist/core/Settings.js +189 -0
  17. package/dist/core/Settings.js.map +1 -0
  18. package/dist/core/index.d.ts +2 -0
  19. package/dist/core/index.d.ts.map +1 -1
  20. package/dist/core/index.js +1 -0
  21. package/dist/core/index.js.map +1 -1
  22. package/dist/mw_games.global.js +115 -115
  23. package/dist/mwl/catalog.d.ts +42 -0
  24. package/dist/mwl/catalog.d.ts.map +1 -1
  25. package/dist/mwl/catalog.js +88 -0
  26. package/dist/mwl/catalog.js.map +1 -1
  27. package/dist/mwl/index.d.ts +1 -1
  28. package/dist/mwl/index.d.ts.map +1 -1
  29. package/dist/two-d/Game.d.ts +40 -0
  30. package/dist/two-d/Game.d.ts.map +1 -1
  31. package/dist/two-d/Game.js +66 -3
  32. package/dist/two-d/Game.js.map +1 -1
  33. package/dist/two-d/QualityScaler.d.ts +63 -0
  34. package/dist/two-d/QualityScaler.d.ts.map +1 -0
  35. package/dist/two-d/QualityScaler.js +92 -0
  36. package/dist/two-d/QualityScaler.js.map +1 -0
  37. package/dist/two-d/index.d.ts +3 -1
  38. package/dist/two-d/index.d.ts.map +1 -1
  39. package/dist/two-d/index.js +1 -0
  40. package/dist/two-d/index.js.map +1 -1
  41. package/dist/two-d/render/SpriteGroup.d.ts +83 -0
  42. package/dist/two-d/render/SpriteGroup.d.ts.map +1 -0
  43. package/dist/two-d/render/SpriteGroup.js +107 -0
  44. package/dist/two-d/render/SpriteGroup.js.map +1 -0
  45. package/dist/two-d/render/index.d.ts +2 -0
  46. package/dist/two-d/render/index.d.ts.map +1 -1
  47. package/dist/two-d/render/index.js +1 -0
  48. package/dist/two-d/render/index.js.map +1 -1
  49. package/dist/two-d/ui/Meter.d.ts +76 -0
  50. package/dist/two-d/ui/Meter.d.ts.map +1 -0
  51. package/dist/two-d/ui/Meter.js +134 -0
  52. package/dist/two-d/ui/Meter.js.map +1 -0
  53. package/dist/two-d/ui/SettingsScreen.d.ts +112 -0
  54. package/dist/two-d/ui/SettingsScreen.d.ts.map +1 -0
  55. package/dist/two-d/ui/SettingsScreen.js +338 -0
  56. package/dist/two-d/ui/SettingsScreen.js.map +1 -0
  57. package/dist/two-d/ui/index.d.ts +4 -0
  58. package/dist/two-d/ui/index.d.ts.map +1 -1
  59. package/dist/two-d/ui/index.js +2 -0
  60. package/dist/two-d/ui/index.js.map +1 -1
  61. package/dist/version.d.ts +1 -1
  62. package/dist/version.js +1 -1
  63. package/package.json +1 -1
@@ -0,0 +1,112 @@
1
+ import { Container } from 'pixi.js';
2
+ import type { Action } from '../../core/Input.ts';
3
+ import { Settings } from '../../core/Settings.ts';
4
+ /** one game-defined row over the `Settings` custom bag (`hints`, `violence`, ...) */
5
+ export type SettingsCustomRow = {
6
+ kind: 'boolean';
7
+ key: string;
8
+ label: string;
9
+ } | {
10
+ kind: 'number';
11
+ key: string;
12
+ label: string;
13
+ min: number;
14
+ max: number;
15
+ step?: number;
16
+ } | {
17
+ kind: 'choice';
18
+ key: string;
19
+ label: string;
20
+ options: readonly [string, ...string[]];
21
+ };
22
+ export interface SettingsScreenOptions {
23
+ settings: Settings;
24
+ width?: number;
25
+ rowHeight?: number;
26
+ /** English defaults; a game mapping these to translated strings overrides them */
27
+ labels?: {
28
+ music?: string;
29
+ sfx?: string;
30
+ muted?: string;
31
+ zoom?: string;
32
+ controls?: string;
33
+ reset?: string;
34
+ rebindHint?: string;
35
+ };
36
+ zoomMin?: number;
37
+ zoomMax?: number;
38
+ zoomStep?: number;
39
+ /** game-defined rows appended after zoom, in order */
40
+ custom?: readonly SettingsCustomRow[];
41
+ /** which actions the controls page lists; the stored binding keys when omitted */
42
+ actions?: readonly Action[];
43
+ /** passed through to the controls page's `RebindScreen` */
44
+ onConflict?: (key: string, action: Action, previousOwners: readonly Action[]) => boolean;
45
+ }
46
+ /**
47
+ * A ready-made settings screen over `core.Settings`: music and sound-effect sliders,
48
+ * a mute checkbox, a zoom slider, one row per game-defined `custom` descriptor, a
49
+ * controls page (`RebindScreen`), and a reset-to-defaults row. Every change writes
50
+ * straight through to the `Settings` it was given, so there is no apply step and no
51
+ * second persistence mechanism.
52
+ *
53
+ * Bindings captured on the controls page reach `Input` directly, bypassing `Settings`;
54
+ * leaving the page writes them back into it, so a rebind survives a restart. `cancel` on
55
+ * the main page is left to the caller (a `Window` closes, typically), reported as `false`.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * import { Settings } from '@datamoc/mw_games/core';
60
+ * import { SettingsScreen } from '@datamoc/mw_games/two-d/ui';
61
+ *
62
+ * const settings = new Settings({ namespace: 'my-game' });
63
+ * const screen = new SettingsScreen({
64
+ * settings,
65
+ * custom: [{ kind: 'boolean', key: 'hints', label: 'Hints' }],
66
+ * });
67
+ *
68
+ * screen.handleAction('down');
69
+ * console.log(screen.selectedRow); // 'sfx'
70
+ * ```
71
+ */
72
+ export declare class SettingsScreen extends Container {
73
+ private readonly settings;
74
+ private readonly width_;
75
+ private readonly rowHeight;
76
+ private readonly labels;
77
+ private readonly zoomMin;
78
+ private readonly zoomMax;
79
+ private readonly zoomStep;
80
+ private readonly customRows;
81
+ private readonly actionsOption;
82
+ private readonly onConflict;
83
+ private readonly highlight;
84
+ private readonly main;
85
+ private readonly rebindLayer;
86
+ private rows;
87
+ private selected;
88
+ private rebind;
89
+ private readonly themeListener;
90
+ constructor(options: SettingsScreenOptions);
91
+ /** the selected main-page row: 'music', 'sfx', 'muted', 'zoom', `custom:${key}`, 'controls' or 'reset' */
92
+ get selectedRow(): string;
93
+ /** true while the controls (rebind) page is open */
94
+ get isRebinding(): boolean;
95
+ /** @returns true when the action was used; `cancel` on the main page returns false */
96
+ handleAction(action: Action): boolean;
97
+ /** re-reads every row from `Settings`, for a screen kept alive while settings change elsewhere */
98
+ refresh(): void;
99
+ private select;
100
+ private drawHighlight;
101
+ private buildMain;
102
+ private addSliderRow;
103
+ private readSlider;
104
+ private addToggleRow;
105
+ private readToggle;
106
+ private addCustomRow;
107
+ private addActionRow;
108
+ private openRebind;
109
+ private closeRebind;
110
+ destroy(options?: Parameters<Container['destroy']>[0]): void;
111
+ }
112
+ //# sourceMappingURL=SettingsScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsScreen.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/SettingsScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAA2B,MAAM,wBAAwB,CAAC;AAS3E,qFAAqF;AACrF,MAAM,MAAM,iBAAiB,GAC1B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC;AAE3F,MAAM,WAAW,qBAAqB;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,kFAAkF;IAClF,MAAM,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,sDAAsD;IACtD,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAEtC,kFAAkF;IAClF,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE5B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC;CACzF;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,cAAe,SAAQ,SAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyD;IAChF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;IAEjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,MAAM,CAA6B;IAE3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,YAAY,OAAO,EAAE,qBAAqB,EAgCzC;IAED,0GAA0G;IAC1G,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,oDAAoD;IACpD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,sFAAsF;IACtF,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CA8BpC;IAED,kGAAkG;IAClG,OAAO,IAAI,IAAI,CAEd;IAED,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,YAAY;IA+EpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,WAAW;IAWV,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAKpE;CACD"}
@@ -0,0 +1,338 @@
1
+ import { Container, Graphics } from 'pixi.js';
2
+ import * as Input from '../../core/Input.js';
3
+ import { Settings } from '../../core/Settings.js';
4
+ import { Button } from './Button.js';
5
+ import { Checkbox } from './Checkbox.js';
6
+ import { Label } from './Label.js';
7
+ import { RebindScreen } from './RebindScreen.js';
8
+ import { Slider } from './Slider.js';
9
+ import { Spinner } from './Spinner.js';
10
+ import { theme, themeChanged } from './theme.js';
11
+ /**
12
+ * A ready-made settings screen over `core.Settings`: music and sound-effect sliders,
13
+ * a mute checkbox, a zoom slider, one row per game-defined `custom` descriptor, a
14
+ * controls page (`RebindScreen`), and a reset-to-defaults row. Every change writes
15
+ * straight through to the `Settings` it was given, so there is no apply step and no
16
+ * second persistence mechanism.
17
+ *
18
+ * Bindings captured on the controls page reach `Input` directly, bypassing `Settings`;
19
+ * leaving the page writes them back into it, so a rebind survives a restart. `cancel` on
20
+ * the main page is left to the caller (a `Window` closes, typically), reported as `false`.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import { Settings } from '@datamoc/mw_games/core';
25
+ * import { SettingsScreen } from '@datamoc/mw_games/two-d/ui';
26
+ *
27
+ * const settings = new Settings({ namespace: 'my-game' });
28
+ * const screen = new SettingsScreen({
29
+ * settings,
30
+ * custom: [{ kind: 'boolean', key: 'hints', label: 'Hints' }],
31
+ * });
32
+ *
33
+ * screen.handleAction('down');
34
+ * console.log(screen.selectedRow); // 'sfx'
35
+ * ```
36
+ */
37
+ export class SettingsScreen extends Container {
38
+ constructor(options) {
39
+ super();
40
+ this.highlight = new Graphics();
41
+ this.main = new Container();
42
+ this.rebindLayer = new Container();
43
+ this.rows = [];
44
+ this.selected = 0;
45
+ this.rebind = null;
46
+ this.themeListener = () => this.drawHighlight();
47
+ this.settings = options.settings;
48
+ this.width_ = options.width ?? 320;
49
+ this.rowHeight = options.rowHeight ?? 36;
50
+ this.labels = {
51
+ music: 'Music',
52
+ sfx: 'Sound effects',
53
+ muted: 'Mute',
54
+ zoom: 'Zoom',
55
+ controls: 'Controls...',
56
+ reset: 'Reset to defaults',
57
+ rebindHint: 'Keys (cancel: back)',
58
+ ...options.labels,
59
+ };
60
+ this.zoomMin = options.zoomMin ?? 0.5;
61
+ this.zoomMax = options.zoomMax ?? 4;
62
+ this.zoomStep = options.zoomStep ?? 0.25;
63
+ this.customRows = options.custom ?? [];
64
+ this.actionsOption = options.actions;
65
+ this.onConflict = options.onConflict;
66
+ this.addChild(this.highlight);
67
+ this.addChild(this.main);
68
+ this.addChild(this.rebindLayer);
69
+ this.rebindLayer.visible = false;
70
+ this.buildMain();
71
+ this.refresh();
72
+ this.drawHighlight();
73
+ themeChanged.add(this.themeListener);
74
+ }
75
+ /** the selected main-page row: 'music', 'sfx', 'muted', 'zoom', `custom:${key}`, 'controls' or 'reset' */
76
+ get selectedRow() {
77
+ return this.rows[this.selected]?.id ?? '';
78
+ }
79
+ /** true while the controls (rebind) page is open */
80
+ get isRebinding() {
81
+ return this.rebind !== null;
82
+ }
83
+ /** @returns true when the action was used; `cancel` on the main page returns false */
84
+ handleAction(action) {
85
+ if (this.rebind) {
86
+ if (action === 'cancel' && !this.rebind.isCapturing) {
87
+ this.closeRebind();
88
+ return true;
89
+ }
90
+ return this.rebind.handleAction(action);
91
+ }
92
+ const row = this.rows[this.selected];
93
+ if (!row)
94
+ return false;
95
+ switch (action) {
96
+ case 'up':
97
+ this.select((this.selected + this.rows.length - 1) % this.rows.length);
98
+ return true;
99
+ case 'down':
100
+ this.select((this.selected + 1) % this.rows.length);
101
+ return true;
102
+ case 'left':
103
+ row.adjust(-1);
104
+ return true;
105
+ case 'right':
106
+ row.adjust(1);
107
+ return true;
108
+ case 'confirm':
109
+ row.activate();
110
+ return true;
111
+ default:
112
+ return false;
113
+ }
114
+ }
115
+ /** re-reads every row from `Settings`, for a screen kept alive while settings change elsewhere */
116
+ refresh() {
117
+ for (const row of this.rows)
118
+ row.refresh();
119
+ }
120
+ select(index) {
121
+ this.selected = index;
122
+ this.drawHighlight();
123
+ }
124
+ drawHighlight() {
125
+ if (this.rows.length === 0) {
126
+ this.highlight.clear();
127
+ return;
128
+ }
129
+ this.highlight
130
+ .clear()
131
+ .rect(0, this.selected * this.rowHeight, this.width_, this.rowHeight)
132
+ .fill({ color: theme().color.selection });
133
+ }
134
+ buildMain() {
135
+ const current = this.settings.current;
136
+ this.addSliderRow('music', this.labels.music, 0, 100, 1, 10, Math.round(current.musicVolume * 100), (v) => this.settings.setMusicVolume(v / 100));
137
+ this.addSliderRow('sfx', this.labels.sfx, 0, 100, 1, 10, Math.round(current.sfxVolume * 100), (v) => this.settings.setSfxVolume(v / 100));
138
+ this.addToggleRow('muted', this.labels.muted, current.muted, (v) => this.settings.setMuted(v));
139
+ this.addSliderRow('zoom', this.labels.zoom, this.zoomMin, this.zoomMax, this.zoomStep, this.zoomStep, current.zoom, (v) => this.settings.setZoom(v));
140
+ for (const descriptor of this.customRows)
141
+ this.addCustomRow(descriptor);
142
+ this.addActionRow('controls', this.labels.controls, () => this.openRebind());
143
+ this.addActionRow('reset', this.labels.reset, () => {
144
+ this.settings.reset();
145
+ this.refresh();
146
+ });
147
+ this.main.children.forEach((child, index) => {
148
+ child.y = index * this.rowHeight;
149
+ });
150
+ }
151
+ addSliderRow(id, label, min, max, step, keyStep, initial, write) {
152
+ const root = new Container();
153
+ const caption = new Label({ text: label });
154
+ caption.y = 10;
155
+ const control = new Slider({ width: 140, min, max, step, value: initial });
156
+ control.x = this.width_ - 148;
157
+ control.y = 10;
158
+ root.addChild(caption, control);
159
+ this.main.addChild(root);
160
+ const show = () => {
161
+ caption.setText(`${label}: ${control.value}`);
162
+ };
163
+ show();
164
+ control.onChange.add((value) => {
165
+ write(value);
166
+ show();
167
+ });
168
+ this.rows.push({
169
+ id,
170
+ root,
171
+ adjust: (delta) => control.setValue(control.value + delta * keyStep),
172
+ activate: () => { },
173
+ refresh: () => {
174
+ control.setValue(this.readSlider(id));
175
+ show();
176
+ },
177
+ });
178
+ }
179
+ readSlider(id) {
180
+ const current = this.settings.current;
181
+ switch (id) {
182
+ case 'music':
183
+ return Math.round(current.musicVolume * 100);
184
+ case 'sfx':
185
+ return Math.round(current.sfxVolume * 100);
186
+ case 'zoom':
187
+ return current.zoom;
188
+ default:
189
+ return 0;
190
+ }
191
+ }
192
+ addToggleRow(id, label, initial, write) {
193
+ const root = new Container();
194
+ const caption = new Label({ text: label });
195
+ caption.y = 10;
196
+ const control = new Checkbox({ checked: initial });
197
+ control.x = this.width_ - 28;
198
+ control.y = 8;
199
+ root.addChild(caption, control);
200
+ this.main.addChild(root);
201
+ control.onChange.add(write);
202
+ this.rows.push({
203
+ id,
204
+ root,
205
+ adjust: () => control.toggle(),
206
+ activate: () => control.toggle(),
207
+ refresh: () => control.setChecked(this.readToggle(id)),
208
+ });
209
+ }
210
+ readToggle(id) {
211
+ if (id === 'muted')
212
+ return this.settings.current.muted;
213
+ return this.settings.getCustom(id.slice('custom:'.length), false) === true;
214
+ }
215
+ addCustomRow(descriptor) {
216
+ const id = `custom:${descriptor.key}`;
217
+ if (descriptor.kind === 'boolean') {
218
+ const stored = this.settings.getCustom(descriptor.key, false);
219
+ this.addToggleRow(id, descriptor.label, stored === true, (v) => this.settings.setCustom(descriptor.key, v));
220
+ }
221
+ else if (descriptor.kind === 'number') {
222
+ const stored = this.settings.getCustom(descriptor.key, descriptor.min);
223
+ const initial = typeof stored === 'number' ? stored : descriptor.min;
224
+ const grid = descriptor.step ?? 0;
225
+ const keyStep = grid > 0 ? grid : (descriptor.max - descriptor.min) / 20;
226
+ const root = new Container();
227
+ const caption = new Label({ text: descriptor.label });
228
+ caption.y = 10;
229
+ const control = new Slider({
230
+ width: 140,
231
+ min: descriptor.min,
232
+ max: descriptor.max,
233
+ step: descriptor.step ?? 0,
234
+ value: initial,
235
+ });
236
+ control.x = this.width_ - 148;
237
+ control.y = 10;
238
+ root.addChild(caption, control);
239
+ this.main.addChild(root);
240
+ const show = () => {
241
+ caption.setText(`${descriptor.label}: ${control.value}`);
242
+ };
243
+ show();
244
+ control.onChange.add((value) => {
245
+ this.settings.setCustom(descriptor.key, value);
246
+ show();
247
+ });
248
+ this.rows.push({
249
+ id,
250
+ root,
251
+ adjust: (delta) => control.setValue(control.value + delta * keyStep),
252
+ activate: () => { },
253
+ refresh: () => {
254
+ const value = this.settings.getCustom(descriptor.key, descriptor.min);
255
+ control.setValue(typeof value === 'number' ? value : descriptor.min);
256
+ show();
257
+ },
258
+ });
259
+ }
260
+ else {
261
+ const options = descriptor.options;
262
+ const root = new Container();
263
+ const caption = new Label({ text: descriptor.label });
264
+ caption.y = 10;
265
+ const control = new Spinner({ min: 0, max: options.length - 1, step: 1, value: 0, wrap: true });
266
+ control.x = this.width_ - 32;
267
+ control.y = 2;
268
+ root.addChild(caption, control);
269
+ this.main.addChild(root);
270
+ const indexOf = (value) => {
271
+ const index = typeof value === 'string' ? options.indexOf(value) : -1;
272
+ return index >= 0 ? index : 0;
273
+ };
274
+ const show = () => {
275
+ caption.setText(`${descriptor.label}: ${options[control.value]}`);
276
+ };
277
+ control.setValue(indexOf(this.settings.getCustom(descriptor.key, options[0])));
278
+ show();
279
+ control.onChange.add((index) => {
280
+ this.settings.setCustom(descriptor.key, options[index]);
281
+ show();
282
+ });
283
+ this.rows.push({
284
+ id,
285
+ root,
286
+ adjust: (delta) => (delta > 0 ? control.increment() : control.decrement()),
287
+ activate: () => control.increment(),
288
+ refresh: () => {
289
+ control.setValue(indexOf(this.settings.getCustom(descriptor.key, options[0])));
290
+ show();
291
+ },
292
+ });
293
+ }
294
+ }
295
+ addActionRow(id, label, run) {
296
+ const root = new Container();
297
+ const control = new Button({ width: this.width_ - 16, height: 28, text: label, onClick: run });
298
+ control.x = 8;
299
+ control.y = 4;
300
+ root.addChild(control);
301
+ this.main.addChild(root);
302
+ this.rows.push({ id, root, adjust: () => { }, activate: run, refresh: () => { } });
303
+ }
304
+ openRebind() {
305
+ const actions = this.actionsOption ?? Object.keys(this.settings.current.bindings);
306
+ const hint = new Label({ text: this.labels.rebindHint });
307
+ const list = new RebindScreen({
308
+ width: this.width_,
309
+ height: Math.max(1, actions.length) * this.rowHeight,
310
+ actions,
311
+ onConflict: this.onConflict,
312
+ });
313
+ hint.y = 0;
314
+ list.y = this.rowHeight;
315
+ this.rebindLayer.addChild(hint, list);
316
+ this.rebindLayer.visible = true;
317
+ this.main.visible = false;
318
+ this.highlight.visible = false;
319
+ this.rebind = list;
320
+ }
321
+ closeRebind() {
322
+ //captures bypass Settings straight into Input, so sync them back on exit
323
+ this.settings.setBindings(Input.exportBindings());
324
+ this.rebindLayer.removeChildren();
325
+ this.rebind?.destroy();
326
+ this.rebind = null;
327
+ this.rebindLayer.visible = false;
328
+ this.main.visible = true;
329
+ this.highlight.visible = true;
330
+ }
331
+ destroy(options) {
332
+ themeChanged.remove(this.themeListener);
333
+ this.rebind?.destroy();
334
+ this.rebind = null;
335
+ super.destroy(options);
336
+ }
337
+ }
338
+ //# sourceMappingURL=SettingsScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsScreen.js","sourceRoot":"","sources":["../../../src/two-d/ui/SettingsScreen.ts"],"names":[],"mappings":"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"}
@@ -51,8 +51,12 @@ export { Skins } from './Skins.ts';
51
51
  export type { Skin, SkinData, SkinStates, WidgetState } from './Skins.ts';
52
52
  export { RebindScreen } from './RebindScreen.ts';
53
53
  export type { RebindScreenOptions } from './RebindScreen.ts';
54
+ export { SettingsScreen } from './SettingsScreen.ts';
55
+ export type { SettingsCustomRow, SettingsScreenOptions } from './SettingsScreen.ts';
54
56
  export { Button } from './Button.ts';
55
57
  export type { ButtonOptions, ButtonSkin, ButtonState } from './Button.ts';
58
+ export { Meter } from './Meter.ts';
59
+ export type { MeterOptions } from './Meter.ts';
56
60
  export { Bar } from './Bar.ts';
57
61
  export type { BarOptions } from './Bar.ts';
58
62
  export { FloatingText, floatingTextAgeAtLeast, floatingTextAlpha, floatingTextRise } from './FloatingText.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,9 @@ export { ScrollBox, scrollOffset } from './ScrollBox.js';
25
25
  export { Grid, anchorAlign, resolveAnchor } from './Layout.js';
26
26
  export { Skins } from './Skins.js';
27
27
  export { RebindScreen } from './RebindScreen.js';
28
+ export { SettingsScreen } from './SettingsScreen.js';
28
29
  export { Button } from './Button.js';
30
+ export { Meter } from './Meter.js';
29
31
  export { Bar } from './Bar.js';
30
32
  export { FloatingText, floatingTextAgeAtLeast, floatingTextAlpha, floatingTextRise } from './FloatingText.js';
31
33
  export { FloatingTextStack, FLOATING_TEXT_STACK_GAP, floatingTextStackLift, floatingTextStackLifePenalty, floatingTextStackMoves, } from './FloatingTextStack.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/ui/index.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.14.0";
12
+ export declare const version = "0.15.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.14.0';
12
+ export const version = '0.15.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.14.0",
3
+ "version": "0.15.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": {