mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-06 00:53:52 +00:00
feat(editor): project system for multi-zone custom expansions
- EditorProject: manages multiple zones in a single project file (wowee-project-1.0 JSON format) - Project stores: name, author, description, version, zone list - Each zone has: mapName, tileX/Y, biome, description - Save/load project files (.json) with full round-trip - Foundation for creating custom expansions with multiple maps, quest chains spanning zones, and campaign progression - getZoneOutputDir() resolves per-zone output paths
This commit is contained in:
parent
c28d3f8a99
commit
1d2f25f169
3 changed files with 142 additions and 0 deletions
32
tools/editor/editor_project.hpp
Normal file
32
tools/editor/editor_project.hpp
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <cstdint>
|
||||
|
||||
namespace wowee {
|
||||
namespace editor {
|
||||
|
||||
struct ProjectZone {
|
||||
std::string mapName;
|
||||
int tileX = 32, tileY = 32;
|
||||
std::string biome;
|
||||
std::string description;
|
||||
};
|
||||
|
||||
struct EditorProject {
|
||||
std::string name = "Untitled";
|
||||
std::string author;
|
||||
std::string description;
|
||||
std::string version = "1.0";
|
||||
std::string projectDir;
|
||||
uint32_t startMapId = 9000;
|
||||
std::vector<ProjectZone> zones;
|
||||
|
||||
bool save(const std::string& path) const;
|
||||
bool load(const std::string& path);
|
||||
std::string getZoneOutputDir(int zoneIdx) const;
|
||||
};
|
||||
|
||||
} // namespace editor
|
||||
} // namespace wowee
|
||||
Loading…
Add table
Add a link
Reference in a new issue