aboutsummaryrefslogtreecommitdiff
path: root/Tile.h
blob: d2a83a87f5d7d032bda9bf587cffdbe5c27ae102 (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
31
32
33
#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;

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