1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-27 06:47:45 +00:00
sapphire/src/servers/sapphire_zone/Actor/EventObject.h

52 lines
1.4 KiB
C++

#ifndef SAPPHIRE_INSTANCEOBJECT_H
#define SAPPHIRE_INSTANCEOBJECT_H
#include "Actor.h"
namespace Core
{
namespace Entity
{
class EventObject : public Actor
{
public:
EventObject( uint32_t actorId, uint32_t objectId, uint32_t mapLinkId, uint8_t initialState, Common::FFXIVARR_POSITION3 pos,
float rotation, const std::string& givenName = "none" );
using OnTalkEventHandler = std::function< void( Entity::Player&, Entity::EventObjectPtr, InstanceContentPtr, uint64_t ) >;
uint32_t getMapLinkId() const;
void setMapLinkId( uint32_t mapLinkId );
uint8_t getState() const;
void setState( uint8_t state );
float getScale() const;
void setScale( float scale );
void setOnTalkHandler( OnTalkEventHandler handler );
OnTalkEventHandler getOnTalkHandler() const;
uint32_t getObjectId() const;
const std::string& getName() const;
InstanceContentPtr getParentInstance() const;
void setParentInstance( InstanceContentPtr instance );
void spawn( PlayerPtr pTarget ) override;
void despawn( PlayerPtr pTarget ) override;
protected:
uint32_t m_mapLinkId;
uint32_t m_objectId;
uint8_t m_state;
float m_scale;
std::string m_name;
InstanceContentPtr m_parentInstance;
OnTalkEventHandler m_onTalkEventHandler;
};
}
}
#endif //SAPPHIRE_INSTANCEOBJECT_H