diff options
author | Perttu Ahola <celeron55@gmail.com> | 2012-02-28 19:45:23 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-03-10 11:28:12 +0200 |
commit | 562ac3bce9fae076562bd2e92e7d330c296ac1b0 (patch) | |
tree | 4b9421f1fd0a22a69cfa6320cc30f41f0f68af8a /src/serverremoteplayer.cpp | |
parent | f21291211caaaa22ee5673adf46615dd46a36285 (diff) | |
download | minetest-562ac3bce9fae076562bd2e92e7d330c296ac1b0.tar.gz minetest-562ac3bce9fae076562bd2e92e7d330c296ac1b0.tar.bz2 minetest-562ac3bce9fae076562bd2e92e7d330c296ac1b0.zip |
Digging time groups WIP
Diffstat (limited to 'src/serverremoteplayer.cpp')
-rw-r--r-- | src/serverremoteplayer.cpp | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/src/serverremoteplayer.cpp b/src/serverremoteplayer.cpp index 728ffe026..8a81f1d2d 100644 --- a/src/serverremoteplayer.cpp +++ b/src/serverremoteplayer.cpp @@ -24,7 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "gamedef.h" #include "inventory.h" #include "environment.h" -#include "materials.h" +#include "tool.h" ServerRemotePlayer::ServerRemotePlayer(ServerEnvironment *env): Player(env->getGameDef()), @@ -181,35 +181,32 @@ void ServerRemotePlayer::punch(ServerActiveObject *puncher, return; } - // "Material" properties of a player - MaterialProperties mp; - mp.diggability = DIGGABLE_NORMAL; - mp.crackiness = -0.5; - mp.cuttability = 0.5; + // "Material" groups of the player + std::map<std::string, int> groups; + groups["snappy"] = 1; + groups["choppy"] = 2; IItemDefManager *idef = m_env->getGameDef()->idef(); ItemStack punchitem = puncher->getWieldedItem(); - ToolDiggingProperties tp = - punchitem.getToolDiggingProperties(idef); + ToolCapabilities tp = punchitem.getToolCapabilities(idef); - HittingProperties hitprop = getHittingProperties(&mp, &tp, - time_from_last_punch); + HitParams hitparams = getHitParams(groups, &tp, time_from_last_punch); actionstream<<"Player "<<getName()<<" punched by " - <<puncher->getDescription()<<", damage "<<hitprop.hp + <<puncher->getDescription()<<", damage "<<hitparams.hp <<" HP"<<std::endl; - setHP(getHP() - hitprop.hp); - punchitem.addWear(hitprop.wear, idef); + setHP(getHP() - hitparams.hp); + punchitem.addWear(hitparams.wear, idef); puncher->setWieldedItem(punchitem); - if(hitprop.hp != 0) + if(hitparams.hp != 0) { std::ostringstream os(std::ios::binary); // command (1 = punched) writeU8(os, 1); // damage - writeS16(os, hitprop.hp); + writeS16(os, hitparams.hp); // create message and add to list ActiveObjectMessage aom(getId(), false, os.str()); m_messages_out.push_back(aom); |