X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fserverremoteplayer.cpp;h=667ece7f22c8b0ab85717115ed6ea8ac5bbcd631;hb=81385682c8c1da90f2366452b10e20a93c0865fb;hp=9dd4723fd527be0412ccb900533158cacc7bb105;hpb=0b21618a054fbfa9f4b5e99a5044f2b2dd1d642b;p=minetest.git diff --git a/src/serverremoteplayer.cpp b/src/serverremoteplayer.cpp index 9dd4723fd..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; + 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)