feat(editor): SQL spawn export for AzerothCore/TrinityCore

Private server integration: export creature spawns, patrol waypoints,
and quest definitions as ready-to-import SQL for AzerothCore/TrinityCore.

- creature_template: name, level, health, mana, damage, armor, faction,
  npcflag (questgiver/vendor/flightmaster/innkeeper), displayId, scale
- creature: spawn position, orientation, respawn time, wander distance,
  movement type (stationary/wander/patrol)
- creature_addon + waypoint_data: patrol path waypoints with delays
- quest_template: title, description, completion text, level, XP, money
- All use ON DUPLICATE KEY UPDATE for safe re-imports
- Auto-exported as spawns.sql alongside other assets on zone save
- File > Export Server SQL menu item for standalone export
- Map ID from zone metadata panel used in spawn table
This commit is contained in:
Kelsi 2026-05-05 16:06:34 -07:00
parent 84a431880e
commit b19627d82c
5 changed files with 238 additions and 2 deletions

View file

@ -0,0 +1,33 @@
#pragma once
#include "npc_spawner.hpp"
#include "quest_editor.hpp"
#include <string>
#include <cstdint>
namespace wowee {
namespace editor {
class SQLExporter {
public:
// Export creature spawns as AzerothCore/TrinityCore SQL
static bool exportCreatures(const std::vector<CreatureSpawn>& spawns,
const std::string& path,
uint32_t mapId = 9000,
uint32_t startEntry = 100000);
// Export quest definitions as AzerothCore quest_template SQL
static bool exportQuests(const std::vector<Quest>& quests,
const std::string& path,
uint32_t startEntry = 100000);
// Export everything to a single SQL file
static bool exportAll(const std::vector<CreatureSpawn>& spawns,
const std::vector<Quest>& quests,
const std::string& path,
uint32_t mapId = 9000,
uint32_t startEntry = 100000);
};
} // namespace editor
} // namespace wowee