Automated parts sorting

This commit is contained in:
2026-05-17 14:21:05 +02:00
parent d7704c5f68
commit 574349b929
7 changed files with 414 additions and 8 deletions
+21 -1
View File
@@ -181,6 +181,19 @@ generated_assets:
derive:
kind: trailing_numeric_suffix
group_from: first_path_segment
parts_rows:
row_defaults:
COSTMODIFIER: "0"
acbonus:
default:
strategy: descending_row_id_sort_key
max_row_id: 999
divisor: 100
format: "%.2f"
datasets:
chest:
strategy: fixed
value: "0.00"
inventory:
source_extensions: [] # empty means built-in NWN source extensions
@@ -255,6 +268,13 @@ native-topdata subset packaged as HAK resources. It builds only `.2da` output,
injects those generated files into `build-haks`, and rejects TLK-backed text
because this path does not produce TLK packages.
For `parts_rows` generated assets, `parts_rows.acbonus` can normalize final
ACBONUS values before module overrides are applied. The
`descending_row_id_sort_key` strategy writes toolset ordering values from row
IDs, and per-dataset policies such as `chest: fixed 0.00` can override that
default. Authored source ACBONUS values are not authoritative when this policy
is configured; files under `parts/modules` remain the final override layer.
Extraction is deliberately guarded because it writes source files from binary
archives. `extract.archives` is a list of glob patterns relative to
`paths.build`; the default is only the configured module `.mod`. HAK extraction
@@ -401,7 +421,7 @@ The current ownership split is:
- owns the user-facing module and topdata wrapper commands
- `sow-assets`
- owns canonical binary asset source under `assets/`
- owns generated HAK manifests and parts manifests under `staging/`
- owns generated HAK manifests and HAK-side parts 2DA assets
- owns the user-facing asset wrapper commands
Consumer wrapper resolution is intentionally aligned: