metro-rts/src/goap/actor_world_state.hpp

25 lines
699 B
C++

#ifndef GOAP_ACTOR_WORLD_STATE_HPP
#define GOAP_ACTOR_WORLD_STATE_HPP
#include <godot_cpp/classes/node.hpp>
#include <godot_cpp/templates/hash_map.hpp>
#include <godot_cpp/templates/pair.hpp>
#include <godot_cpp/variant/string_name.hpp>
namespace gd = godot;
namespace goap {
typedef gd::HashMap<gd::StringName, gd::Variant> WorldState;
typedef gd::KeyValue<gd::StringName, gd::Variant> WorldProperty;
class ActorWorldState : public gd::Node {
GDCLASS(ActorWorldState, gd::Node);
static void _bind_methods();
public:
bool check_property_match(WorldProperty const &property);
gd::Variant get_world_property(gd::String world_prop_name);
};
}
#endif // !GOAP_ACTOR_WORLD_STATE_HPP