summaryrefslogtreecommitdiff
path: root/src/player.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-12-01 18:23:58 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-12-01 18:23:58 +0200
commitee0d3bacbce612c1abc6016cb7b0d684df25b820 (patch)
treec11c0960cd3a70a795d089c0d2cf3592d4c68fb7 /src/player.cpp
parent9dcfa882b13cdbe38b66fc1b61643da74f112342 (diff)
downloadminetest-ee0d3bacbce612c1abc6016cb7b0d684df25b820.tar.gz
minetest-ee0d3bacbce612c1abc6016cb7b0d684df25b820.tar.bz2
minetest-ee0d3bacbce612c1abc6016cb7b0d684df25b820.zip
Player-is-SAO WIP
Diffstat (limited to 'src/player.cpp')
-rw-r--r--src/player.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/player.cpp b/src/player.cpp
index f26dcba26..937ca9a3f 100644
--- a/src/player.cpp
+++ b/src/player.cpp
@@ -30,6 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "nodedef.h"
#include "environment.h"
#include "gamedef.h"
+#include "content_sao.h"
Player::Player(IGameDef *gamedef):
touching_ground(false),
@@ -186,7 +187,8 @@ ServerRemotePlayer::ServerRemotePlayer(ServerEnvironment *env):
m_last_good_position_age(0),
m_additional_items(),
m_inventory_not_sent(false),
- m_hp_not_sent(false)
+ m_hp_not_sent(false),
+ m_sao(NULL)
{
}
ServerRemotePlayer::ServerRemotePlayer(ServerEnvironment *env, v3f pos_, u16 peer_id_,
@@ -194,7 +196,8 @@ ServerRemotePlayer::ServerRemotePlayer(ServerEnvironment *env, v3f pos_, u16 pee
Player(env->getGameDef()),
ServerActiveObject(env, pos_),
m_inventory_not_sent(false),
- m_hp_not_sent(false)
+ m_hp_not_sent(false),
+ m_sao(NULL)
{
setPosition(pos_);
peer_id = peer_id_;
@@ -203,6 +206,28 @@ ServerRemotePlayer::ServerRemotePlayer(ServerEnvironment *env, v3f pos_, u16 pee
ServerRemotePlayer::~ServerRemotePlayer()
{
clearAddToInventoryLater();
+ if(m_sao)
+ m_sao->setPlayer(NULL);
+}
+
+void ServerRemotePlayer::setPosition(const v3f &position)
+{
+ Player::setPosition(position);
+ ServerActiveObject::setBasePosition(position);
+ if(m_sao)
+ m_sao->positionUpdated();
+}
+
+void ServerRemotePlayer::setSAO(PlayerSAO *sao)
+{
+ infostream<<"ServerRemotePlayer \""<<getName()
+ <<"\" got sao="<<sao<<std::endl;
+ m_sao = sao;
+}
+
+PlayerSAO* ServerRemotePlayer::getSAO()
+{
+ return m_sao;
}
/* ServerActiveObject interface */
@@ -329,6 +354,7 @@ s16 ServerRemotePlayer::getHP()
#ifndef SERVER
+#if 0
RemotePlayer::RemotePlayer(
IGameDef *gamedef,
scene::ISceneNode* parent,
@@ -441,6 +467,7 @@ void RemotePlayer::move(f32 dtime, Map &map, f32 pos_max_d)
ISceneNode::setPosition(m_showpos);
}
+#endif
#endif