From f27bf2dfa4975c7366013bb2f729a9823105361c Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Sun, 2 Feb 2025 22:41:32 +0500 Subject: feat: export package --- src/level.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'src/level.cpp') diff --git a/src/level.cpp b/src/level.cpp index 39ac4e9..fb11881 100644 --- a/src/level.cpp +++ b/src/level.cpp @@ -93,6 +93,32 @@ namespace silly::editor { return count; } + const std::vector &TileFloor::get_layers() const { + return this->layers; + } + + std::string TileFloor::export_to_string() const { + std::ostringstream oss; + + oss << "[[floor]]\n" + << "# width;height\n" + << this->width << ";" << this->height << "\n"; + + for (auto it = this->layers.begin(); it != this->layers.end(); ++it) { + oss << "[[[layer]]]\n" + << "# type\n" + << it->type << "\n" + << "# tileset_tile_id;x;y;rotation\n"; + + for (auto tt = it->tiles.begin(); tt != it->tiles.end(); ++tt) { + oss << tt->tile->id << ";" << tt->position.x << ";" << tt->position.y + << ";" << tt->rotation << "\n"; + } + } + + return oss.str(); + } + void TileLevel::add_floor(TileFloor floor) { this->floors.push_back(floor); } void TileLevel::move_to_floor(int floor_id) { @@ -112,4 +138,18 @@ namespace silly::editor { } const std::string &TileLevel::get_name() const { return this->name; } + + std::string TileLevel::export_to_string() const { + std::ostringstream oss; + + oss << "[level]\n" + << "# name\n" + << this->name << "\n"; + + for (auto it = this->floors.begin(); it != this->floors.end(); ++it) { + oss << it->export_to_string() << "\n"; + } + + return oss.str(); + } } \ No newline at end of file -- cgit v1.2.3