Commit graph

2 commits

Author SHA1 Message Date
Kelsi
3fd978ef89 feat(editor): add WLIQ JSON round-trip (export/import sidecar)
Closes the JSON round-trip gap on the liquid catalog format
shipped this batch. --export-wliq-json emits all 14 scalar
fields (incl. 3-byte fog RGB) plus a dual int + name form for
liquidKind so hand-edits can use either representation.
--import-wliq-json accepts either form, falling back to the
int when both are present. Verified byte-identical round-trip
on all three preset emitters (starter / magical / hazardous).
716 documented CLI flags.
2026-05-09 19:11:14 -07:00
Kelsi
fb07b276f2 feat(pipeline): add WLIQ (Wowee Liquid Type) catalog
45th open format — replaces LiquidType.dbc plus the
AzerothCore-style terrain liquid descriptor data. Defines
liquid materials used by terrain MCNK liquid layers, WMO
interior pools, and procedurally generated fluid bodies in
custom zones. Each liquid pairs a render material (shader +
texture array + flow vectors + fog color) with gameplay data
(damage spell, raw DPS, ambient + splash audio cross-refs).

Cross-references with prior formats — ambientSoundId and
splashSoundId point at WSND.soundId, damageSpellId points at
WSPL.spellId.

10 liquid kinds (Water / Magma / Slime / OceanSalt / FelFire /
HolyLight / TarOil / AcidBog / FrozenWater / UnderworldGoo)
covering both natural and magical fluids. Per-liquid: viscosity
(0=water, 1=slime), flow direction+speed (radians+units/sec),
fog density+RGB, packed minimap RGBA color.

CLI: --gen-liquids (3-entry classic Water/Lava/Slime starter),
--gen-liquids-magical (4 magical pools incl. fel/holy/cosmic),
--gen-liquids-hazardous (3 high-damage liquids with WSPL DoT
cross-refs), --info-wliq, --validate-wliq with --json variants.
Validator catches id=0/duplicates, missing shader/material,
kind out of range, fog/viscosity outside 0..1, hazardous-kind-
without-damage warning, and Water/OceanSalt-with-damage warning
to flag accidental misconfiguration.
2026-05-09 19:10:03 -07:00