#pragma once #include #include "TileData.h" #include "Color.h" #include "TileBehaviorStrategy.h" class Museum; class Tile { public: Tile(Museum & museum, TileData & data); public: TileData data; Color color; std::unique_ptr behavior = nullptr; unsigned int x = 0; unsigned int y = 0; public: void set_data(TileData & data); void set_type(const std::string & type); void update(); void step(Artist &); Tile * get_neighbor(int dx, int dy); private: Museum & museum; };