Declarative API for textmenus #84
Labels
No labels
0. Imported
1. Bug
1. Clean-up
1. Feature
1. Improvement
2. Deliverable
2. Epic
3. Duplicate
3. Invalid
3. Need investigation
4. Assets
4. Birb Core
4. Debug
4. Dependencies
4. Inputs
4. Lang
4. Scenes
4. Screen
4. World
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: epervier/epervier-old#84
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Add a declarative API for text menus, to be able to declare the complete structure of the menu.
Questions:
Adding function/callback based constructor for submenu might also be important.
It would be nice to rework every menu to use that kind of API, and not have to create a lot of different widgets. It would also simplify the text menu codebase, as it would just be a meny with a pre-defined widget.
( Or maybe just a list menu where we pass a "text" widget )
Moreover, it would be nice to add good data-binding to the menu, to populate them more easily. The different type of biding we might need are:
The more complicated is the second-to-last. How to define in the def file that we want to bind a menu to a runtime object ? Maybe a system of "data-providers" might be usefull ? Or maybe this use case can be entirely supported by the previous ones ?
Also, if we want something like "skills available for the currently active character", how we do it ? It's where I feel that the current "data" system isn't quite adequate. This is the same kind of issue we got with the "character screen" in Radiance, where we have horrible hack to handle it.
Handling that well would make creating an RPG way easier, as we could query more easily info from the currently active character, the visible ennemy, etc.
It needs to be able to reconstruct easily a menu when the data would give another result, without having to query constently said result.