2017-11-21 03:19:08 -02:00
|
|
|
#include "Actor.h"
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2018-02-20 22:46:44 +01:00
|
|
|
#include "Player.h"
|
|
|
|
#include "Chara.h"
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2018-02-10 01:21:31 +01:00
|
|
|
Core::Entity::Actor::Actor( ObjKind type ) :
|
2018-02-20 22:46:44 +01:00
|
|
|
m_objKind( type )
|
2017-08-08 13:53:47 +02:00
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2018-02-20 22:46:44 +01:00
|
|
|
uint32_t Core::Entity::Actor::getId() const
|
2017-08-08 13:53:47 +02:00
|
|
|
{
|
2018-02-20 22:46:44 +01:00
|
|
|
return m_id;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
2018-02-20 22:46:44 +01:00
|
|
|
Core::Entity::Actor::ObjKind Core::Entity::Actor::getObjKind() const
|
2017-08-08 13:53:47 +02:00
|
|
|
{
|
2018-02-20 22:46:44 +01:00
|
|
|
return m_objKind;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
2018-02-20 22:46:44 +01:00
|
|
|
Core::Common::FFXIVARR_POSITION3& Core::Entity::Actor::getPos()
|
2017-08-08 13:53:47 +02:00
|
|
|
{
|
2018-02-20 22:46:44 +01:00
|
|
|
return m_pos;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
2018-02-20 22:46:44 +01:00
|
|
|
void Core::Entity::Actor::setPos( float x, float y, float z )
|
2017-08-08 13:53:47 +02:00
|
|
|
{
|
|
|
|
m_pos.x = x;
|
|
|
|
m_pos.y = y;
|
|
|
|
m_pos.z = z;
|
|
|
|
}
|
|
|
|
|
2018-02-20 22:46:44 +01:00
|
|
|
void Core::Entity::Actor::setPos( const Core::Common::FFXIVARR_POSITION3& pos )
|
2017-08-08 13:53:47 +02:00
|
|
|
{
|
2018-02-20 22:46:44 +01:00
|
|
|
m_pos = pos;
|
2017-08-15 15:48:52 +02:00
|
|
|
}
|
|
|
|
|
2018-02-20 22:46:44 +01:00
|
|
|
float Core::Entity::Actor::getRot() const
|
2017-09-04 01:36:19 -03:00
|
|
|
{
|
2017-12-05 11:21:56 +01:00
|
|
|
return m_rot;
|
2017-09-06 20:25:58 +02:00
|
|
|
}
|
|
|
|
|
2018-02-20 22:46:44 +01:00
|
|
|
void Core::Entity::Actor::setRot( float rot )
|
2017-09-06 20:25:58 +02:00
|
|
|
{
|
2017-12-05 11:21:56 +01:00
|
|
|
m_rot = rot;
|
2017-12-03 18:11:56 +01:00
|
|
|
}
|
|
|
|
|
2018-02-20 22:46:44 +01:00
|
|
|
bool Core::Entity::Actor::isPlayer() const
|
2017-12-03 18:11:56 +01:00
|
|
|
{
|
2018-02-20 22:46:44 +01:00
|
|
|
return m_objKind == ObjKind::Player;
|
2017-12-05 11:21:56 +01:00
|
|
|
}
|
|
|
|
|
2018-02-20 22:46:44 +01:00
|
|
|
/*! \return pointer to this instance as ActorPtr */
|
|
|
|
Core::Entity::CharaPtr Core::Entity::Actor::getAsChara()
|
2017-12-05 11:21:56 +01:00
|
|
|
{
|
2018-02-20 22:46:44 +01:00
|
|
|
return boost::dynamic_pointer_cast< Entity::Chara, Entity::Actor >( shared_from_this() );
|
2017-12-05 11:21:56 +01:00
|
|
|
}
|
|
|
|
|
2018-02-20 22:46:44 +01:00
|
|
|
/*! \return pointer to this instance as PlayerPtr */
|
|
|
|
Core::Entity::PlayerPtr Core::Entity::Actor::getAsPlayer()
|
2017-12-05 11:21:56 +01:00
|
|
|
{
|
2018-02-20 22:46:44 +01:00
|
|
|
if( !isPlayer() )
|
|
|
|
return nullptr;
|
|
|
|
return boost::dynamic_pointer_cast< Entity::Player, Entity::Actor >( shared_from_this() );
|
2017-12-05 11:21:56 +01:00
|
|
|
}
|
|
|
|
|