1 #ifndef GRAIL_ENTITY_GROUP_H
2 #define GRAIL_ENTITY_GROUP_H
5 #include "Blackboard.hh"
15 std::shared_ptr<AIEntity> entity;
18 EntityEntry(
const std::shared_ptr<AIEntity>& entity,
int relativePriority);
25 EntityGroup(
const std::string& name,
const std::vector<EntityEntry>& entityEntries);
27 const std::string& GetName()
const;
29 void SetId(
size_t id);
32 void AddEntityEntry(
const std::shared_ptr<AIEntity>& entity,
int relativePriority);
33 void RemoveEntityEntry(
const AIEntity& entity);
34 void AddGroupBlackboard(
const std::string& name,
const std::shared_ptr<Blackboard>& blackboard);
35 void AddGlobalBlackboardMapping(std::shared_ptr<AIEntity> entity,
36 const std::vector<std::string>& blackboardNames);
38 const std::vector<EntityEntry>& GetEntityEntries()
const;
39 const std::vector<std::pair<std::string, std::shared_ptr<Blackboard>>>& GetGroupBlackboards()
const;
40 const std::vector<std::pair<std::shared_ptr<AIEntity>, std::vector<std::string>>>&
41 GetGlobalBlackboardMapping()
const;
44 size_t id = std::numeric_limits<size_t>::max();
45 std::vector<EntityEntry> entityEntries{};
46 std::vector<std::pair<std::string, std::shared_ptr<Blackboard>>> groupBlackboards{};
47 std::vector<std::pair<std::shared_ptr<AIEntity>, std::vector<std::string>>> globalBlackboardMapping{};