Normalize: Pathfinder: Kingmaker#23249
Draft
halgari wants to merge 5 commits into
Draft
Conversation
Apply normalization checklist: convert to TypeScript, replace queryPath with queryArgs (Steam 640820), remove Bluebird dependency, remove winapi-bindings top-level import (lazy-require in readRegistryKey), remove process.platform guard, convert images to WebP, drop redundant mergeMods/environment.SteamAPPId/details.steamAppId. Add rolldown build.mjs and tsconfig.json. 1:1 behavioral replacement with no feature changes. Not opted into game-extension-test framework: this extension has no custom installer (installation is handled by the modtype-umm extension). LAZ-297
Add default copy-all installer fallback in the test harness for game extensions that rely on external mod-type extensions (e.g. modtype-umm) for installation. Also handle requireExtension as a no-op in the stub context proxy. Add test descriptor, healthcheck, and opt into game-extension-test for Pathfinder: Kingmaker. All 2417 Nexus fixtures pass. LAZ-297
Create shared library at packages/game-extension-helpers/ providing:
- registerUmmSupport: UMM tool installer + mod type, imported via TS
- registerDefaultModInstaller: explicit catch-all copy installer
Replaces runtime requireExtension("modtype-umm") with compile-time
imports. Each game extension is now self-contained with no transient
runtime dependencies outside the TypeScript module graph.
Update game-pathfinderkingmaker to use the shared library. Revert
the harness default-copy fallback (extensions register their own
installers explicitly now). Fix harness proxy to handle
requireExtension.
2415 Nexus fixtures pass, 9 skipped (7 CDN-unavailable, 2
directory-only source code archives).
LAZ-297
…nstallers Add content-type-specific installers that route files to the correct location instead of dumping everything into the game directory: - Portrait installer (priority 25): detects Small/Medium/Fulllength.png, deploys to LocalLow/Owlcat Games/Pathfinder Kingmaker/Portraits/ - Save installer (priority 30): detects .zks files, flattens to LocalLow/Owlcat Games/Pathfinder Kingmaker/Saved Games/ - Default copy-all (priority 200): catch-all for regular UMM mods Add healthchecks validating each content type: - pfk-mod-has-files: all mods produce at least one file - pfk-portrait-has-canonical-files: portrait mods contain the expected PNGs - pfk-save-has-zks: save mods contain .zks files Remove harness default-copy fallback (extensions register their own installers explicitly now). 2415 Nexus fixtures pass, 9 skipped. LAZ-297
- Fix misleading comments in getPortraitPath/getSavePath that described a fallback strategy the code doesn't implement - Use lastIndexOf in installUmmTool to avoid incorrect path stripping if a parent directory name matches the exe - Lift full method signatures onto UmmContext and InstallerContext interfaces, removing redundant body casts in both helpers - Document intentional non-portrait file filtering in installPortrait
|
This PR has conflicts. You need to rebase the PR before it can be merged. |
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
Normalize
game-pathfinderkingmakerextension per project checklist.1:1 behavioral replacement, no feature changes. Introduces
@vortex/game-extension-helpersshared library.Changes
queryPath(steam.findByAppId) withqueryArgsshorthand for Steam 640820winapi-bindingsfrom top-level import to lazyrequireinsidereadRegistryKeyprocess.platformguard (setup only runs on discovered Windows game)mergeMods(defaults to true),environment.SteamAPPId, anddetails.steamAppId(auto-derived from queryArgs.steam)requireExtension("modtype-umm")with compile-time imports from@vortex/game-extension-helpersNew package:
@vortex/game-extension-helpersShared library at
packages/game-extension-helpers/providing:registerUmmSupport(context, gameIds, options): registers UMM tool installer + mod type via TypeScript imports (no runtime extension dependency)registerDefaultModInstaller(context, id, gameIds): explicit catch-all copy installer at low priority, replacing Vortex's implicit built-in fallbackDesigned to be reused by all Unity Mod Manager games (pathfinderkingmaker, pathfinderwrathoftherighteous, dawnofman, gardenpaws, oni).
Test integration
@vortex/game-extension-testframeworkpfk-mod-has-files(validates installer produced output)requireExtensionas a no-opSkipped files
Verification
LAZ-297