void handleCommand_AccessDenied(NetworkPacket* pkt);
void handleCommand_RemoveNode(NetworkPacket* pkt);
void handleCommand_AddNode(NetworkPacket* pkt);
+ void handleCommand_NodemetaChanged(NetworkPacket *pkt);
void handleCommand_BlockData(NetworkPacket* pkt);
void handleCommand_Inventory(NetworkPacket* pkt);
void handleCommand_TimeOfDay(NetworkPacket* pkt);
void handleCommand_ActiveObjectRemoveAdd(NetworkPacket* pkt);
void handleCommand_ActiveObjectMessages(NetworkPacket* pkt);
void handleCommand_Movement(NetworkPacket* pkt);
+ void handleCommand_Fov(NetworkPacket *pkt);
void handleCommand_HP(NetworkPacket* pkt);
void handleCommand_Breath(NetworkPacket* pkt);
void handleCommand_MovePlayer(NetworkPacket* pkt);
void handleCommand_SrpBytesSandB(NetworkPacket *pkt);
void handleCommand_FormspecPrepend(NetworkPacket *pkt);
void handleCommand_CSMRestrictionFlags(NetworkPacket *pkt);
+ void handleCommand_PlayerSpeed(NetworkPacket *pkt);
void ProcessData(NetworkPacket *pkt);
void Send(NetworkPacket* pkt);
- void interact(u8 action, const PointedThing& pointed);
+ void interact(InteractAction action, const PointedThing &pointed);
void sendNodemetaFields(v3s16 p, const std::string &formname,
const StringMap &fields);
void clearOutChatQueue();
void sendChangePassword(const std::string &oldpassword,
const std::string &newpassword);
- void sendDamage(u8 damage);
+ void sendDamage(u16 damage);
void sendRespawn();
void sendReady();
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.
- bool getLocalInventoryUpdated();
- // Copies the inventory of the local player to parameter
- void getLocalInventory(Inventory &dst);
+ bool updateWieldedItem();
/* InventoryManager interface */
Inventory* getInventory(const InventoryLocation &loc) override;
void inventoryAction(InventoryAction *a) override;
+ // Send the item number 'item' as player item to the server
+ void setPlayerItem(u16 item);
+
const std::list<std::string> &getConnectedPlayerNames()
{
return m_env.getPlayerNames();
// disconnect client when CSM failed.
const std::string &accessDeniedReason() const { return m_access_denied_reason; }
- bool itemdefReceived()
+ const bool itemdefReceived() const
{ return m_itemdef_received; }
- bool nodedefReceived()
+ const bool nodedefReceived() const
{ return m_nodedef_received; }
- bool mediaReceived()
+ const bool mediaReceived() const
{ return !m_media_downloader; }
+ const bool activeObjectsReceived() const
+ { return m_activeobjects_received; }
- u8 getProtoVersion()
+ u16 getProtoVersion()
{ return m_proto_ver; }
bool connectedToServer();
}
ClientScripting *getScript() { return m_script; }
- const bool moddingEnabled() const { return m_modding_enabled; }
const bool modsLoaded() const { return m_mods_loaded; }
void pushToEventQueue(ClientEvent *event);
void Receive();
void sendPlayerPos();
- // Send the item number 'item' as player item to the server
- void sendPlayerItem(u16 item);
void deleteAuthData();
// helper method shared with clientpackethandler
void promptConfirmRegistration(AuthMechanism chosen_auth_mechanism);
void startAuth(AuthMechanism chosen_auth_mechanism);
void sendDeletedBlocks(std::vector<v3s16> &blocks);
- void sendGotBlocks(v3s16 block);
+ void sendGotBlocks(const std::vector<v3s16> &blocks);
void sendRemovedSounds(std::vector<s32> &soundList);
// Helper function
// and aren't accurate. We simply just don't know, because
// the server didn't send the version back then.
// If 0, server init hasn't been received yet.
- u8 m_proto_ver = 0;
+ u16 m_proto_ver = 0;
- u16 m_playeritem = 0;
- bool m_inventory_updated = false;
+ bool m_update_wielded_item = false;
Inventory *m_inventory_from_server = nullptr;
float m_inventory_from_server_age = 0.0f;
PacketCounter m_packetcounter;
std::queue<ClientEvent *> m_client_event_queue;
bool m_itemdef_received = false;
bool m_nodedef_received = false;
+ bool m_activeobjects_received = false;
bool m_mods_loaded = false;
ClientMediaDownloader *m_media_downloader;
// And relations to objects
std::unordered_map<int, u16> m_sounds_to_objects;
- // CSM/client IDs to SSM/server IDs Mapping
- // Map server particle spawner IDs to client IDs
- std::unordered_map<u32, u32> m_particles_server_to_client;
// Map server hud ids to client hud ids
std::unordered_map<u32, u32> m_hud_server_to_client;