aboutsummaryrefslogtreecommitdiff
path: root/TileBehavior.h
blob: 2298c07327106d896c86ebd7286f47f6ede1407e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

#include <map>
#include <string>

#include "TileBehaviorStrategy.h"

class TileBehavior {
	typedef std::map<std::string, TileBehaviorStrategy *> TileBehaviorCollection;

public:
	static TileBehaviorStrategy & get_strategy(std::string);
	static void register_strategy(std::string, TileBehaviorStrategy *);

private:
	static TileBehaviorCollection & get_collection() {
		static TileBehaviorCollection c = {};
		return c;
	}
};