#include "Deserializer.h" #include "Exception.h" #include "TileAppearance.h" void Deserializer::set_target(Museum * museum) { this->museum = museum; } Deserializer::~Deserializer() { this->finalize(); } void Deserializer::finalize() { // TODO: remove artists outside the canvas } Museum & Deserializer::get_target() { if (this->museum == nullptr) throw Exception("no museum given to Deserializer"); return *this->museum; } void Deserializer::add_artist(ArtistData data) { Museum & museum = this->get_target(); // museum.people.add_artist(data); } void Deserializer::set_canvas(CanvasData data) { Museum & museum = this->get_target(); museum.canvas.data = data; museum.canvas.update(); } void Deserializer::add_tile(unsigned int x, unsigned int y, TileData data) { Museum & museum = this->get_target(); museum.canvas.set_tile(x, y, data); } void Deserializer::add_type(std::string type, Color color, unsigned int weight) { if (type.length() == 0) return; TileAppearance::register_color(type, color); }