#ifndef GAMEDEF_HEADER
#define GAMEDEF_HEADER
+#include <string>
+
class IToolDefManager;
class INodeDefManager;
+class ICraftDefManager;
//class IItemDefManager; //TODO
// Mineral too?
class ITextureSource;
// Thus, first they are set up and then they are only read.
virtual IToolDefManager* getToolDefManager()=0;
virtual INodeDefManager* getNodeDefManager()=0;
+ virtual ICraftDefManager* getCraftDefManager()=0;
//virtual IItemDefManager* getItemDefManager()=0;
// This is always thread-safe, but referencing the irrlicht texture
// pointers in other threads than main thread will make things explode.
virtual ITextureSource* getTextureSource()=0;
+
+ // Used for keeping track of names/ids of unknown nodes
+ virtual u16 allocateUnknownNodeId(const std::string &name)=0;
// Shorthands
IToolDefManager* tdef(){return getToolDefManager();}
INodeDefManager* ndef(){return getNodeDefManager();}
+ ICraftDefManager* cdef(){return getCraftDefManager();}
ITextureSource* tsrc(){return getTextureSource();}
};