2025-07-06 20:43:53 +03:00
|
|
|
#include "GridManager.hpp"
|
|
|
|
|
|
2025-09-06 19:06:30 +03:00
|
|
|
GridManager::GridManager(World& w):
|
|
|
|
|
world(w) {}
|
2025-07-06 20:43:53 +03:00
|
|
|
|
2025-09-06 19:06:30 +03:00
|
|
|
void GridManager::init_client_callbacks() {
|
|
|
|
|
}
|
2025-07-06 20:43:53 +03:00
|
|
|
|
2025-09-06 19:06:30 +03:00
|
|
|
void GridManager::add_grid(const std::string& name) {
|
|
|
|
|
WorldGrid g;
|
|
|
|
|
grids[name] = g;
|
|
|
|
|
changed = true;
|
2025-08-01 10:58:45 +03:00
|
|
|
}
|
|
|
|
|
|
2025-09-06 19:06:30 +03:00
|
|
|
void GridManager::remove_grid(const std::string& name) {
|
|
|
|
|
grids.erase(name);
|
|
|
|
|
changed = true;
|
2025-07-06 20:43:53 +03:00
|
|
|
}
|
|
|
|
|
|
2025-09-06 19:06:30 +03:00
|
|
|
const std::vector<std::string>& GridManager::sorted_names() {
|
|
|
|
|
if(changed) {
|
|
|
|
|
sortedNames.clear();
|
|
|
|
|
for(auto& [k, v] : grids)
|
|
|
|
|
sortedNames.emplace_back(k);
|
|
|
|
|
std::sort(sortedNames.begin(), sortedNames.end());
|
|
|
|
|
changed = false;
|
2025-07-06 20:43:53 +03:00
|
|
|
}
|
2025-09-06 19:06:30 +03:00
|
|
|
return sortedNames;
|
|
|
|
|
}
|
2025-07-06 20:43:53 +03:00
|
|
|
|
2025-09-06 19:06:30 +03:00
|
|
|
void GridManager::draw(SkCanvas* canvas, const DrawData& drawData) {
|
|
|
|
|
for(auto& [str, g] : grids)
|
|
|
|
|
g.draw(*this, canvas, drawData);
|
2025-07-06 20:43:53 +03:00
|
|
|
}
|