1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-27 22:57:45 +00:00
sapphire/src/servers/sapphire_zone/Zone/InstanceContent.h

65 lines
1.9 KiB
C
Raw Normal View History

#ifndef SAPPHIRE_INSTANCECONTENT_H
#define SAPPHIRE_INSTANCECONTENT_H
#include "Zone.h"
#include "Event/Director.h"
#include "Forwards.h"
#include <common/Exd/ExdDataGenerated.h>
namespace Core
{
class InstanceContent : public Event::Director, public Zone
{
public:
2018-01-28 22:36:43 +01:00
enum InstanceContentState
{
Created,
DutyReset,
DutyInProgress,
2018-01-28 22:36:43 +01:00
DutyFinished
};
InstanceContent( boost::shared_ptr< Core::Data::InstanceContent > pInstanceContent,
uint32_t guId,
const std::string& internalName,
2018-01-29 19:41:41 +01:00
const std::string& contentName,
uint32_t instanceContentId );
virtual ~InstanceContent();
bool init() override;
void onBeforeEnterTerritory( Entity::Player& player ) override;
void onEnterTerritory( Entity::Player& player ) override;
void onLeaveTerritory( Entity::Player& player ) override;
void onFinishLoading( Entity::Player& player ) override;
void onInitDirector( Entity::Player& player ) override;
void onUpdate( uint32_t currTime ) override;
void onTalk( Entity::Player& player, uint32_t eventId, uint64_t actorId );
void onRegisterEObj( Entity::EventObjectPtr object ) override;
void setVar( uint8_t index, uint8_t value );
Core::Data::ExdDataGenerated::InstanceContentPtr getInstanceContentInfo() const;
2018-01-29 19:41:41 +01:00
uint32_t getInstanceContentId() const;
2018-01-29 20:40:32 +11:00
Entity::EventObjectPtr getEObjByName( const std::string& name );
private:
2018-01-28 13:52:53 +01:00
Event::DirectorPtr m_pDirector;
Core::Data::ExdDataGenerated::InstanceContentPtr m_instanceContentInfo;
2018-01-29 20:40:32 +11:00
uint32_t m_instanceContentId;
2018-01-29 19:41:41 +01:00
InstanceContentState m_state;
int64_t m_instanceExpireTime;
Entity::EventObjectPtr m_pEntranceEObj;
std::map< std::string, Entity::EventObjectPtr > m_eventObjectMap;
std::unordered_map< uint32_t, Entity::EventObjectPtr > m_eventIdToObjectMap;
};
}
#endif //SAPPHIRE_INSTANCECONTENT_H