-
Notifications
You must be signed in to change notification settings - Fork 861
Config API and Options Screen Redesign #2837
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
After implementing dynamic value constraints in the slider and cycler control elements, the remaining TODOs are not necessary for the basic required features to work and it's ready for review. The requests for additions to the API were implemented. |
I've been provided by IMS's code to import vanilla options but haven't worked through that yet. @KingContaria contributed scrollable tooltips and I further reworked tooltip and donation button rendering. |
We've discussed this PR in discord, and it requires some UX/UI changes but the rest is ok. Other contributors are invited to also take on these work items.
|
Help wanted! I've tried rebasing this on |
…h initial work on UX/UI refactor Curently broken: DonationButtonWidget and ScrollableTooltip need updating to the latest state of Minecraft GUI rendering fix: correct condition and use setAllowedValuesProvider fix: don't show fabulous on unsupported systems Tackle page headers and Apply/Done on bottom don't open vanilla options when doing text input in search mode move scroll code into separate file fix option list scroll bars not working because of wrong dimensions that fail the hit test reset options to binding value on initial config screen open to fetch changes from changed vanilla options improve top margin in scissor of search results add new vanilla option to options screen fix focus behavior on search bar fix compact donation button functionality fix merge issues fix some focus issues with the search box add search results with page list and clickable page list items use abstract option list instead of concrete option list where possible use option page instead of just page as the metadata on text sources from options make the search results actually ordered make page list highlight more visible remove search result class and move score into text source, this simplifies a number of operations around the search result processing. also added more context to the text source objects add search widget that turns search button into a text box with a close button, other refactoring around page and option list layouts move search button to top of page list add search index interface and bigram search index implementation add page list width constant move builder impls into separate package update todos add arrow to toolbar at hovered element, moved tooltip logic into own class, moved donation button logic into own class, refactored layout misc cleanup and refactor scrollbar widget to extend abstract widget consolidate more colors into the color class new: make tooltips scrollable allow changing fullscreen resolution on macOS too fixes CaffeineMC#2831 Fix cycling controls not playing a sound when activated using the keyboard fixes CaffeineMC#2309 add annotation-based entrypoint loading on neoforge, refactored how mod metadata is retrieved, updated documentation implement dynamic value constraints in control elements, cleanup control elements cleanup add ability for mods to override other mods' options with new options allow gui scale to be changed by holding down control and scrolling, refactor option applying, move flag processing into Config, add api methods to add button that redirects to an external page add usage documentation, update todos truncate mod header subtitles if too long add default implementation to early register entrypoint so users don't need to implement both entrypoints even if they only need the late ("main") one improve config failure crash message fix tooltip after rebase constrain tooltip to screen move layout constants into separate class, fix gradient behind sidebar, change layout of buttons and options panes, fix overlapping ui elements, fix scissor areas, make spacings and arrangement consistent fix crash not working correctly add api method for formatting version instead of setting a new one fix: move sliders and tickboxes when sccrolling Co-authored-by: contaria <[email protected]> new: scrollable option list Co-authored-by: contaria <[email protected]> refactor: store dimensions in AbstractWidget Co-authored-by: contaria <[email protected]> move important members of option builder subinterfaces more useful add api to add custom screens, use a color theme builder instead of a direct method allow users to set their own theme colors, fix some issues when text is too long scrollabe page list authored by @KingContaria Add WIP config api with IMS' redesign of the options page and contaria's forge mod entrypoint loader code New game GUI experiment Co-authored-by: Ennui Langeweile <[email protected]> Co-authored-by: contaria <[email protected]> Co-authored-by: haykam821 <[email protected]> Co-authored-by: IMS212 <[email protected]>
WIth IMS's patch I've rebased this branch on top of current |
…and not just internal dynamic value dependencies
missing from this implementation: auto-scrolling things into view, suggested design improvements
…l-based page list highlighting
- the scrollbar doesn't overlap with the tooltip content - the scrollbar is permanently displayed in the tooltip
…inimum size requirements
Also thanks to @KingContaria for writing code on which I based the forge mod config entrypoint loader. @IMS212 wrote the initial redesign of the options page.
There's a bunch of TODOs in the code that I want to address. Feel free to help me with them and I'll merge them into this PR.
The design of the page as well as the outwards facing API are open to feedback and remain subject to change until release.
fixes #867
fixes #2309
fixes #2831
fixes #2976
fixes #3140