User interface completeness
All is Cubes should have a user interface which is sufficient for its purposes. Things that are needed for the game to be approachable without prior knowledge:
- [X] General-purpose text display as part of the widget system, for labels, instructions, text parts of the game state such as block names, and “about the game”. (Done in 03fd53fe5ab668acd528dbfffccecb9fce64c1dd)
- [ ] A “paused” menu state which interacts with mouselook pointer lock/grab in the conventional fashion (releasing it and pausing when focus is lost or ESC is pressed, and such). #440
- [ ] More hints and cues about how to interact with things, such as how mouse buttons work with the toolbar, and hover effects to signal clickability.
- [ ] …
Things that are needed for a “version 1.0” level of completeness:
- [ ] Inventory #305
- [ ] Interactive editing of all parts of a
Universe. - [ ] All of the modes of operation that are available via command-line options (e.g. import/export/record) should be available via menus.
- [x] “About the app” screen with credit and license information.
- [ ] Editable keybindings.
- [ ] …
Some summarized updates:
-
Text display is better: it is possible to build text display using the components provided by the widget system, but it still requires an
&mut Universeto stick text spaces in.- Possible solution:
UniverseTransactions that can insert an already-createdURefso that widgets can dynamically create the text spaces. - Possible solution: Block modifier or primitive that actually just draws text. Upside: Cheap. Downside: awkward for text layout; bakes fonts into the world schema. I'm going to call this “good progress, but not done”.
- Possible solution:
-
Paused page (state) exists but improvements are waiting on having more UI widgets and better layout for VUI pages. Pause interaction with lost focus does not yet exist.
-
In hints and cues: the toolbar selection pointers now look like mice with the relevant button highlighted.
-
Added about page; it is not complete and has terrible layout.
Commit 03fd53fe5ab668acd528dbfffccecb9fce64c1dd added widgets::Label with the new block-primitive text rendering system.