Fullscreen UI overhaul: single windowed workspace with live pawn preview#60
Open
feldoh wants to merge 1 commit into
Open
Fullscreen UI overhaul: single windowed workspace with live pawn preview#60feldoh wants to merge 1 commit into
feldoh wants to merge 1 commit into
Conversation
Replace the four-window cascade (Dialog_FactionLoadout -> PresetUI -> FactionEditUI -> PawnKindEditUI) with a single fullscreen, paused Dialog_TotalControl driven by a TotalControlController that dispatches to three screens via a top tab strip and a clickable breadcrumb: - Faction View - global settings + preset management + faction list - Faction Edit - two panels: pawnkind list | faction settings - Pawn Edit - three columns: live portrait | category nav | options Pawn Edit reuses the existing Tab/DrawOverride system unchanged and fixes the old shared-scroll bug with a per-category scroll position. Live preview (PreviewPawnController + PawnPreviewWidget) renders the pawn via PortraitsCache, generated through the real pipeline so it matches raid output. It auto-refreshes (debounced) on edits, has rotate/regenerate/ headgear/clothes controls, and disposes throwaway pawns safely so they can never leak into the save. Other changes: - TCEditContext.CurrentFaction replaces the hidden WindowOfType<FactionEditUI>() lookup in SpecificGearDrawer (the one place that could silently regress). - BaselinerDefName moved from FactionEditUI to FactionEdit. - Both entry points (mod-settings button, options-page link) now open Dialog_TotalControl. - Removed the four old window classes and ModCore.SettingsDialog. Data model and XML serialization are unchanged (old presets load as-is); module AddTabs/AddFactionUI contracts preserved. Compiles clean in Debug and Release. In-game verification still pending. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
Replaces the old four-window cascade (
Dialog_FactionLoadout → PresetUI → FactionEditUI → PawnKindEditUI) — where every navigation step opened, dragged, or closed another floating window — with a single fullscreen, paused workspace navigated by top tabs and a clickable breadcrumb. Addresses user feedback that the UI involves too much "dragging windows around, expanding, and scrolling."Screens
One
Dialog_TotalControlwindow hosts aTotalControlControllerthat dispatches to three screens:Tabs form a context hierarchy (Faction Edit enabled once a faction is selected, Pawn Edit once a pawnkind is selected); selecting a row auto-advances, and the breadcrumb navigates back. Esc steps back one screen, closing only from Home.
Live pawn preview
Pawn Edit renders a big portrait via
PortraitsCache.Get, generated through the real generation pipeline so the always-active apparel/weapon/hediff patches apply edits exactly as they would for a raid. Auto-refreshes (debounced) when inline options change, plus a manual Regenerate button and rotate / headgear / clothes toggles. Throwaway preview pawns are disposed with the same save-safe pattern as the oldFactionEditUI.DestroyPawns(RemoveAndDiscardPawnViaGC/PassToWorld(Discard)) on teardown and before each regeneration.Notable internals
Tab/DrawOverridesystem unchanged in Pawn Edit; the vertical category nav replaces the cramped 5-per-row tab buttons, and each category now has its own scroll position (fixes the previous shared-scroll bug).TCEditContext.CurrentFaction(a small static) replaces the hiddenFind.WindowStack.WindowOfType<FactionEditUI>()lookup inSpecificGearDrawer— the one spot that could silently regress material/tech-level resolution once the old window was gone.BaselinerDefNamemoved fromFactionEditUItoFactionEdit.Dialog_TotalControl.ModCore.SettingsDialogare removed.Backwards compatibility
AddTabs/AddFactionUIcontracts preserved (called exactly as before).Build / testing
WorldPawnsafter closing.🤖 Generated with Claude Code