mirror of
https://github.com/moparisthebest/minetest
synced 2024-11-15 05:45:13 -05:00
Ignore punches with no damage in the actionstream
This commit is contained in:
parent
ecdfbfc8dc
commit
bb5f830d16
@ -419,19 +419,19 @@ int LuaEntitySAO::punch(v3f dir,
|
|||||||
ServerActiveObject *puncher,
|
ServerActiveObject *puncher,
|
||||||
float time_from_last_punch)
|
float time_from_last_punch)
|
||||||
{
|
{
|
||||||
if(!m_registered){
|
if (!m_registered){
|
||||||
// Delete unknown LuaEntities when punched
|
// Delete unknown LuaEntities when punched
|
||||||
m_removed = true;
|
m_removed = true;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// It's best that attachments cannot be punched
|
// It's best that attachments cannot be punched
|
||||||
if(isAttached())
|
if (isAttached())
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ItemStack *punchitem = NULL;
|
ItemStack *punchitem = NULL;
|
||||||
ItemStack punchitem_static;
|
ItemStack punchitem_static;
|
||||||
if(puncher){
|
if (puncher) {
|
||||||
punchitem_static = puncher->getWieldedItem();
|
punchitem_static = puncher->getWieldedItem();
|
||||||
punchitem = &punchitem_static;
|
punchitem = &punchitem_static;
|
||||||
}
|
}
|
||||||
@ -442,30 +442,25 @@ int LuaEntitySAO::punch(v3f dir,
|
|||||||
punchitem,
|
punchitem,
|
||||||
time_from_last_punch);
|
time_from_last_punch);
|
||||||
|
|
||||||
if(result.did_punch)
|
if (result.did_punch) {
|
||||||
{
|
|
||||||
setHP(getHP() - result.damage);
|
setHP(getHP() - result.damage);
|
||||||
|
|
||||||
|
if (result.damage > 0) {
|
||||||
|
std::string punchername = puncher ? puncher->getDescription() : "nil";
|
||||||
|
|
||||||
std::string punchername = "nil";
|
actionstream << getDescription() << " punched by "
|
||||||
|
<< punchername << ", damage " << result.damage
|
||||||
|
<< " hp, health now " << getHP() << " hp" << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
if ( puncher != 0 )
|
|
||||||
punchername = puncher->getDescription();
|
|
||||||
|
|
||||||
actionstream<<getDescription()<<" punched by "
|
|
||||||
<<punchername<<", damage "<<result.damage
|
|
||||||
<<" hp, health now "<<getHP()<<" hp"<<std::endl;
|
|
||||||
|
|
||||||
{
|
|
||||||
std::string str = gob_cmd_punched(result.damage, getHP());
|
std::string str = gob_cmd_punched(result.damage, getHP());
|
||||||
// create message and add to list
|
// create message and add to list
|
||||||
ActiveObjectMessage aom(getId(), true, str);
|
ActiveObjectMessage aom(getId(), true, str);
|
||||||
m_messages_out.push(aom);
|
m_messages_out.push(aom);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(getHP() == 0)
|
if (getHP() == 0)
|
||||||
m_removed = true;
|
m_removed = true;
|
||||||
}
|
|
||||||
|
|
||||||
m_env->getScriptIface()->luaentity_Punch(m_id, puncher,
|
m_env->getScriptIface()->luaentity_Punch(m_id, puncher,
|
||||||
time_from_last_punch, toolcap, dir);
|
time_from_last_punch, toolcap, dir);
|
||||||
@ -475,10 +470,10 @@ int LuaEntitySAO::punch(v3f dir,
|
|||||||
|
|
||||||
void LuaEntitySAO::rightClick(ServerActiveObject *clicker)
|
void LuaEntitySAO::rightClick(ServerActiveObject *clicker)
|
||||||
{
|
{
|
||||||
if(!m_registered)
|
if (!m_registered)
|
||||||
return;
|
return;
|
||||||
// It's best that attachments cannot be clicked
|
// It's best that attachments cannot be clicked
|
||||||
if(isAttached())
|
if (isAttached())
|
||||||
return;
|
return;
|
||||||
m_env->getScriptIface()->luaentity_Rightclick(m_id, clicker);
|
m_env->getScriptIface()->luaentity_Rightclick(m_id, clicker);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user