#pragma once #include #include #include "TileBehaviorStrategy.h" class TileBehavior { typedef std::map 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; } };