feat(editor): DBC→JSON export for open format zone data tables

- DBCExporter: converts Blizzard DBC binary data tables to JSON
- Exports zone-relevant DBCs: AreaTable, Map, Light, LightParams,
  ZoneMusic, SoundAmbience, GroundEffectTexture/Doodad, LiquidType
- Auto-detects string vs numeric vs float fields
- Zone export now includes data/ directory with JSON DBCs
- Client can load these via existing CSV/JSON fallback paths

Format replacement progress:
- DONE: ADT → WOT/WHM (terrain)
- DONE: WDT → zone.json (map definition)
- DONE: BLP → PNG (textures)
- DONE: DBC → JSON (data tables)
- TODO: M2 → open model format
- TODO: WMO → open building format
This commit is contained in:
Kelsi 2026-05-05 10:21:14 -07:00
parent cb3de59b5c
commit 176115f279
4 changed files with 129 additions and 0 deletions

View file

@ -4,6 +4,7 @@
#include "content_pack.hpp"
#include "wowee_terrain.hpp"
#include "texture_exporter.hpp"
#include "dbc_exporter.hpp"
#include "core/coordinates.hpp"
#include "rendering/vk_context.hpp"
#include "pipeline/adt_loader.hpp"
@ -740,6 +741,9 @@ void EditorApp::exportZone(const std::string& outputDir) {
LOG_INFO("Exported ", exported, " textures as PNG");
}
// Export zone-relevant DBCs as JSON (open format replacement for DBC)
DBCExporter::exportZoneDBCs(assetManager_.get(), base + "/data");
// Export open terrain format alongside ADT
std::string openBase = base + "/" + loadedMap_ + "_" +
std::to_string(loadedTileX_) + "_" + std::to_string(loadedTileY_);