GTNH-Credits
16 merged pull requests.
New Features
- #23 Added ESC keybind handler to
CreditsScreento close the screen. - @Worive- Added: ESC keybind to close credits screen
- #22 Modified
ConfigandCreditsRepositoryto check forcredits.jsonin the config directory before falling back to bundled resources. Moved the example config file location. - @Worive- Added: config folder support for credits.json, config folder support for gtnh-credits.cfg
- #10 Adds a creditsEditor Gradle subproject with install and run tasks and a libCredits shared library for reading and writing credits.json and lang resources. Also moves build setup into addon.gradle, renames repositories.gradle.kts to repositories.gradle, and updates docs, the JSON schema and IDE and editor config. - @leagris
- Added: Credits Editor desktop tool, libCredits shared library
- #7 Added
FuzzyFinderclass implementing Damerau-Levenshtein distance scoring with configurable layers: perfect match (0.0), prefix match (0.1+), substring match (5+), and fuzzy match (10+). UpdatedCreditsControllerandCreditsScreento use fuzzy search instead of regex. - @SkorchedEU- Added: FuzzyFinder utility class, fuzzy search functionality, search cost configuration
- #3 Adds CmmActionHandler, which listens for Custom Main Menu's ActionIMCEvent and opens the Credits screen on modid gtnhcredits with message openCredits. Config gains menu_button enabled (default false), and ClientProxy registers GuiMainMenuHandler only when it is true. Adds Custom-Main-Menu as a compileOnly dependency, a dev-only mainmenu.json, and README docs. - @leagris
- Added: Custom Main Menu sendIMC integration for the Credits screen, config option to show the vanilla main menu Credits button
- #1 Replaced plain text matching with regex in CreditsBodyPanel. Implemented custom text input handling in CreditsScreen using GuiScreen events to support dead key input when lwjgl3ify is loaded, since MUI2 text widgets don't support composition. - @leagris
- Added: Regex filter support, custom text input handler for dead keys
- Fixed: Dead key input on non-US keyboards
Bug Fixes
- #24 CreditsCategorySelector overrides layoutWidgets to clamp the scroll data to the scroll area after layout. - @Worive
- Fixed: category sidebar stuck out of render after resizing the GUI
- #21 In CreditsContentRenderer.buildRolesText, the separator between roles is now a reset code, a comma and space, then the italic code, instead of a plain comma and space. - @Worive
- Fixed: role colors not being reset in the credits list
- #19 Switched libCredits from api to shadowImplementation in dependencies.gradle and set usesShadowedDependencies = true in gradle.properties, so the library is shaded into the jar. - @SuperSoupr
- Fixed: crash when opening the credits page due to missing libCredits in the build
- #5 Fixed the @Mod name, switched to the Forge-provided logger, closed the icon InputStream after ImageIO.read, and renamed the texture folder credis to credits with the Config default updated. Replaced json-schema-validator and jackson with Gson in build-logic, split CachedRichTextWidget.draw() into helpers, and replaced the validateCreditsJson task with JUnit tests (CreditsJsonValidationTest). - @leagris
- Added: JUnit credits.json validation tests
- Removed: validateCreditsJson Gradle task, json-schema-validator and jackson build dependencies
- Fixed: mod display name showing MyMod, unclosed icon input stream, misspelled credis texture folder
Internal / Refactor
- #8 Added a libCredits Gradle subproject (net.noiraude.libcredits) holding the model classes, a new CreditsParser, CreditsParseException and FuzzyFinder, with no Minecraft dependencies. Removed CreditsRepository from the main mod, which now depends on the library via an api dependency. FuzzyFinder's ScoredUsername record became a plain class. - @leagris
- Added: libCredits library module, CreditsParser
- Removed: CreditsRepository
- #6 credits.json schema version 2: person.category entries are a key string or a single-property object mapping category id to role keys, top-level role removed. CreditsPerson.categoryRoles is a Map<String, List<String>>. CreditsValidator now uses com.networknt json-schema-validator 3.0.1 (test scope), and the schema moved to the repo root. - @leagris
- Added: credits.json schema version 2
- Removed: Top-level role field on persons
Documentation
- #20 README.md only: adds an Installation and setup section, notes the mainmenu_auto, mainmenu_small, mainmenu_normal and mainmenu_large variants, uses the mod's own lang key for the button label, and fixes the gtnh-credits.cfg example. - @Worive
- Fixed: setup instructions in the README
- #2 Adds a two-line reference to GT-New-Horizons-Modpack issue 23582 in README.md. - @leagris
Chores
- #18 Adds a release-editor job to release-tags.yml that runs a new creditsEditor:releaseZip Gradle task and uploads the archive to the GitHub release with gh. - @leagris
- Added: Credits Editor release zip
- #4 Deleted the unused com.cleanroommc.modularui package (IKey, ITextLine, RichText, StringKey) from the repo. - @leagris
- Removed: unused com.cleanroommc.modularui classes
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@leagris (11), @boubou19 (5), @Worive (5), @FourIsTheNumber (1), @github-code-quality (1), @github-code-quality[bot] (1), @SkorchedEU (1), @SuperSoupr (1)