X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fserverremoteplayer.cpp;h=667ece7f22c8b0ab85717115ed6ea8ac5bbcd631;hb=54917e306256d4d39b95335986fce93b8c56a6e3;hp=8a81f1d2dd2519be19b7a62ff3f0ef95f816c148;hpb=562ac3bce9fae076562bd2e92e7d330c296ac1b0;p=minetest.git diff --git a/src/serverremoteplayer.cpp b/src/serverremoteplayer.cpp index 8a81f1d2d..667ece7f2 100644 --- a/src/serverremoteplayer.cpp +++ b/src/serverremoteplayer.cpp @@ -169,36 +169,32 @@ std::string ServerRemotePlayer::getStaticData() return ""; } -void ServerRemotePlayer::punch(ServerActiveObject *puncher, +int ServerRemotePlayer::punch(v3f dir, + const ToolCapabilities *toolcap, + ServerActiveObject *puncher, float time_from_last_punch) { - if(!puncher) - return; + if(!toolcap) + return 0; // No effect if PvP disabled if(g_settings->getBool("enable_pvp") == false){ if(puncher->getType() == ACTIVEOBJECT_TYPE_PLAYER) - return; + return 0; } // "Material" groups of the player - std::map groups; - groups["snappy"] = 1; + ItemGroupList groups; groups["choppy"] = 2; + groups["fleshy"] = 3; - IItemDefManager *idef = m_env->getGameDef()->idef(); - ItemStack punchitem = puncher->getWieldedItem(); - ToolCapabilities tp = punchitem.getToolCapabilities(idef); - - HitParams hitparams = getHitParams(groups, &tp, time_from_last_punch); + HitParams hitparams = getHitParams(groups, toolcap, time_from_last_punch); actionstream<<"Player "<getDescription()<<", damage "<setWieldedItem(punchitem); if(hitparams.hp != 0) { @@ -211,6 +207,8 @@ void ServerRemotePlayer::punch(ServerActiveObject *puncher, ActiveObjectMessage aom(getId(), false, os.str()); m_messages_out.push_back(aom); } + + return hitparams.wear; } void ServerRemotePlayer::rightClick(ServerActiveObject *clicker)