feat(editor): add WSPM JSON round-trip (--export/--import-wspm-json)

Dual encoding for edgeFadeMode (int 0..2 OR token "hard"
/ "softedge" / "pulse"). stackable and destroyOnCancel
accept both bool and int. Float fields (radius, duration)
serialize as JSON floats; tickIntervalMs and decalColor
as plain unsigned integers — operators editing JSON can
hand-write 0xAARRGGBB hex colors via Python int() prep.

All 3 presets (mage/raid/env) byte-identical roundtrip
OK. Token-form import smoke-tested with mixed pulse +
stackable + destroyOnCancel false. CLI flag count 1153
-> 1155.
This commit is contained in:
Kelsi 2026-05-10 01:31:49 -07:00
parent 62a10937e0
commit 267d525fe7
3 changed files with 175 additions and 0 deletions

View file

@ -321,6 +321,7 @@ const char* const kArgRequired[] = {
"--export-wtbd-json", "--import-wtbd-json",
"--gen-spm", "--gen-spm-raid", "--gen-spm-env",
"--info-wspm", "--validate-wspm",
"--export-wspm-json", "--import-wspm-json",
"--gen-weather-temperate", "--gen-weather-arctic",
"--gen-weather-desert", "--gen-weather-stormy",
"--gen-zone-atmosphere",