mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-06 09:03:52 +00:00
feat(editor): zone metadata panel with mapId, displayName, gameplay flags
- Map ID: configurable integer input (0-65535) for private server integration. Custom zones default to 9000+ to avoid Blizzard conflicts - Display Name: editable text field for in-game world map/loading screen - Description: multi-line text field for zone documentation - Zone Flags: Allow Flying, PvP Enabled, Indoor, Sanctuary checkboxes - All fields serialized to zone.json under "flags" key - Info panel shows quest count alongside objects/NPCs
This commit is contained in:
parent
2136727c68
commit
9db5cced2c
3 changed files with 57 additions and 2 deletions
|
|
@ -44,6 +44,14 @@ bool ZoneManifest::save(const std::string& path) const {
|
|||
if (hasCreatures) files["creatures"] = "creatures.json";
|
||||
j["files"] = files;
|
||||
|
||||
// Zone gameplay flags
|
||||
nlohmann::json flags;
|
||||
flags["allowFlying"] = allowFlying;
|
||||
flags["pvpEnabled"] = pvpEnabled;
|
||||
flags["isIndoor"] = isIndoor;
|
||||
flags["isSanctuary"] = isSanctuary;
|
||||
j["flags"] = flags;
|
||||
|
||||
// Audio configuration
|
||||
if (!musicTrack.empty() || !ambienceDay.empty()) {
|
||||
nlohmann::json audio;
|
||||
|
|
@ -87,6 +95,15 @@ bool ZoneManifest::load(const std::string& path) {
|
|||
}
|
||||
}
|
||||
|
||||
// Zone gameplay flags
|
||||
if (j.contains("flags")) {
|
||||
const auto& fl = j["flags"];
|
||||
allowFlying = fl.value("allowFlying", false);
|
||||
pvpEnabled = fl.value("pvpEnabled", false);
|
||||
isIndoor = fl.value("isIndoor", false);
|
||||
isSanctuary = fl.value("isSanctuary", false);
|
||||
}
|
||||
|
||||
// Audio configuration
|
||||
if (j.contains("audio")) {
|
||||
const auto& a = j["audio"];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue