From e9cdb938fe44282e09fb88628a6e86e5e7279c69 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sun, 4 Mar 2012 21:08:03 +0200 Subject: Entity damage system WIP; Remove C++ mobs --- src/server.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/server.cpp') diff --git a/src/server.cpp b/src/server.cpp index 443a2a39b..899624633 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -47,6 +47,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "mods.h" #include "sha1.h" #include "base64.h" +#include "tool.h" #define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")" @@ -1244,7 +1245,7 @@ void Server::AsyncRunStep() explosion. */ player->m_last_good_position_age += dtime; - if(player->m_last_good_position_age >= 2.0){ + if(player->m_last_good_position_age >= 1.0){ float age = player->m_last_good_position_age; v3f diff = (player->getPosition() - player->m_last_good_position); float d_vert = diff.Y; @@ -2870,7 +2871,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) if(action == 0 || action == 2 || action == 3) { float d = player_pos.getDistanceFrom(pointed_pos_under); - float max_d = BS * 10; // Just some large enough value + float max_d = BS * 14; // Just some large enough value if(d > max_d){ actionstream<<"Player "<getName() <<" tried to access "<getName()<<" punches object " <punch(srp, srp->m_time_from_last_punch); + ItemStack punchitem = srp->getWieldedItem(); + ToolCapabilities toolcap = + punchitem.getToolCapabilities(m_itemdef); + v3f dir = (pointed_object->getBasePosition() - + (srp->getPosition() + srp->getEyeOffset()) + ).normalize(); + pointed_object->punch(dir, &toolcap, srp, + srp->m_time_from_last_punch); srp->m_time_from_last_punch = 0; } -- cgit v1.2.3