#include "auth.h"
#include "ban.h"
#include "gamedef.h"
+#include "serialization.h" // For SER_FMT_VER_INVALID
struct LuaState;
typedef struct lua_State lua_State;
class IWritableToolDefManager;
class IWritableNodeDefManager;
+class IWritableCraftDefManager;
/*
Some random functions
// Under envlock
virtual IToolDefManager* getToolDefManager();
virtual INodeDefManager* getNodeDefManager();
+ virtual ICraftDefManager* getCraftDefManager();
virtual ITextureSource* getTextureSource();
+ virtual u16 allocateUnknownNodeId(const std::string &name);
IWritableToolDefManager* getWritableToolDefManager();
IWritableNodeDefManager* getWritableNodeDefManager();
+ IWritableCraftDefManager* getWritableCraftDefManager();
private:
bool set_camera_point_target, v3f camera_point_target);
static void SendToolDef(con::Connection &con, u16 peer_id,
IToolDefManager *tooldef);
+ static void SendNodeDef(con::Connection &con, u16 peer_id,
+ INodeDefManager *nodedef);
/*
- Non-static send methods
+ Non-static send methods.
+ Conlock should be always used.
+ Envlock usage is documented badly but it's easy to figure out
+ which ones access the environment.
*/
// Envlock and conlock should be locked when calling these
// Sends blocks to clients (locks env and con on its own)
void SendBlocks(float dtime);
+
+ void SendTextures(u16 peer_id);
/*
Something random
IWritableToolDefManager *m_toolmgr;
// Node definition manager
- IWritableNodeDefManager *m_nodemgr;
+ IWritableNodeDefManager *m_nodedef;
+
+ // Craft definition manager
+ IWritableCraftDefManager *m_craftdef;
/*
Threads
// Configuration path ("" = no configuration file)
std::string m_configpath;
+
+ // Mod parent directory paths
+ core::list<std::string> m_modspaths;
bool m_shutdown_requested;