1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-29 07:37:45 +00:00
sapphire/src/world/Task/RemoveBNpcTask.cpp

41 lines
870 B
C++

#include "RemoveBNpcTask.h"
#include <Logging/Logger.h>
#include <Actor/BNpc.h>
#include <Manager/TerritoryMgr.h>
#include <Service.h>
#include <Territory/Territory.h>
#include <utility>
using namespace Sapphire::World;
RemoveBNpcTask::RemoveBNpcTask( uint64_t delayTime, Entity::BNpcPtr bnpc ) :
Task( delayTime ),
m_pBNpc( std::move( bnpc ) )
{
}
void RemoveBNpcTask::onQueue()
{
Logger::debug( { __FUNCTION__ } );
}
void RemoveBNpcTask::execute()
{
auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref();
auto pZone = teriMgr.getTerritoryByGuId( m_pBNpc->getTerritoryId() );
if( !pZone )
return;
pZone->removeActor( m_pBNpc );
}
std::string RemoveBNpcTask::toString()
{
return fmt::format( "RemoveBNpcTask: BNpc#{}, TerritoryId#{}, ElapsedTimeMs: {}", m_pBNpc->getId(), m_pBNpc->getTerritoryId(), getDelayTimeMs() );
}