(C++)  1.1.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
GrailStateSnapshotGenerator.h
1 #ifndef GRAIL_STATE_SNAPSHOT_GENERATOR_H
2 #define GRAIL_STATE_SNAPSHOT_GENERATOR_H
3 
4 #include "SnapshotGenerator.h"
5 #include "../../GrailData/DebugInfo/GrailStateSnapshot.h"
6 #include "../AIManager.hh"
7 
8 #include <set>
9 
10 namespace grail
11 {
12  class GrailStateSnapshotGenerator : public SnapshotGenerator<GrailStateSnapshot>
13  {
14  public:
16  ~GrailStateSnapshotGenerator() override = default;
17 
18  void AddNewTagToNextSnapshot(const std::string& tag);
19  virtual void Release() override;
20  protected:
21  bool TryProduceSnapshot(GrailStateSnapshot& outSnapshot) override;
22  void PassSnapshotToReceiver(IDebugSnapshotReceiver& receiver, GrailStateSnapshot& snapshot) override;
23 
24  private:
25  std::vector<EntityState> GetEntityStates() const;
26  std::vector<EntityGroupData> GetEntityGroupData() const;
27  std::vector<BlackboardState> GetSharedBlackboardStates() const;
28 
29  std::set<std::string> tagsForNextSnapshot{};
30  const AIManager& aiManager;
31  };
32 }
33 
34 #endif
The AIManager class - Manages registered entities and shared blackboards.
Definition: AIManager.hh:35
Definition: GrailStateSnapshotGenerator.h:13
Definition: IDebugSnapshotReceiver.h:7
Definition: SnapshotGenerator.h:15
Definition: GrailStateSnapshot.h:14