class MapBlockMesh;
class IGameDef;
class IWritableTextureSource;
+class IWritableShaderSource;
class IWritableItemDefManager;
class IWritableNodeDefManager;
//class IWritableCraftDefManager;
std::string password,
MapDrawControl &control,
IWritableTextureSource *tsrc,
+ IWritableShaderSource *shsrc,
IWritableItemDefManager *itemdef,
IWritableNodeDefManager *nodedef,
ISoundManager *sound,
void sendNodemetaFields(v3s16 p, const std::string &formname,
const std::map<std::string, std::string> &fields);
+ void sendInventoryFields(const std::string &formname,
+ const std::map<std::string, std::string> &fields);
void sendInventoryAction(InventoryAction *a);
void sendChatMessage(const std::wstring &message);
void sendChangePassword(const std::wstring oldpassword,
virtual INodeDefManager* getNodeDefManager();
virtual ICraftDefManager* getCraftDefManager();
virtual ITextureSource* getTextureSource();
+ virtual IShaderSource* getShaderSource();
virtual u16 allocateUnknownNodeId(const std::string &name);
virtual ISoundManager* getSoundManager();
virtual MtEventManager* getEventManager();
IntervalLimiter m_map_timer_and_unload_interval;
IWritableTextureSource *m_tsrc;
+ IWritableShaderSource *m_shsrc;
IWritableItemDefManager *m_itemdef;
IWritableNodeDefManager *m_nodedef;
ISoundManager *m_sound;
float m_last_time_of_day_f;
float m_time_of_day_update_timer;
+ // An interval for generally sending object positions and stuff
+ float m_recommended_send_interval;
+
// Sounds
float m_removed_sounds_check_timer;
// Mapping from server sound ids to our sound ids
// Privileges
std::set<std::string> m_privileges;
+
+ // Detached inventories
+ // key = name
+ std::map<std::string, Inventory*> m_detached_inventories;
};
#endif // !CLIENT_HEADER