aboutsummaryrefslogtreecommitdiff
path: root/Tile.h
blob: 446b991f9eb25e0ed503243b00c9c676aa1c8277 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once

#include <memory>

#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<TileBehaviorStrategy> behavior = nullptr;

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;
};