diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-11-14 00:19:48 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-11-29 19:13:41 +0200 |
commit | abceeee92f99b84ebb79968269835a4f509bfb90 (patch) | |
tree | 669edeca68fae4eb086ac4e4c1846b55d3aa779d /src/tool.h | |
parent | 5fc791ac9a15ea6f234ca2d23041c83679255746 (diff) | |
download | minetest-abceeee92f99b84ebb79968269835a4f509bfb90.tar.gz minetest-abceeee92f99b84ebb79968269835a4f509bfb90.tar.bz2 minetest-abceeee92f99b84ebb79968269835a4f509bfb90.zip |
Create framework for getting rid of global definitions of node/tool/item/whatever types
Diffstat (limited to 'src/tool.h')
-rw-r--r-- | src/tool.h | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/tool.h b/src/tool.h index 49d069aac..a2a94f7fc 100644 --- a/src/tool.h +++ b/src/tool.h @@ -51,9 +51,32 @@ struct ToolDiggingProperties {} }; -std::string tool_get_imagename(const std::string &toolname); +struct ToolDefinition +{ + std::string imagename; + ToolDiggingProperties properties; + + ToolDefinition(){} + ToolDefinition(const std::string &imagename_, + ToolDiggingProperties properties_): + imagename(imagename_), + properties(properties_) + {} +}; + +class IToolDefManager +{ +public: + IToolDefManager(){} + virtual ~IToolDefManager(){} + virtual bool registerTool(std::string toolname, const ToolDefinition &def)=0; + virtual ToolDefinition* getToolDefinition(const std::string &toolname)=0; + virtual std::string getImagename(const std::string &toolname)=0; + virtual ToolDiggingProperties getDiggingProperties( + const std::string &toolname)=0; +}; -ToolDiggingProperties tool_get_digging_properties(const std::string &toolname); +IToolDefManager* createToolDefManager(); #endif |