Skip to content

Add per-category and per-mod output grouping - #6

Open
elseform wants to merge 2 commits into
noisethanks:masterfrom
elseform:feat/per-category
Open

elseform wants to merge 2 commits into
noisethanks:masterfrom
elseform:feat/per-category

Conversation

@elseform

Copy link
Copy Markdown
Contributor

Mod Output Mode can now split compressed output across multiple mod
folders instead of one flat folder:

  • Per texture category: ATAK - Normal Maps, ATAK - Diffuse, etc
  • Per source mod: ATAK - SomeMod
  • Both combined: ATAK - SomeMod - Normal Maps

Why split

  • Per-category makes A/B testing a single category easier
  • Per-mod makes updating easier once mod-update drops

Both are opt-in toggles in Settings. Per-category defaults on
(matches prior behavior on this branch); per-mod defaults off.

Scan exclusion glob (ATAK - *) now matches all three folder-name
shapes so grouped output is never rescanned as a source mod.

Testing

  • go test ./... — added internal/tui/screens/percategory_test.go
    covering all four grouping combinations (off / category / mod / both),
    the scan exclusion glob, and incremental-skip isolation between
    category output folders
  • Manually verified in the TUI: ran a category through Mod Output Mode,
    confirmed folder created, confirmed rerun skips already-compressed files

Known follow-up

Settings screen has no scroll support (pre-existing, not introduced here)
— these two new toggles push it further past typical terminal height on
short terminals. #5


Supersedes #4, which was auto-closed when the source branch
(feature-per-category) was renamed to feat/per-category.

Mod Output Mode can now split compressed output across multiple mod
folders instead of one flat folder:

- Per texture category: ATAK - Normal Maps, ATAK - Diffuse, etc
- Per source mod: ATAK - SomeMod
- Both combined: ATAK - SomeMod - Normal Maps

Why split at all:
- Per-category makes A/B testing a single category trivial - drop or
  reorder just "ATAK - Normal Maps" in MO2 without touching the rest
- Per-mod makes updating a source mod's textures trivial - delete
  just that mod's output folder and rerun

Both are opt-in toggles in Settings. Per-category defaults on
(matches prior behavior on this branch); per-mod defaults off.

Scan exclusion glob (ATAK - *) now matches all three folder-name
shapes so grouped output is never rescanned as a source mod.
@elseform

Copy link
Copy Markdown
Contributor Author
B6CDAA30-B6A6-441B-918C-4242B045EDC5 7B048729-0D46-42D1-A1CF-AE215727DC79

Profile names come from profiles.json and can contain '/' (e.g.
"Character / Hands"). filepath.Join treats that as a real path
separator, so "ATAK Compression Texconv - Character / Hands" wasn't
one folder — it silently became two nested ones ("...Character " and
"Hands"). That's the actual cause of the stray Hands directory seen
in per-category output; the earlier virtual-filesystem anchoring fix
(ffbce0f) was a separate, real issue but not this one.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant