#pragma once #include #include #include "CanvasData.h" #include "Tile.h" class Museum; class Canvas { public: Canvas(Museum &); virtual ~Canvas(); std::string to_string(bool truecolor = false); public: virtual Tile & get_tile(unsigned x, unsigned y); virtual void set_tile(unsigned x, unsigned y, TileData data); public: CanvasData data; void update(); void set_data(CanvasData data); private: void update_steps(); void update_tiles(); private: std::vector tiles; Museum & museum; private: size_t pos_to_index(unsigned x, unsigned y); };