Horizon Official Technical Documentation
GridMonsterActiveAIExecutor Struct Reference

#include <GridNotifiers.hpp>

Public Member Functions

 GridMonsterActiveAIExecutor (const std::shared_ptr< Horizon::Zone::Units::Player > &player)
 
template<class T >
void perform (GridRefManager< T > &m)
 
void Visit (GridRefManager< unit_ns(Monster)> &m)
 
template<class NOT_INTERESTED >
void Visit (GridRefManager< NOT_INTERESTED > &)
 
template<>
void Visit (GridRefManager< Player > &m)
 
template<>
void Visit (GridRefManager< NPC > &m)
 
template<>
void Visit (GridRefManager< Elemental > &m)
 
template<>
void Visit (GridRefManager< Homunculus > &m)
 
template<>
void Visit (GridRefManager< Mercenary > &m)
 
template<>
void Visit (GridRefManager< Pet > &m)
 
template<>
void Visit (GridRefManager< Skill > &m)
 
template<>
void Visit (GridRefManager< Item > &m)
 

Public Attributes

std::weak_ptr< Horizon::Zone::Units::Player_player
 

Constructor & Destructor Documentation

◆ GridMonsterActiveAIExecutor()

GridMonsterActiveAIExecutor::GridMonsterActiveAIExecutor ( const std::shared_ptr< Horizon::Zone::Units::Player > &  player)
inlineexplicit
149 : _player(player)
150 { }
std::weak_ptr< Horizon::Zone::Units::Player > _player
Definition: GridNotifiers.hpp:146

Member Function Documentation

◆ perform()

template<class T >
void GridMonsterActiveAIExecutor::perform ( GridRefManager< T > &  m)
287{
288 if (_player.expired())
289 return;
290
291 using namespace Horizon::Zone;
292 for (typename GridRefManager<T>::iterator iter = m.begin(); iter != typename GridRefManager<T>::iterator(nullptr); ++iter) {
293 if (iter->source() == nullptr)
294 continue;
295
296 std::shared_ptr<Monster> monster = iter->source()->template downcast<Monster>();
297
298 if (monster == nullptr)
299 continue;
300
301 monster->behavior_active(_player.lock());
302 }
303}
Forward declaration of GridRefManager, the class that manages GridReference.
Definition: GridRefManager.hpp:41
iterator begin()
Definition: GridRefManager.hpp:54
Definition: NPCDefinitions.hpp:54

References _player, and GridRefManager< OBJECT >::begin().

+ Here is the call graph for this function:

◆ Visit() [1/10]

template<>
void GridMonsterActiveAIExecutor::Visit ( GridRefManager< Elemental > &  m)

◆ Visit() [2/10]

template<>
void GridMonsterActiveAIExecutor::Visit ( GridRefManager< Homunculus > &  m)

◆ Visit() [3/10]

template<>
void GridMonsterActiveAIExecutor::Visit ( GridRefManager< Item > &  m)

◆ Visit() [4/10]

template<>
void GridMonsterActiveAIExecutor::Visit ( GridRefManager< Mercenary > &  m)

◆ Visit() [5/10]

template<class NOT_INTERESTED >
void GridMonsterActiveAIExecutor::Visit ( GridRefManager< NOT_INTERESTED > &  )
inline
158{ }

◆ Visit() [6/10]

template<>
void GridMonsterActiveAIExecutor::Visit ( GridRefManager< NPC > &  m)

◆ Visit() [7/10]

template<>
void GridMonsterActiveAIExecutor::Visit ( GridRefManager< Pet > &  m)

◆ Visit() [8/10]

template<>
void GridMonsterActiveAIExecutor::Visit ( GridRefManager< Player > &  m)

◆ Visit() [9/10]

template<>
void GridMonsterActiveAIExecutor::Visit ( GridRefManager< Skill > &  m)

◆ Visit() [10/10]

void GridMonsterActiveAIExecutor::Visit ( GridRefManager< unit_ns(Monster)> &  m)

Member Data Documentation

◆ _player

std::weak_ptr<Horizon::Zone::Units::Player> GridMonsterActiveAIExecutor::_player

Referenced by perform().


The documentation for this struct was generated from the following files: