#include "clientobject.h"
#include "utility.h" // For IntervalLimiter
#include "gamedef.h"
+#include "inventorymanager.h"
+#include "filesys.h"
struct MeshMakeData;
class IGameDef;
class IWritableTextureSource;
-class IWritableToolDefManager;
+class IWritableItemDefManager;
class IWritableNodeDefManager;
+//class IWritableCraftDefManager;
class ClientNotReadyException : public BaseException
{
std::string password,
MapDrawControl &control,
IWritableTextureSource *tsrc,
- IWritableToolDefManager *tooldef,
+ IWritableItemDefManager *itemdef,
IWritableNodeDefManager *nodedef
);
// Pops out a packet from the packet queue
//IncomingPacket getPacket();
- void groundAction(u8 action, v3s16 nodepos_undersurface,
- v3s16 nodepos_oversurface, u16 item);
- void clickActiveObject(u8 button, u16 id, u16 item_i);
+ void interact(u8 action, const PointedThing& pointed);
void sendSignNodeText(v3s16 p, std::string text);
void sendInventoryAction(InventoryAction *a);
void setPlayerControl(PlayerControl &control);
void selectPlayerItem(u16 item);
+ u16 getPlayerItem() const
+ { return m_playeritem; }
// Returns true if the inventory of the local player has been
// updated from the server. If it is true, it is set to false.
// Copies the inventory of the local player to parameter
void getLocalInventory(Inventory &dst);
- InventoryContext *getInventoryContext();
-
- Inventory* getInventory(InventoryContext *c, std::string id);
+ /* InventoryManager interface */
+ Inventory* getInventory(const InventoryLocation &loc);
void inventoryAction(InventoryAction *a);
// Gets closest object pointed by the shootline
bool texturesReceived()
{ return m_textures_received; }
- bool tooldefReceived()
- { return m_tooldef_received; }
+ bool itemdefReceived()
+ { return m_itemdef_received; }
bool nodedefReceived()
{ return m_nodedef_received; }
+ void afterContentReceived();
+
float getRTT(void);
// IGameDef interface
- // Under envlock
- virtual IToolDefManager* getToolDefManager();
+ virtual IItemDefManager* getItemDefManager();
virtual INodeDefManager* getNodeDefManager();
+ virtual ICraftDefManager* getCraftDefManager();
virtual ITextureSource* getTextureSource();
+ virtual u16 allocateUnknownNodeId(const std::string &name);
private:
IntervalLimiter m_map_timer_and_unload_interval;
IWritableTextureSource *m_tsrc;
- IWritableToolDefManager *m_tooldef;
+ IWritableItemDefManager *m_itemdef;
IWritableNodeDefManager *m_nodedef;
MeshUpdateThread m_mesh_update_thread;
ClientEnvironment m_env;
IrrlichtDevice *m_device;
// Server serialization version
u8 m_server_ser_ver;
- // This is behind m_env_mutex.
+ u16 m_playeritem;
bool m_inventory_updated;
+ Inventory *m_inventory_from_server;
+ float m_inventory_from_server_age;
core::map<v3s16, bool> m_active_blocks;
PacketCounter m_packetcounter;
// Received from the server. 0-23999
std::string m_password;
bool m_access_denied;
std::wstring m_access_denied_reason;
- InventoryContext m_inventory_context;
Queue<ClientEvent> m_client_event_queue;
float m_texture_receive_progress;
bool m_textures_received;
- bool m_tooldef_received;
+ bool m_itemdef_received;
bool m_nodedef_received;
friend class FarMesh;
};