]> git.lizzy.rs Git - minetest.git/blobdiff - src/client.h
fix screen flickering black when rendering to texture
[minetest.git] / src / client.h
index 18a0009a83123b62682ad5fc9cd5c6fa2ae03538..f85e8ac7be643a5af87b0f7d049780e347675022 100644 (file)
@@ -39,6 +39,7 @@ struct MeshMakeData;
 class MapBlockMesh;
 class IGameDef;
 class IWritableTextureSource;
+class IWritableShaderSource;
 class IWritableItemDefManager;
 class IWritableNodeDefManager;
 //class IWritableCraftDefManager;
@@ -174,6 +175,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
                        std::string password,
                        MapDrawControl &control,
                        IWritableTextureSource *tsrc,
+                       IWritableShaderSource *shsrc,
                        IWritableItemDefManager *itemdef,
                        IWritableNodeDefManager *nodedef,
                        ISoundManager *sound,
@@ -212,6 +214,8 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
 
        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,
@@ -303,6 +307,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
        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();
@@ -335,6 +340,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
        IntervalLimiter m_map_timer_and_unload_interval;
 
        IWritableTextureSource *m_tsrc;
+       IWritableShaderSource *m_shsrc;
        IWritableItemDefManager *m_itemdef;
        IWritableNodeDefManager *m_nodedef;
        ISoundManager *m_sound;
@@ -380,6 +386,9 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
        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
@@ -391,6 +400,10 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
 
        // Privileges
        std::set<std::string> m_privileges;
+
+       // Detached inventories
+       // key = name
+       std::map<std::string, Inventory*> m_detached_inventories;
 };
 
 #endif // !CLIENT_HEADER