@datamoc/mw_games 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -32
- package/dist/actors/Appearances.js +1 -1
- package/dist/actors/Aura.d.ts +29 -0
- package/dist/actors/Aura.d.ts.map +1 -0
- package/dist/actors/Aura.js +69 -0
- package/dist/actors/Aura.js.map +1 -0
- package/dist/actors/ItemStatusEffect.d.ts +27 -0
- package/dist/actors/ItemStatusEffect.d.ts.map +1 -0
- package/dist/actors/ItemStatusEffect.js +35 -0
- package/dist/actors/ItemStatusEffect.js.map +1 -0
- package/dist/actors/Resource.d.ts.map +1 -1
- package/dist/actors/Resource.js +13 -5
- package/dist/actors/Resource.js.map +1 -1
- package/dist/actors/Support.d.ts +32 -0
- package/dist/actors/Support.d.ts.map +1 -0
- package/dist/actors/Support.js +60 -0
- package/dist/actors/Support.js.map +1 -0
- package/dist/actors/Traits.d.ts +29 -0
- package/dist/actors/Traits.d.ts.map +1 -0
- package/dist/actors/Traits.js +21 -0
- package/dist/actors/Traits.js.map +1 -0
- package/dist/actors/craft.d.ts.map +1 -1
- package/dist/actors/craft.js +6 -2
- package/dist/actors/craft.js.map +1 -1
- package/dist/actors/index.d.ts +8 -0
- package/dist/actors/index.d.ts.map +1 -1
- package/dist/actors/index.js +4 -0
- package/dist/actors/index.js.map +1 -1
- package/dist/assets/Streaming.d.ts +40 -0
- package/dist/assets/Streaming.d.ts.map +1 -0
- package/dist/assets/Streaming.js +79 -0
- package/dist/assets/Streaming.js.map +1 -0
- package/dist/assets/index.d.ts +14 -1
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +19 -0
- package/dist/assets/index.js.map +1 -1
- package/dist/audio/Captions.d.ts +15 -0
- package/dist/audio/Captions.d.ts.map +1 -0
- package/dist/audio/Captions.js +4 -0
- package/dist/audio/Captions.js.map +1 -0
- package/dist/audio/Midi.d.ts +75 -0
- package/dist/audio/Midi.d.ts.map +1 -0
- package/dist/audio/Midi.js +186 -0
- package/dist/audio/Midi.js.map +1 -0
- package/dist/audio/Orchestrator.d.ts +40 -0
- package/dist/audio/Orchestrator.d.ts.map +1 -0
- package/dist/audio/Orchestrator.js +48 -0
- package/dist/audio/Orchestrator.js.map +1 -0
- package/dist/audio/Sound.d.ts +3 -0
- package/dist/audio/Sound.d.ts.map +1 -1
- package/dist/audio/Sound.js +4 -0
- package/dist/audio/Sound.js.map +1 -1
- package/dist/audio/Synth.d.ts +35 -0
- package/dist/audio/Synth.d.ts.map +1 -0
- package/dist/audio/Synth.js +96 -0
- package/dist/audio/Synth.js.map +1 -0
- package/dist/audio/index.d.ts +8 -0
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +4 -0
- package/dist/audio/index.js.map +1 -1
- package/dist/battle/Party.d.ts.map +1 -1
- package/dist/battle/Party.js +2 -0
- package/dist/battle/Party.js.map +1 -1
- package/dist/board/Army.d.ts +17 -0
- package/dist/board/Army.d.ts.map +1 -0
- package/dist/board/Army.js +48 -0
- package/dist/board/Army.js.map +1 -0
- package/dist/board/Classics.d.ts.map +1 -1
- package/dist/board/Classics.js +14 -6
- package/dist/board/Classics.js.map +1 -1
- package/dist/board/FogOfWar.d.ts +23 -0
- package/dist/board/FogOfWar.d.ts.map +1 -0
- package/dist/board/FogOfWar.js +40 -0
- package/dist/board/FogOfWar.js.map +1 -0
- package/dist/board/Tactics.d.ts +2 -0
- package/dist/board/Tactics.d.ts.map +1 -1
- package/dist/board/Tactics.js +36 -8
- package/dist/board/Tactics.js.map +1 -1
- package/dist/board/index.d.ts +5 -1
- package/dist/board/index.d.ts.map +1 -1
- package/dist/board/index.js +3 -1
- package/dist/board/index.js.map +1 -1
- package/dist/core/Feedback.d.ts +23 -0
- package/dist/core/Feedback.d.ts.map +1 -0
- package/dist/core/Feedback.js +35 -0
- package/dist/core/Feedback.js.map +1 -0
- package/dist/core/Game.d.ts +27 -1
- package/dist/core/Game.d.ts.map +1 -1
- package/dist/core/Game.js +61 -5
- package/dist/core/Game.js.map +1 -1
- package/dist/core/Input.d.ts +59 -1
- package/dist/core/Input.d.ts.map +1 -1
- package/dist/core/Input.js +135 -0
- package/dist/core/Input.js.map +1 -1
- package/dist/core/Loading.d.ts +48 -0
- package/dist/core/Loading.d.ts.map +1 -0
- package/dist/core/Loading.js +102 -0
- package/dist/core/Loading.js.map +1 -0
- package/dist/core/News.d.ts +46 -0
- package/dist/core/News.d.ts.map +1 -0
- package/dist/core/News.js +79 -0
- package/dist/core/News.js.map +1 -0
- package/dist/core/PlayerInput.d.ts +38 -0
- package/dist/core/PlayerInput.d.ts.map +1 -0
- package/dist/core/PlayerInput.js +57 -0
- package/dist/core/PlayerInput.js.map +1 -0
- package/dist/core/Random.d.ts +2 -2
- package/dist/core/Random.js +2 -2
- package/dist/core/RunHistory.d.ts +43 -0
- package/dist/core/RunHistory.d.ts.map +1 -0
- package/dist/core/RunHistory.js +41 -0
- package/dist/core/RunHistory.js.map +1 -0
- package/dist/core/Sanitize.d.ts +56 -0
- package/dist/core/Sanitize.d.ts.map +1 -0
- package/dist/core/Sanitize.js +87 -0
- package/dist/core/Sanitize.js.map +1 -0
- package/dist/core/Save.d.ts +31 -7
- package/dist/core/Save.d.ts.map +1 -1
- package/dist/core/Save.js +56 -0
- package/dist/core/Save.js.map +1 -1
- package/dist/core/SaveSync.d.ts +26 -0
- package/dist/core/SaveSync.d.ts.map +1 -0
- package/dist/core/SaveSync.js +52 -0
- package/dist/core/SaveSync.js.map +1 -0
- package/dist/core/Scramble.d.ts +13 -0
- package/dist/core/Scramble.d.ts.map +1 -0
- package/dist/core/Scramble.js +44 -0
- package/dist/core/Scramble.js.map +1 -0
- package/dist/core/Session.d.ts +21 -0
- package/dist/core/Session.d.ts.map +1 -0
- package/dist/core/Session.js +11 -0
- package/dist/core/Session.js.map +1 -0
- package/dist/core/Spawner.d.ts +48 -0
- package/dist/core/Spawner.d.ts.map +1 -0
- package/dist/core/Spawner.js +65 -0
- package/dist/core/Spawner.js.map +1 -0
- package/dist/core/Tween.d.ts +25 -0
- package/dist/core/Tween.d.ts.map +1 -0
- package/dist/core/Tween.js +60 -0
- package/dist/core/Tween.js.map +1 -0
- package/dist/core/UndoHistory.d.ts +37 -0
- package/dist/core/UndoHistory.d.ts.map +1 -0
- package/dist/core/UndoHistory.js +49 -0
- package/dist/core/UndoHistory.js.map +1 -0
- package/dist/core/index.d.ts +22 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +12 -0
- package/dist/core/index.js.map +1 -1
- package/dist/i18n/Fluent.d.ts +7 -0
- package/dist/i18n/Fluent.d.ts.map +1 -0
- package/dist/i18n/Fluent.js +86 -0
- package/dist/i18n/Fluent.js.map +1 -0
- package/dist/i18n/index.d.ts +15 -1
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +17 -2
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mw_games.global.js +351 -79
- package/dist/render/Camera.d.ts +32 -4
- package/dist/render/Camera.d.ts.map +1 -1
- package/dist/render/Camera.js +58 -23
- package/dist/render/Camera.js.map +1 -1
- package/dist/render/Capabilities.d.ts +51 -0
- package/dist/render/Capabilities.d.ts.map +1 -0
- package/dist/render/Capabilities.js +56 -0
- package/dist/render/Capabilities.js.map +1 -0
- package/dist/render/ColorBlindness.d.ts +16 -0
- package/dist/render/ColorBlindness.d.ts.map +1 -0
- package/dist/render/ColorBlindness.js +41 -0
- package/dist/render/ColorBlindness.js.map +1 -0
- package/dist/render/ColorTransformBatcher.d.ts +9 -0
- package/dist/render/ColorTransformBatcher.d.ts.map +1 -1
- package/dist/render/ColorTransformBatcher.js +131 -19
- package/dist/render/ColorTransformBatcher.js.map +1 -1
- package/dist/render/Minimap.d.ts +52 -0
- package/dist/render/Minimap.d.ts.map +1 -0
- package/dist/render/Minimap.js +95 -0
- package/dist/render/Minimap.js.map +1 -0
- package/dist/render/TileMap.d.ts +2 -2
- package/dist/render/TileMap.d.ts.map +1 -1
- package/dist/render/TileMap.js +12 -12
- package/dist/render/TileMap.js.map +1 -1
- package/dist/render/TintedSprite.d.ts +1 -8
- package/dist/render/TintedSprite.d.ts.map +1 -1
- package/dist/render/TintedSprite.js +3 -111
- package/dist/render/TintedSprite.js.map +1 -1
- package/dist/render/Viewport.d.ts +46 -0
- package/dist/render/Viewport.d.ts.map +1 -0
- package/dist/render/Viewport.js +52 -0
- package/dist/render/Viewport.js.map +1 -0
- package/dist/render/index.d.ts +9 -1
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +5 -1
- package/dist/render/index.js.map +1 -1
- package/dist/roguelike/FieldOfView.d.ts +1 -1
- package/dist/roguelike/Level.d.ts +2 -2
- package/dist/roguelike/Level.d.ts.map +1 -1
- package/dist/roguelike/Level.js +1 -1
- package/dist/roguelike/Level.js.map +1 -1
- package/dist/roguelike/Pathfinder.d.ts +3 -3
- package/dist/roguelike/Pathfinder.js +2 -2
- package/dist/roguelike/Scheduler.d.ts +1 -1
- package/dist/roguelike/Scheduler.js +1 -1
- package/dist/roguelike/Stealth.d.ts +34 -0
- package/dist/roguelike/Stealth.d.ts.map +1 -0
- package/dist/roguelike/Stealth.js +35 -0
- package/dist/roguelike/Stealth.js.map +1 -0
- package/dist/roguelike/generate.d.ts +3 -3
- package/dist/roguelike/generate.js +1 -1
- package/dist/roguelike/generate.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 +42 -0
- package/dist/rpg/Collision.d.ts.map +1 -0
- package/dist/rpg/Collision.js +77 -0
- package/dist/rpg/Collision.js.map +1 -0
- package/dist/rpg/FreeMover.d.ts +45 -0
- package/dist/rpg/FreeMover.d.ts.map +1 -0
- package/dist/rpg/FreeMover.js +68 -0
- package/dist/rpg/FreeMover.js.map +1 -0
- package/dist/rpg/Marshal.d.ts +65 -0
- package/dist/rpg/Marshal.d.ts.map +1 -0
- package/dist/rpg/Marshal.js +393 -0
- package/dist/rpg/Marshal.js.map +1 -0
- package/dist/rpg/Quest.d.ts +41 -0
- package/dist/rpg/Quest.d.ts.map +1 -1
- package/dist/rpg/Quest.js +39 -6
- package/dist/rpg/Quest.js.map +1 -1
- package/dist/rpg/index.d.ts +7 -1
- package/dist/rpg/index.d.ts.map +1 -1
- package/dist/rpg/index.js +3 -0
- package/dist/rpg/index.js.map +1 -1
- package/dist/stage/DialogueStage.d.ts +2 -3
- package/dist/stage/DialogueStage.d.ts.map +1 -1
- package/dist/stage/DialogueStage.js +21 -30
- package/dist/stage/DialogueStage.js.map +1 -1
- package/dist/stage/index.d.ts +1 -1
- package/dist/stage/index.d.ts.map +1 -1
- package/dist/stage/script.d.ts +32 -3
- package/dist/stage/script.d.ts.map +1 -1
- package/dist/stage/script.js +0 -0
- package/dist/stage/script.js.map +1 -1
- package/dist/three-d/Character3D.d.ts +48 -0
- package/dist/three-d/Character3D.d.ts.map +1 -0
- package/dist/three-d/Character3D.js +96 -0
- package/dist/three-d/Character3D.js.map +1 -0
- package/dist/three-d/Engine3D.d.ts +23 -0
- package/dist/three-d/Engine3D.d.ts.map +1 -0
- package/dist/three-d/Engine3D.js +45 -0
- package/dist/three-d/Engine3D.js.map +1 -0
- package/dist/three-d/Grid.d.ts +14 -0
- package/dist/three-d/Grid.d.ts.map +1 -0
- package/dist/three-d/Grid.js +13 -0
- package/dist/three-d/Grid.js.map +1 -0
- package/dist/three-d/Heightmap.d.ts +35 -0
- package/dist/three-d/Heightmap.d.ts.map +1 -0
- package/dist/three-d/Heightmap.js +29 -0
- package/dist/three-d/Heightmap.js.map +1 -0
- package/dist/three-d/Models.d.ts +12 -0
- package/dist/three-d/Models.d.ts.map +1 -0
- package/dist/three-d/Models.js +14 -0
- package/dist/three-d/Models.js.map +1 -0
- package/dist/three-d/TileGrid3D.d.ts +21 -0
- package/dist/three-d/TileGrid3D.d.ts.map +1 -0
- package/dist/three-d/TileGrid3D.js +65 -0
- package/dist/three-d/TileGrid3D.js.map +1 -0
- package/dist/three-d/Vox.d.ts +24 -0
- package/dist/three-d/Vox.d.ts.map +1 -0
- package/dist/three-d/Vox.js +93 -0
- package/dist/three-d/Vox.js.map +1 -0
- package/dist/three-d/index.d.ts +13 -0
- package/dist/three-d/index.d.ts.map +1 -0
- package/dist/three-d/index.js +7 -0
- package/dist/three-d/index.js.map +1 -0
- package/dist/ui/Bar.d.ts +49 -0
- package/dist/ui/Bar.d.ts.map +1 -0
- package/dist/ui/Bar.js +70 -0
- package/dist/ui/Bar.js.map +1 -0
- package/dist/ui/BitmapLabel.d.ts +42 -0
- package/dist/ui/BitmapLabel.d.ts.map +1 -0
- package/dist/ui/BitmapLabel.js +59 -0
- package/dist/ui/BitmapLabel.js.map +1 -0
- package/dist/ui/Button.d.ts +52 -0
- package/dist/ui/Button.d.ts.map +1 -0
- package/dist/ui/Button.js +147 -0
- package/dist/ui/Button.js.map +1 -0
- package/dist/ui/FloatingText.d.ts +28 -0
- package/dist/ui/FloatingText.d.ts.map +1 -0
- package/dist/ui/FloatingText.js +39 -0
- package/dist/ui/FloatingText.js.map +1 -0
- package/dist/ui/HelpScreen.d.ts +29 -0
- package/dist/ui/HelpScreen.d.ts.map +1 -0
- package/dist/ui/HelpScreen.js +39 -0
- package/dist/ui/HelpScreen.js.map +1 -0
- package/dist/ui/IconGrid.d.ts +8 -0
- package/dist/ui/IconGrid.d.ts.map +1 -1
- package/dist/ui/IconGrid.js +27 -1
- package/dist/ui/IconGrid.js.map +1 -1
- package/dist/ui/Label.d.ts +10 -1
- package/dist/ui/Label.d.ts.map +1 -1
- package/dist/ui/Label.js +25 -2
- package/dist/ui/Label.js.map +1 -1
- package/dist/ui/ListView.d.ts +12 -1
- package/dist/ui/ListView.d.ts.map +1 -1
- package/dist/ui/ListView.js +56 -2
- package/dist/ui/ListView.js.map +1 -1
- package/dist/ui/LoadingScreen.d.ts +31 -0
- package/dist/ui/LoadingScreen.d.ts.map +1 -0
- package/dist/ui/LoadingScreen.js +60 -0
- package/dist/ui/LoadingScreen.js.map +1 -0
- package/dist/ui/MessageBox.d.ts +27 -1
- package/dist/ui/MessageBox.d.ts.map +1 -1
- package/dist/ui/MessageBox.js +63 -14
- package/dist/ui/MessageBox.js.map +1 -1
- package/dist/ui/RebindScreen.d.ts +55 -0
- package/dist/ui/RebindScreen.d.ts.map +1 -0
- package/dist/ui/RebindScreen.js +114 -0
- package/dist/ui/RebindScreen.js.map +1 -0
- package/dist/ui/Toast.d.ts +44 -0
- package/dist/ui/Toast.d.ts.map +1 -0
- package/dist/ui/Toast.js +89 -0
- package/dist/ui/Toast.js.map +1 -0
- package/dist/ui/VerticalLabel.d.ts +5 -0
- package/dist/ui/VerticalLabel.d.ts.map +1 -1
- package/dist/ui/VerticalLabel.js +18 -7
- package/dist/ui/VerticalLabel.js.map +1 -1
- package/dist/ui/Window.d.ts +6 -0
- package/dist/ui/Window.d.ts.map +1 -1
- package/dist/ui/Window.js +16 -1
- package/dist/ui/Window.js.map +1 -1
- package/dist/ui/WindowStack.d.ts +1 -0
- package/dist/ui/WindowStack.d.ts.map +1 -1
- package/dist/ui/WindowStack.js +4 -1
- package/dist/ui/WindowStack.js.map +1 -1
- package/dist/ui/index.d.ts +17 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +9 -1
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/theme.d.ts +21 -0
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +42 -0
- package/dist/ui/theme.js.map +1 -1
- package/dist/version.d.ts +13 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +13 -0
- package/dist/version.js.map +1 -0
- package/dist/world/Environment.d.ts +35 -0
- package/dist/world/Environment.d.ts.map +1 -0
- package/dist/world/Environment.js +55 -0
- package/dist/world/Environment.js.map +1 -0
- package/dist/world/index.d.ts +2 -0
- package/dist/world/index.d.ts.map +1 -1
- package/dist/world/index.js +1 -0
- package/dist/world/index.js.map +1 -1
- package/package.json +40 -4
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import { Signal } from '../core/Signal.ts';
|
|
3
|
+
export interface ButtonOptions {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
/** the button's caption; omit for an icon-only button, the shape a title screen's
|
|
7
|
+
* rankings/badges/settings buttons usually take */
|
|
8
|
+
text?: string;
|
|
9
|
+
/** drawn to one side of the text, or centred alone if `text` is omitted */
|
|
10
|
+
icon?: Container;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
onClick?: () => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A clickable region with idle/hover/pressed/disabled states, a label, an icon, or both.
|
|
16
|
+
*
|
|
17
|
+
* Draws over the same `NinePatch`/theme machinery `Window` already draws its chrome from -
|
|
18
|
+
* a panel texture if the theme has one, a flat rounded rectangle otherwise - so a button
|
|
19
|
+
* looks like it belongs to the same interface without a game supplying separate art for it.
|
|
20
|
+
*
|
|
21
|
+
* `icon` alone (no `text`) is the icon-only button a title screen commonly reaches for -
|
|
22
|
+
* rankings, badges, settings - where a caption would only repeat what the icon already says.
|
|
23
|
+
*/
|
|
24
|
+
export declare class Button extends Container {
|
|
25
|
+
readonly onClick: Signal<void>;
|
|
26
|
+
private background;
|
|
27
|
+
private labelText;
|
|
28
|
+
private icon;
|
|
29
|
+
private width_;
|
|
30
|
+
private height_;
|
|
31
|
+
private state;
|
|
32
|
+
private disabled_;
|
|
33
|
+
private readonly themeListener;
|
|
34
|
+
constructor(options: ButtonOptions);
|
|
35
|
+
/** live-resize the button, for a caller whose own layout reflows on window resize rather
|
|
36
|
+
* than rebuilding buttons from scratch (`Window`'s own constructor-only sizing is fine
|
|
37
|
+
* for a fixed dialog; a title screen's responsive row of buttons is not) */
|
|
38
|
+
resize(width: number, height: number): void;
|
|
39
|
+
setText(text: string | undefined): void;
|
|
40
|
+
get disabled(): boolean;
|
|
41
|
+
setDisabled(disabled: boolean): void;
|
|
42
|
+
private setState;
|
|
43
|
+
/**
|
|
44
|
+
* Icon-only centres the icon; icon-plus-text sits the icon to the reading-start side
|
|
45
|
+
* (left in ltr, right in rtl) with the label following it, both vertically centred -
|
|
46
|
+
* the same icon-then-text arrangement `ListView`'s own rows already use.
|
|
47
|
+
*/
|
|
48
|
+
private layoutContent;
|
|
49
|
+
private draw;
|
|
50
|
+
destroy(options?: Parameters<Container['destroy']>[0]): void;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/ui/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAK3C,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf;uDACmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAID;;;;;;;;;GASG;AACH,qBAAa,MAAO,SAAQ,SAAS;IACpC,QAAQ,CAAC,OAAO,eAAsB;IAEtC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,IAAI,CAAmB;IAE/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,YAAY,OAAO,EAAE,aAAa,EAgCjC;IAED;;gFAE4E;IAC5E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI1C;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAWtC;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAGnC;IAED,OAAO,CAAC,QAAQ;IAQhB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,IAAI;IA+BH,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;CACD"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { Container, Graphics } from 'pixi.js';
|
|
2
|
+
import { Signal } from '../core/Signal.js';
|
|
3
|
+
import { NinePatch } from './NinePatch.js';
|
|
4
|
+
import { Label } from './Label.js';
|
|
5
|
+
import { theme, themeChanged } from './theme.js';
|
|
6
|
+
/**
|
|
7
|
+
* A clickable region with idle/hover/pressed/disabled states, a label, an icon, or both.
|
|
8
|
+
*
|
|
9
|
+
* Draws over the same `NinePatch`/theme machinery `Window` already draws its chrome from -
|
|
10
|
+
* a panel texture if the theme has one, a flat rounded rectangle otherwise - so a button
|
|
11
|
+
* looks like it belongs to the same interface without a game supplying separate art for it.
|
|
12
|
+
*
|
|
13
|
+
* `icon` alone (no `text`) is the icon-only button a title screen commonly reaches for -
|
|
14
|
+
* rankings, badges, settings - where a caption would only repeat what the icon already says.
|
|
15
|
+
*/
|
|
16
|
+
export class Button extends Container {
|
|
17
|
+
constructor(options) {
|
|
18
|
+
super();
|
|
19
|
+
this.onClick = new Signal();
|
|
20
|
+
this.state = 'idle';
|
|
21
|
+
this.themeListener = () => this.draw();
|
|
22
|
+
this.width_ = options.width;
|
|
23
|
+
this.height_ = options.height;
|
|
24
|
+
this.disabled_ = options.disabled ?? false;
|
|
25
|
+
const t = theme();
|
|
26
|
+
this.background = t.panel ? new NinePatch(t.panel, { border: t.panelBorder }) : new Graphics();
|
|
27
|
+
this.addChild(this.background);
|
|
28
|
+
this.icon = options.icon ?? null;
|
|
29
|
+
if (this.icon)
|
|
30
|
+
this.addChild(this.icon);
|
|
31
|
+
this.labelText = options.text !== undefined ? new Label({ text: options.text, align: 'center' }) : null;
|
|
32
|
+
if (this.labelText)
|
|
33
|
+
this.addChild(this.labelText);
|
|
34
|
+
if (options.onClick)
|
|
35
|
+
this.onClick.add(options.onClick);
|
|
36
|
+
this.eventMode = 'static';
|
|
37
|
+
this.on('pointerover', () => this.setState('hover'));
|
|
38
|
+
this.on('pointerout', () => this.setState('idle'));
|
|
39
|
+
this.on('pointerdown', () => this.setState('pressed'));
|
|
40
|
+
this.on('pointerup', () => {
|
|
41
|
+
const wasPressed = this.state === 'pressed';
|
|
42
|
+
this.setState('hover');
|
|
43
|
+
if (wasPressed)
|
|
44
|
+
this.onClick.dispatch();
|
|
45
|
+
});
|
|
46
|
+
this.on('pointerupoutside', () => this.setState('idle'));
|
|
47
|
+
this.setState(this.disabled_ ? 'disabled' : 'idle');
|
|
48
|
+
themeChanged.add(this.themeListener);
|
|
49
|
+
}
|
|
50
|
+
/** live-resize the button, for a caller whose own layout reflows on window resize rather
|
|
51
|
+
* than rebuilding buttons from scratch (`Window`'s own constructor-only sizing is fine
|
|
52
|
+
* for a fixed dialog; a title screen's responsive row of buttons is not) */
|
|
53
|
+
resize(width, height) {
|
|
54
|
+
this.width_ = width;
|
|
55
|
+
this.height_ = height;
|
|
56
|
+
this.draw();
|
|
57
|
+
}
|
|
58
|
+
setText(text) {
|
|
59
|
+
if (text === undefined) {
|
|
60
|
+
this.labelText?.destroy();
|
|
61
|
+
this.labelText = null;
|
|
62
|
+
}
|
|
63
|
+
else if (this.labelText) {
|
|
64
|
+
this.labelText.setText(text);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.labelText = new Label({ text, align: 'center' });
|
|
68
|
+
this.addChild(this.labelText);
|
|
69
|
+
}
|
|
70
|
+
this.layoutContent();
|
|
71
|
+
}
|
|
72
|
+
get disabled() {
|
|
73
|
+
return this.disabled_;
|
|
74
|
+
}
|
|
75
|
+
setDisabled(disabled) {
|
|
76
|
+
this.disabled_ = disabled;
|
|
77
|
+
this.setState(disabled ? 'disabled' : 'idle');
|
|
78
|
+
}
|
|
79
|
+
setState(state) {
|
|
80
|
+
if (this.disabled_ && state !== 'disabled')
|
|
81
|
+
return;
|
|
82
|
+
this.state = state;
|
|
83
|
+
this.cursor = this.disabled_ ? 'default' : 'pointer';
|
|
84
|
+
this.eventMode = this.disabled_ ? 'none' : 'static';
|
|
85
|
+
this.draw();
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Icon-only centres the icon; icon-plus-text sits the icon to the reading-start side
|
|
89
|
+
* (left in ltr, right in rtl) with the label following it, both vertically centred -
|
|
90
|
+
* the same icon-then-text arrangement `ListView`'s own rows already use.
|
|
91
|
+
*/
|
|
92
|
+
layoutContent() {
|
|
93
|
+
const rtl = theme().direction === 'rtl';
|
|
94
|
+
if (this.icon && !this.labelText) {
|
|
95
|
+
this.icon.x = Math.round((this.width_ - this.icon.width) / 2);
|
|
96
|
+
this.icon.y = Math.round((this.height_ - this.icon.height) / 2);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (this.icon && this.labelText) {
|
|
100
|
+
const spacing = theme().spacing;
|
|
101
|
+
const contentWidth = this.icon.width + spacing + this.labelText.width;
|
|
102
|
+
const start = Math.round((this.width_ - contentWidth) / 2);
|
|
103
|
+
this.icon.x = rtl ? start + this.labelText.width + spacing : start;
|
|
104
|
+
this.icon.y = Math.round((this.height_ - this.icon.height) / 2);
|
|
105
|
+
this.labelText.x = rtl ? start : start + this.icon.width + spacing;
|
|
106
|
+
this.labelText.y = Math.round((this.height_ - this.labelText.height) / 2);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (this.labelText) {
|
|
110
|
+
this.labelText.x = Math.round((this.width_ - this.labelText.width) / 2);
|
|
111
|
+
this.labelText.y = Math.round((this.height_ - this.labelText.height) / 2);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
draw() {
|
|
115
|
+
const t = theme();
|
|
116
|
+
//idle/hover/pressed read as three brightness steps of the same panel rather than three
|
|
117
|
+
//separate textures, which a game without dedicated button art still gets for free
|
|
118
|
+
const tint = this.state === 'pressed'
|
|
119
|
+
? 0x999999
|
|
120
|
+
: this.state === 'hover'
|
|
121
|
+
? 0xdddddd
|
|
122
|
+
: this.state === 'disabled'
|
|
123
|
+
? 0x777777
|
|
124
|
+
: 0xffffff;
|
|
125
|
+
if (this.background instanceof NinePatch) {
|
|
126
|
+
this.background.resize(this.width_, this.height_);
|
|
127
|
+
this.background.tint = tint;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
const fill = this.state === 'pressed' ? t.color.selection : t.color.panelFill;
|
|
131
|
+
this.background
|
|
132
|
+
.clear()
|
|
133
|
+
.roundRect(0, 0, this.width_, this.height_, 4)
|
|
134
|
+
.fill({ color: fill, alpha: this.state === 'disabled' ? 0.5 : 1 })
|
|
135
|
+
.stroke({ color: t.color.panelBorder, width: 1 });
|
|
136
|
+
}
|
|
137
|
+
this.labelText?.setColor(this.disabled_ ? t.color.textDim : t.color.text);
|
|
138
|
+
if (this.icon)
|
|
139
|
+
this.icon.alpha = this.disabled_ ? 0.4 : 1;
|
|
140
|
+
this.layoutContent();
|
|
141
|
+
}
|
|
142
|
+
destroy(options) {
|
|
143
|
+
themeChanged.remove(this.themeListener);
|
|
144
|
+
super.destroy(options);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=Button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/ui/Button.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
export interface FloatingTextOptions {
|
|
3
|
+
text: string;
|
|
4
|
+
color?: number;
|
|
5
|
+
size?: number;
|
|
6
|
+
/** seconds it takes to fully rise and fade; defaults to 0.8 */
|
|
7
|
+
duration?: number;
|
|
8
|
+
/** total pixels it rises over its lifetime; defaults to 24 */
|
|
9
|
+
rise?: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A damage number or a "+1 gold": text that rises and fades over its own lifetime, unlike
|
|
13
|
+
* `Label`'s job of a static, positioned string. This is animation over a label, timed rather
|
|
14
|
+
* than laid out - a game positions one instance per pop-up at the world point it should
|
|
15
|
+
* appear over, then drives it with `update(dt)` the same way `core.Spawner` is `dt`-driven.
|
|
16
|
+
*/
|
|
17
|
+
export declare class FloatingText extends Container {
|
|
18
|
+
private readonly duration;
|
|
19
|
+
private readonly rise;
|
|
20
|
+
private elapsed;
|
|
21
|
+
private done;
|
|
22
|
+
constructor(options: FloatingTextOptions);
|
|
23
|
+
/** true once the animation has finished and this container has removed and destroyed itself */
|
|
24
|
+
get finished(): boolean;
|
|
25
|
+
/** advances the rise/fade; once complete, removes itself from its parent and destroys itself */
|
|
26
|
+
update(dt: number): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=FloatingText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingText.d.ts","sourceRoot":"","sources":["../../src/ui/FloatingText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAS;IAErB,YAAY,OAAO,EAAE,mBAAmB,EASvC;IAED,+FAA+F;IAC/F,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,gGAAgG;IAChG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAavB;CACD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import { Label } from './Label.js';
|
|
3
|
+
/**
|
|
4
|
+
* A damage number or a "+1 gold": text that rises and fades over its own lifetime, unlike
|
|
5
|
+
* `Label`'s job of a static, positioned string. This is animation over a label, timed rather
|
|
6
|
+
* than laid out - a game positions one instance per pop-up at the world point it should
|
|
7
|
+
* appear over, then drives it with `update(dt)` the same way `core.Spawner` is `dt`-driven.
|
|
8
|
+
*/
|
|
9
|
+
export class FloatingText extends Container {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
super();
|
|
12
|
+
this.elapsed = 0;
|
|
13
|
+
this.done = false;
|
|
14
|
+
this.duration = options.duration ?? 0.8;
|
|
15
|
+
this.rise = options.rise ?? 24;
|
|
16
|
+
const label = new Label({ text: options.text, color: options.color, size: options.size });
|
|
17
|
+
label.anchor.set(0.5);
|
|
18
|
+
this.addChild(label);
|
|
19
|
+
}
|
|
20
|
+
/** true once the animation has finished and this container has removed and destroyed itself */
|
|
21
|
+
get finished() {
|
|
22
|
+
return this.done;
|
|
23
|
+
}
|
|
24
|
+
/** advances the rise/fade; once complete, removes itself from its parent and destroys itself */
|
|
25
|
+
update(dt) {
|
|
26
|
+
if (this.done)
|
|
27
|
+
return;
|
|
28
|
+
this.elapsed = Math.min(this.duration, this.elapsed + dt);
|
|
29
|
+
const t = this.duration > 0 ? this.elapsed / this.duration : 1;
|
|
30
|
+
this.y = -this.rise * t;
|
|
31
|
+
this.alpha = 1 - t;
|
|
32
|
+
if (t >= 1) {
|
|
33
|
+
this.done = true;
|
|
34
|
+
this.parent?.removeChild(this);
|
|
35
|
+
this.destroy({ children: true });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=FloatingText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingText.js","sourceRoot":"","sources":["../../src/ui/FloatingText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAcnC;;;;;GAKG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IAM1C,YAAY,OAA4B;QACvC,KAAK,EAAE,CAAC;QAJD,YAAO,GAAG,CAAC,CAAC;QACZ,SAAI,GAAG,KAAK,CAAC;QAKpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1F,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,+FAA+F;IAC/F,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,gGAAgG;IAChG,MAAM,CAAC,EAAU;QAChB,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QAEtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import type { Action } from '../core/Input.ts';
|
|
3
|
+
export interface HelpTopic {
|
|
4
|
+
title: string;
|
|
5
|
+
body: string;
|
|
6
|
+
}
|
|
7
|
+
export interface HelpScreenOptions {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
topics: readonly HelpTopic[];
|
|
11
|
+
/** how much of `width` the topic list takes; the body fills the rest. Defaults to a third */
|
|
12
|
+
listWidth?: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A controls-reference or FAQ screen: a list of topics and the body of whichever one is
|
|
16
|
+
* highlighted, over the same `ListView`/`Label` a game already builds every other menu
|
|
17
|
+
* from - a recipe, not a new primitive, the way `RebindScreen` composes `ListView` rather
|
|
18
|
+
* than inventing its own row widget.
|
|
19
|
+
*/
|
|
20
|
+
export declare class HelpScreen extends Container {
|
|
21
|
+
private list;
|
|
22
|
+
private body;
|
|
23
|
+
private topics;
|
|
24
|
+
constructor(options: HelpScreenOptions);
|
|
25
|
+
private showBody;
|
|
26
|
+
/** @returns true when the action was used */
|
|
27
|
+
handleAction(action: Action): boolean;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=HelpScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpScreen.d.ts","sourceRoot":"","sources":["../../src/ui/HelpScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK/C,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAE7B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,SAAS;IACxC,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,MAAM,CAAuB;IAErC,YAAY,OAAO,EAAE,iBAAiB,EAqBrC;IAED,OAAO,CAAC,QAAQ;IAIhB,6CAA6C;IAC7C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpC;CACD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import { ListView } from './ListView.js';
|
|
3
|
+
import { Label } from './Label.js';
|
|
4
|
+
import { theme } from './theme.js';
|
|
5
|
+
/**
|
|
6
|
+
* A controls-reference or FAQ screen: a list of topics and the body of whichever one is
|
|
7
|
+
* highlighted, over the same `ListView`/`Label` a game already builds every other menu
|
|
8
|
+
* from - a recipe, not a new primitive, the way `RebindScreen` composes `ListView` rather
|
|
9
|
+
* than inventing its own row widget.
|
|
10
|
+
*/
|
|
11
|
+
export class HelpScreen extends Container {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
super();
|
|
14
|
+
this.topics = options.topics;
|
|
15
|
+
const listWidth = options.listWidth ?? Math.floor(options.width / 3);
|
|
16
|
+
const bodyLeft = listWidth + theme().spacing;
|
|
17
|
+
this.list = new ListView({
|
|
18
|
+
width: listWidth,
|
|
19
|
+
height: options.height,
|
|
20
|
+
items: this.topics.map((topic) => ({ text: topic.title })),
|
|
21
|
+
onHighlight: (_item, index) => this.showBody(index),
|
|
22
|
+
onSelect: (_item, index) => this.showBody(index),
|
|
23
|
+
});
|
|
24
|
+
this.addChild(this.list);
|
|
25
|
+
this.body = new Label({ wrapWidth: options.width - bodyLeft });
|
|
26
|
+
this.body.x = bodyLeft;
|
|
27
|
+
this.addChild(this.body);
|
|
28
|
+
if (this.topics.length > 0)
|
|
29
|
+
this.showBody(this.list.selectedIndex);
|
|
30
|
+
}
|
|
31
|
+
showBody(index) {
|
|
32
|
+
this.body.setText(this.topics[index]?.body ?? '');
|
|
33
|
+
}
|
|
34
|
+
/** @returns true when the action was used */
|
|
35
|
+
handleAction(action) {
|
|
36
|
+
return this.list.handleAction(action);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=HelpScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpScreen.js","sourceRoot":"","sources":["../../src/ui/HelpScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAgBnC;;;;;GAKG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAKxC,YAAY,OAA0B;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC;QAE7C,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC;YACxB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1D,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpE,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,6CAA6C;IAC7C,YAAY,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACD"}
|
package/dist/ui/IconGrid.d.ts
CHANGED
|
@@ -62,7 +62,15 @@ export declare class IconGrid extends Container {
|
|
|
62
62
|
onHighlight: ((item: IconGridItem, index: number) => void) | null;
|
|
63
63
|
onQuickslot: ((item: IconGridItem, index: number) => void) | null;
|
|
64
64
|
onReorder: ((fromIndex: number, toIndex: number) => void) | null;
|
|
65
|
+
/**
|
|
66
|
+
* Recolours quantity badges in place rather than through `setItems`: an item's `icon` is
|
|
67
|
+
* a `Container` the caller owns, and `setItems`'s teardown destroys a cell's children on
|
|
68
|
+
* the way out (see `swapCells`'s own doc comment) - routing a restyle through it would
|
|
69
|
+
* destroy the very icons still referenced by `this.items`.
|
|
70
|
+
*/
|
|
71
|
+
private readonly themeListener;
|
|
65
72
|
constructor(options: IconGridOptions);
|
|
73
|
+
destroy(options?: Parameters<Container['destroy']>[0]): void;
|
|
66
74
|
private drawMask;
|
|
67
75
|
get visibleRows(): number;
|
|
68
76
|
get rows(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconGrid.d.ts","sourceRoot":"","sources":["../../src/ui/IconGrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,MAAM,WAAW,YAAY;IAC5B,kDAAkD;IAClD,IAAI,EAAE,SAAS,CAAC;IAEhB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kEAAkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IAEvB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1D,iFAAiF;IACjF,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1D,iFAAiF;IACjF,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,QAAS,SAAQ,SAAS;IACtC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,KAAK,CAAmB;IAEhC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,KAAK,CAAkB;IAE/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,SAAS,CAAK;IAEtB,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAuB;IAEvC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,UAAU,CAAK;IAEvB,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/D,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAClE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAClE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAEjE,YAAY,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"IconGrid.d.ts","sourceRoot":"","sources":["../../src/ui/IconGrid.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/IconGrid.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Container, Graphics } from 'pixi.js';
|
|
2
2
|
import { Label } from './Label.js';
|
|
3
|
-
import { theme } from './theme.js';
|
|
3
|
+
import { theme, themeChanged } from './theme.js';
|
|
4
4
|
/**
|
|
5
5
|
* A grid of icons, driven by the keyboard or the pointer.
|
|
6
6
|
*
|
|
@@ -29,6 +29,22 @@ export class IconGrid extends Container {
|
|
|
29
29
|
this.pickedUp = null;
|
|
30
30
|
this.pressedIndex = null;
|
|
31
31
|
this.pressTimer = 0;
|
|
32
|
+
/**
|
|
33
|
+
* Recolours quantity badges in place rather than through `setItems`: an item's `icon` is
|
|
34
|
+
* a `Container` the caller owns, and `setItems`'s teardown destroys a cell's children on
|
|
35
|
+
* the way out (see `swapCells`'s own doc comment) - routing a restyle through it would
|
|
36
|
+
* destroy the very icons still referenced by `this.items`.
|
|
37
|
+
*/
|
|
38
|
+
this.themeListener = () => {
|
|
39
|
+
const t = theme();
|
|
40
|
+
this.items.forEach((item, i) => {
|
|
41
|
+
if ((item.quantity ?? 1) <= 1)
|
|
42
|
+
return;
|
|
43
|
+
const badge = this.cells[i]?.children.find((child) => child instanceof Label);
|
|
44
|
+
badge?.setColor(t.color.textHighlight);
|
|
45
|
+
});
|
|
46
|
+
this.refresh();
|
|
47
|
+
};
|
|
32
48
|
this.viewWidth = options.width;
|
|
33
49
|
this.viewHeight = options.height;
|
|
34
50
|
this.columns = Math.max(1, options.columns);
|
|
@@ -45,7 +61,17 @@ export class IconGrid extends Container {
|
|
|
45
61
|
this.addChild(this.mask_);
|
|
46
62
|
this.cellsLayer.mask = this.mask_;
|
|
47
63
|
this.drawMask();
|
|
64
|
+
//a masked grid with no click support (before this session) or wheel support was
|
|
65
|
+
//otherwise unreachable past the visible rows without the keyboard - the same gap
|
|
66
|
+
//`ListView`'s own wheel handling closed there, one row per notch here too
|
|
67
|
+
this.eventMode = 'static';
|
|
68
|
+
this.on('wheel', (event) => this.move(0, event.deltaY > 0 ? 1 : -1));
|
|
48
69
|
this.setItems(options.items ?? []);
|
|
70
|
+
themeChanged.add(this.themeListener);
|
|
71
|
+
}
|
|
72
|
+
destroy(options) {
|
|
73
|
+
themeChanged.remove(this.themeListener);
|
|
74
|
+
super.destroy(options);
|
|
49
75
|
}
|
|
50
76
|
drawMask() {
|
|
51
77
|
this.mask_.clear().rect(0, 0, this.viewWidth, this.viewHeight).fill({ color: 0xffffff });
|
package/dist/ui/IconGrid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconGrid.js","sourceRoot":"","sources":["../../src/ui/IconGrid.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IconGrid.js","sourceRoot":"","sources":["../../src/ui/IconGrid.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/Label.d.ts
CHANGED
|
@@ -13,14 +13,23 @@ export interface LabelOptions {
|
|
|
13
13
|
*
|
|
14
14
|
* This is a thin wrapper over Pixi's `Text`, and its job is to stop every call site from
|
|
15
15
|
* repeating a style object. Pixi renders text to its own texture, so changing the string
|
|
16
|
-
* costs a re-render
|
|
16
|
+
* costs a re-render: cheap enough for a label, wasteful for something updated every
|
|
17
17
|
* frame, where a value that only changes on whole numbers should be guarded.
|
|
18
18
|
*/
|
|
19
19
|
export declare class Label extends Text {
|
|
20
|
+
private readonly opts;
|
|
21
|
+
private readonly themeListener;
|
|
20
22
|
constructor(options?: LabelOptions | string);
|
|
21
23
|
/** changes the colour without rebuilding the style object */
|
|
22
24
|
setColor(color: number): void;
|
|
23
25
|
/** avoids the re-render when the text has not actually changed */
|
|
24
26
|
setText(value: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Reapplies whichever style fields were never given an explicit option, so an
|
|
29
|
+
* explicit `color`/`size` a game passed in survives a theme change untouched while
|
|
30
|
+
* anything left to the theme's own defaults picks up the new one.
|
|
31
|
+
*/
|
|
32
|
+
private restyle;
|
|
33
|
+
destroy(options?: Parameters<Text['destroy']>[0]): void;
|
|
25
34
|
}
|
|
26
35
|
//# sourceMappingURL=Label.d.ts.map
|
package/dist/ui/Label.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../src/ui/Label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAa,MAAM,SAAS,CAAC;AAG1C,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;GAOG;AACH,qBAAa,KAAM,SAAQ,IAAI;IAC9B,YAAY,OAAO,GAAE,YAAY,GAAG,MAAW,
|
|
1
|
+
{"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../src/ui/Label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAa,MAAM,SAAS,CAAC;AAG1C,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;GAOG;AACH,qBAAa,KAAM,SAAQ,IAAI;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAE/D,YAAY,OAAO,GAAE,YAAY,GAAG,MAAW,EAsB9C;IAED,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE5B;IAED,kEAAkE;IAClE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE3B;IAED;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAUN,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAG/D;CACD"}
|
package/dist/ui/Label.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Text, TextStyle } from 'pixi.js';
|
|
2
|
-
import { theme } from './theme.js';
|
|
2
|
+
import { theme, themeChanged } from './theme.js';
|
|
3
3
|
/**
|
|
4
4
|
* A piece of text, styled from the theme.
|
|
5
5
|
*
|
|
6
6
|
* This is a thin wrapper over Pixi's `Text`, and its job is to stop every call site from
|
|
7
7
|
* repeating a style object. Pixi renders text to its own texture, so changing the string
|
|
8
|
-
* costs a re-render
|
|
8
|
+
* costs a re-render: cheap enough for a label, wasteful for something updated every
|
|
9
9
|
* frame, where a value that only changes on whole numbers should be guarded.
|
|
10
10
|
*/
|
|
11
11
|
export class Label extends Text {
|
|
@@ -27,6 +27,9 @@ export class Label extends Text {
|
|
|
27
27
|
breakWords: true,
|
|
28
28
|
}),
|
|
29
29
|
});
|
|
30
|
+
this.themeListener = (t) => this.restyle(t);
|
|
31
|
+
this.opts = opts;
|
|
32
|
+
themeChanged.add(this.themeListener);
|
|
30
33
|
}
|
|
31
34
|
/** changes the colour without rebuilding the style object */
|
|
32
35
|
setColor(color) {
|
|
@@ -37,5 +40,25 @@ export class Label extends Text {
|
|
|
37
40
|
if (this.text !== value)
|
|
38
41
|
this.text = value;
|
|
39
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Reapplies whichever style fields were never given an explicit option, so an
|
|
45
|
+
* explicit `color`/`size` a game passed in survives a theme change untouched while
|
|
46
|
+
* anything left to the theme's own defaults picks up the new one.
|
|
47
|
+
*/
|
|
48
|
+
restyle(t) {
|
|
49
|
+
this.style.fontFamily = t.font.family;
|
|
50
|
+
if (this.opts.color === undefined)
|
|
51
|
+
this.style.fill = t.color.text;
|
|
52
|
+
if (this.opts.size === undefined) {
|
|
53
|
+
this.style.fontSize = t.font.size;
|
|
54
|
+
this.style.lineHeight = t.font.size * t.font.lineHeight;
|
|
55
|
+
}
|
|
56
|
+
if (this.opts.align === undefined)
|
|
57
|
+
this.style.align = t.direction === 'rtl' ? 'right' : 'left';
|
|
58
|
+
}
|
|
59
|
+
destroy(options) {
|
|
60
|
+
themeChanged.remove(this.themeListener);
|
|
61
|
+
super.destroy(options);
|
|
62
|
+
}
|
|
40
63
|
}
|
|
41
64
|
//# sourceMappingURL=Label.js.map
|
package/dist/ui/Label.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Label.js","sourceRoot":"","sources":["../../src/ui/Label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Label.js","sourceRoot":"","sources":["../../src/ui/Label.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/ListView.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export interface ListViewOptions {
|
|
|
24
24
|
*
|
|
25
25
|
* This is the workhorse of an inventory-heavy game: bags, spell lists, shop stock,
|
|
26
26
|
* dialogue choices, save slots. It scrolls by keeping the highlight in view rather than by
|
|
27
|
-
* pixel offset, which is what makes it feel right with a keyboard
|
|
27
|
+
* pixel offset, which is what makes it feel right with a keyboard: the list moves only
|
|
28
28
|
* when the selection would otherwise leave the window.
|
|
29
29
|
*
|
|
30
30
|
* Rows that are `disabled` are skipped when moving, so holding a direction never lands on
|
|
@@ -39,11 +39,22 @@ export declare class ListView extends Container {
|
|
|
39
39
|
private viewWidth;
|
|
40
40
|
private viewHeight;
|
|
41
41
|
private rowHeight;
|
|
42
|
+
private readonly explicitRowHeight;
|
|
42
43
|
private index;
|
|
43
44
|
private scroll;
|
|
45
|
+
private readonly themeListener;
|
|
44
46
|
onSelect: ((item: ListItem, index: number) => void) | null;
|
|
45
47
|
onHighlight: ((item: ListItem, index: number) => void) | null;
|
|
46
48
|
constructor(options: ListViewOptions);
|
|
49
|
+
/**
|
|
50
|
+
* Recolours rows and the default row height from the new theme in place, rather than
|
|
51
|
+
* through `setItems`: a row's optional `icon` is a `Container` the caller owns, and
|
|
52
|
+
* `setItems`'s teardown destroys a row's children on the way out - routing a restyle
|
|
53
|
+
* through it would destroy the very icons still referenced by `this.items`, the same
|
|
54
|
+
* trap `IconGrid.swapCells`'s own doc comment describes for its cells.
|
|
55
|
+
*/
|
|
56
|
+
private restyle;
|
|
57
|
+
destroy(options?: Parameters<Container['destroy']>[0]): void;
|
|
47
58
|
private drawMask;
|
|
48
59
|
get visibleRows(): number;
|
|
49
60
|
get selectedIndex(): number;
|