#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 = { 0 }; Color color = { 0 }; std::unique_ptr behavior = nullptr; unsigned int x = 0; unsigned int y = 0; public: void set_data(TileData data); void update(); void step(Artist &); Tile * get_neighbor(int dx, int dy); private: Museum & museum; };