![]() |
Divide Framework 0.1
A free and open-source 3D Framework under heavy development
|
#include <AITeam.h>
Public Types | |
using | CrowdPtr = std::unique_ptr< Navigation::DivideDtCrowd > |
using | AITeamCrowd = hashMap< AIEntity::PresetAgentRadius, CrowdPtr > |
using | MemberVariable = hashMap< AIEntity *, F32 > |
using | TeamMap = hashMap< I64, AIEntity * > |
using | OrderPtr = std::shared_ptr< Order > |
using | OrderList = vector< OrderPtr > |
Public Member Functions | |
AITeam (U32 id, AIManager &parentManager) | |
~AITeam () override | |
Navigation::DivideDtCrowd * | getCrowd (const AIEntity::PresetAgentRadius radius) const |
bool | addTeamMember (AIEntity *entity) |
bool | removeTeamMember (AIEntity *entity) |
bool | addEnemyTeam (U32 enemyTeamID) |
bool | removeEnemyTeam (U32 enemyTeamID) |
U32 | getEnemyTeamID (const U32 index) const |
const TeamMap & | getTeamMembers () const |
MemberVariable & | getMemberVariable () |
void | clearOrders () |
void | addOrder (const OrderPtr &order) |
void | removeOrder (const Order &order) |
const OrderList & | requestOrders () const |
PROPERTY_RW (U32, teamID, U32_MAX) | |
![]() | |
GUIDWrapper () noexcept | |
GUIDWrapper (const GUIDWrapper &old) noexcept | |
GUIDWrapper (GUIDWrapper &&old) noexcept | |
virtual | ~GUIDWrapper ()=default |
FORCE_INLINE I64 | getGUID () const noexcept |
GUIDWrapper & | operator= (const GUIDWrapper &old)=delete |
GUIDWrapper & | operator= (GUIDWrapper &&other)=delete |
Protected Member Functions | |
void | resetCrowd () |
Update the crowding system. | |
bool | processInput (TaskPool &parentPool, U64 deltaTimeUS) |
bool | processData (TaskPool &parentPool, U64 deltaTimeUS) |
bool | update (TaskPool &parentPool, U64 deltaTimeUS) |
void | addCrowd (AIEntity::PresetAgentRadius radius, Navigation::NavigationMesh *navMesh) |
void | removeCrowd (AIEntity::PresetAgentRadius radius) |
vector< AIEntity * > | getEntityList () const |
OrderList::iterator | findOrder (const Order &order) |
OrderList::iterator | findOrder (U32 orderID) |
vector< U32 >::iterator | findEnemyTeamEntry (U32 enemyTeamID) |
Protected Attributes | |
SharedMutex | _orderMutex |
![]() | |
const I64 | _guid |
Private Attributes | |
TeamMap | _team |
AIManager & | _parentManager |
MemberVariable | _memberVariable |
Container with data per team member. For example a map of distances. | |
AITeamCrowd | _aiTeamCrowd |
SharedMutex | _updateMutex |
SharedMutex | _crowdMutex |
vector< U32 > | _enemyTeams |
OrderList | _orders |
Friends | |
class | AIManager |
Additional Inherited Members | |
![]() | |
static I64 | generateGUID () noexcept |
using Divide::AI::AITeam::CrowdPtr = std::unique_ptr<Navigation::DivideDtCrowd> |
using Divide::AI::AITeam::MemberVariable = hashMap<AIEntity*, F32> |
using Divide::AI::AITeam::OrderList = vector<OrderPtr> |
using Divide::AI::AITeam::OrderPtr = std::shared_ptr<Order> |
Definition at line 15 of file AITeam.cpp.
|
override |
Definition at line 23 of file AITeam.cpp.
|
protected |
Definition at line 38 of file AITeam.cpp.
bool Divide::AI::AITeam::addEnemyTeam | ( | U32 | enemyTeamID | ) |
Definition at line 192 of file AITeam.cpp.
|
inline |
bool Divide::AI::AITeam::addTeamMember | ( | AIEntity * | entity | ) |
If entity already belongs to this team, no need to do anything
Definition at line 164 of file AITeam.cpp.
|
inlineprotected |
|
inlineprotected |
|
inline |
Definition at line 52 of file AITeam.cpp.
|
inline |
|
inline |
Definition at line 130 of file AITeam.cpp.
Definition at line 103 of file AITeam.cpp.
|
protected |
Definition at line 44 of file AITeam.cpp.
bool Divide::AI::AITeam::removeEnemyTeam | ( | U32 | enemyTeamID | ) |
Definition at line 201 of file AITeam.cpp.
|
inline |
bool Divide::AI::AITeam::removeTeamMember | ( | AIEntity * | entity | ) |
Definition at line 180 of file AITeam.cpp.
|
inline |
|
protected |
Update the crowding system.
Definition at line 157 of file AITeam.cpp.
Definition at line 65 of file AITeam.cpp.
|
private |
|
mutableprivate |
|
private |
|
mutableprotected |
|
mutableprivate |