diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-11-12 17:37:14 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-11-29 19:13:40 +0200 |
commit | 1320d07068f25ff23ea27e120983c006f75bec24 (patch) | |
tree | 3357de80e98ecdb045c31213a551eb93fe5250b9 /src/server.cpp | |
parent | 0b97ad838466ed44296a2c663b2dc034feb51f67 (diff) | |
download | minetest-1320d07068f25ff23ea27e120983c006f75bec24.tar.xz |
Scripting WIP: dynamic object stuff
Diffstat (limited to 'src/server.cpp')
-rw-r--r-- | src/server.cpp | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/src/server.cpp b/src/server.cpp index 330ce21c2..08a26adc6 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2299,10 +2299,23 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) return; //TODO: Check that object is reasonably close + + // Get ServerRemotePlayer + ServerRemotePlayer *srp = (ServerRemotePlayer*)player; + + // Update wielded item + srp->wieldItem(item_i); - // Left click, pick object up (usually) + // Left click, pick/punch if(button == 0) { + actionstream<<player->getName()<<" punches object " + <<obj->getId()<<std::endl; + + // Do stuff + obj->punch(srp); + +#if 0 /* Try creating inventory item */ @@ -2371,6 +2384,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) SendInventory(player->peer_id); } } +#endif } // Right click, do something with object if(button == 1) @@ -2378,18 +2392,16 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) actionstream<<player->getName()<<" right clicks object " <<obj->getId()<<std::endl; - // Track hp changes super-crappily - u16 oldhp = player->hp; - // Do stuff - obj->rightClick(player); - - // Send back stuff - if(player->hp != oldhp) - { - SendPlayerHP(player); - } + obj->rightClick(srp); } + + /* + Update player state to client + */ + SendPlayerHP(player); + UpdateCrafting(player->peer_id); + SendInventory(player->peer_id); } else if(command == TOSERVER_GROUND_ACTION) { |