Grail (C++)  1.3.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
WorldObject.hh
1 // Copyright QED Software 2023.
2 
3 #ifndef GRAIL_WORLD_OBJECT_H
4 #define GRAIL_WORLD_OBJECT_H
5 
6 #include "WorldObjectType.hh"
7 
8 #include <map>
9 #include <set>
10 
11 namespace grail
12 {
13 namespace planner
14 {
16  {
17  public:
18  WorldObject(const WorldObjectType& type);
19  WorldObject(const WorldObject& other) = default;
20  WorldObject(WorldObject&& other) = default;
21  virtual ~WorldObject() override = default;
22 
23  bool IsOfType(unsigned int typeId) const;
24  bool IsOfType(const std::string& typeName) const;
25  void SetObjectIndex(unsigned int id);
26  unsigned int GetObjectIndex() const;
27 
32  std::string GetTypeName() const;
33  bool operator ==(const WorldObject& other) const;
34  WorldObject& operator =(const WorldObject&) = delete;
35  WorldObject& operator =(WorldObject&& other) = delete;
36 
37  private:
38  const WorldObjectType& type;
39  unsigned int objectIndex = 0;
40  };
41 }
42 }
43 
44 #endif //GRAIL_WORLD_OBJECT_H
grail::planner::WorldObject::GetTypeName
std::string GetTypeName() const
GetTypeName.
Definition: WorldObject.cpp:28
grail::planner::WorldObject
Definition: WorldObject.hh:15
grail::planner::WorldObjectType
A class representing planner WorldObject type - its name and inheritance structure.
Definition: WorldObjectType.hh:13
grail::planner::ParametrizedObject
Definition: ParametrizedObject.hh:27