Convert Pathfinder extensions to GDL + portrait support#23544
Closed
halgari wants to merge 9 commits into
Closed
Conversation
Replace the imperative index.js with a declarative game.yaml. Drop the modtype-umm dependency, registry probe, Bluebird, and platform guards. UMM presence is checked via the new setup.requireFiles block, which prompts the user to the Unity Mod Manager page when the loader is absent.
Replace the imperative index.ts with a declarative game.yaml. Drop the modtype-umm/ummAddGame integration, move version detection to a declarative discovery.version (Version.info) block, and add the setup.requireFiles UMM prompt. WotR no longer auto-downloads UMM (accepted regression).
Records the GDL submodule at the setup.requireFiles feature commit, which the two Pathfinder game extensions depend on. Also commits the lockfile change for the @vortex/extension-test-mocks devDependency the converted games added.
Character portraits deploy to the user's LocalLow Owlcat profile, not the game's Mods folder. A portrait folder is recognised by the Small + Medium + Fulllength PNG trio. Two installers route them: portrait-collection strips a top-level Portraits/ wrapper for multi-portrait packs, and portrait takes a single portrait folder. UMM code mods (.dll) and in-game asset-bundle replacements are excluded so they keep their existing deployment. Also enable corpus testing (tests.corpus: nexus), now that the extensions have installer rules worth exercising. Verified against the live Nexus corpus: 85 of 247 Kingmaker mods and 106 of 235 WotR mods route to the portrait types, with zero failures and the excluded shapes correctly left to default.
Reintroduce src/hooks.ts with two install hooks: - installPortrait deploys every portrait folder (the Small/Medium/Fulllength PNG trio) as Portraits/<name>/ under the user's LocalLow profile. One hook covers single-folder, multi-portrait Portraits/ wrappers, and loose-at-root archives (synthesising a folder name) at any nesting depth, replacing the earlier declarative portrait installers. - installVoice flattens Wwise .bnk soundbanks into the game's audio folder via a new voice mod type. Packs bundling multiple variants of the same bank deploy to Mods/ unchanged, since an installer cannot pick a variant. Verified against the live Nexus corpus with zero failures: Kingmaker routes 95 portrait and 15 voice mods, WotR 120 and 10. UMM code mods and asset-bundle replacements stay excluded. Hooks are unit-tested for every shape.
Contributor
Author
|
Closing this PR but keeping the branch: we're repurposing |
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
Converts the Pathfinder: Kingmaker and Pathfinder: Wrath of the Righteous game extensions to the Game Description Language (GDL), and adds portrait support to both.
What's here
game-description-languagesubmodule forsetup.requireFiles.Dependency
This branch is stacked on top of
halgari/games-to-gdl-1, so the PR is based on that branch and the diff shows only the Pathfinder-specific changes. Once #23536 merges tomaster, this PR should be retargeted tomaster.Testing
pnpm buildpasses (build, lint, typecheck across all projects).