feat: clean up BetterHUD settings menu#19
Draft
dsnsgithub wants to merge 8 commits into
Draft
Conversation
Reorganize the cloth-config UI for a less cluttered, more discoverable settings screen: - Group each module's options into 'Position' and 'Appearance' sub-categories instead of a flat list of seven controls. - Replace the freeform string dropdown for Orientation with a cycling Selector and human-friendly labels (Top Left, Top Right, ...). - Replace the unbounded Custom X / Custom Y integer fields with sliders that respect the existing 0-100 bounds and render as percentages. - Hide Anchor when Custom Position is on, and hide Custom X/Y when it is off, so only the relevant controls are interactive. - Add tooltips to every control explaining what it does. - Show the Enable toggle as a top-level Enabled/Disabled switch with a clearer 'Enable <Module>' label. Co-authored-by: Dominic Seung <dominic@seung.dev>
The merge from main brought in the new per-module Scale setting, but the reworked ModMenu builds its controls explicitly rather than iterating over settings, so Scale would have been missing from the config screen. Expose it as a double field in the Appearance group with bounds read from the setting definition. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lmeg4FeVuuYgrKUT7sPnPu
…gs-menu-73d4 Co-authored-by: Dominic Seung <dominic@seung.dev>
Bring in the Stonecutter multi-version build system and concurrent launch-test CI from main. Re-add the Options sub-category for non-standard per-module settings (e.g. Coordinates Decimal) that was lost during the earlier Scale integration. Co-authored-by: Dominic Seung <dominic@seung.dev>
* Update Minecraft dependency version range (#24) * Update requirements formatting in README.md * Add automated publish workflow for Modrinth and CurseForge (#26) * Add on-demand publish workflow for Modrinth and CurseForge Run the "publish" workflow from the Actions tab to release the current mod_version: it builds every Stonecutter variant and uploads each release jar as its own version on Modrinth (betterhudfabric) and CurseForge (project 1375095) via mc-publish, selecting exactly the Minecraft versions each jar covers from supported-versions.json. - generate-matrices.sh gains a `publish` matrix (variant, java, per-jar game version list, and a human-readable range for the release name) - inputs: changelog, release channel (release/beta/alpha), and platform selection (both/modrinth/curseforge) - uploads run one variant at a time, oldest first, so the newest Minecraft build ends up as the most recent upload; a failure stops the remaining uploads - fails fast if a selected platform's token secret (MODRINTH_TOKEN / CURSEFORGE_TOKEN) is missing, since mc-publish would otherwise skip it silently - README release section updated accordingly Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gw2SqwSvrHSQcDDXSH2Vn9 * Match existing release title format ("Minecraft" in the range) Titles now read e.g. "BetterHUD 2.1.1 (Minecraft 1.21-1.21.5)", matching the convention of the existing uploads on Modrinth and CurseForge. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gw2SqwSvrHSQcDDXSH2Vn9 --------- Co-authored-by: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
Extend the per-version client launch tests so that, after the survival world check, the test opens Mod Menu's mod list and then BetterHUD's config screen through Mod Menu's registered factory — the same path a player takes via the Configure button — and screenshots both. This end-to-end exercises the reworked cloth-config settings screen on every supported Minecraft version with that version's exact Mod Menu build. - gametest flavours (1.21.4+): open ModsScreen and the config screen after leaving the world, with mods-menu and settings screenshots. - fallback flavour (1.21-1.21.3): drive the same screens from the tick state machine while in the pre-generated world. - launchtest/build.gradle: compile against the per-version Mod Menu already launched via productionRuntimeMods. - CI: fail a launch job when the settings screenshot is missing, and show survival + settings screenshots per version in the PR comment; mod-list screenshots stay in the run artifacts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lmeg4FeVuuYgrKUT7sPnPu
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.






























Summary
The BetterHUD config screen previously dumped all seven options for every module into one flat list, used a free-form text-search dropdown for the four-value
Orientationsetting, and exposedCustom X/Custom Yas unbounded integer text fields that were always interactive even whenCustom Positionwas off. This PR reworks the cloth-config UI into a cleaner, more discoverable layout.Changes
src/main/java/dsns/betterhud/ModMenu.javaPositionandAppearancesub-categories rather than a flat list of seven controls.Orientationwith a cycling Selector that uses friendly labels (Top Left,Top Right,Bottom Left,Bottom Right).Custom X/Custom Yinteger fields with sliders that respect the existing 0-100 bounds and render as percentages.Anchorselector whileCustom Positionis on, and hide theCustom X/Custom Ysliders while it is off, so only the relevant controls are interactive.Enable <Module>switch withEnabled/Disabledlabels viasetYesNoTextSupplier.Decimal) in anOptionssub-category.Scalecontrol from main underAppearance.No persisted setting names, types, or value formats changed, so existing
betterhud.propertiesfiles continue to load unmodified.Testing
main(Stonecutter multi-version builds + concurrent launch-test CI)../gradlew :1.21:build :1.21.6:build :26.1:build :26.2:build— all variants build cleanly../gradlew modrinthBundle— succeeds../gradlew :launchtest:runProductionClientGameTest -PtestMcVersion=26.1— client reaches a survival world and captures the HUD screenshot.