aboutsummaryrefslogtreecommitdiff
path: root/TileBehavior.h
diff options
context:
space:
mode:
Diffstat (limited to 'TileBehavior.h')
-rw-r--r--TileBehavior.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/TileBehavior.h b/TileBehavior.h
index e46c0cf..2298c07 100644
--- a/TileBehavior.h
+++ b/TileBehavior.h
@@ -1,6 +1,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;
+ }
};