metro-rts/src/goap/goal.hpp

27 lines
678 B
C++

#ifndef GOAP_GOAL_HPP
#define GOAP_GOAL_HPP
#include "actor_world_state.hpp"
#include <godot_cpp/classes/resource.hpp>
namespace gd = godot;
namespace goap {
class Goal : public gd::Resource {
GDCLASS(Goal, gd::Resource);
static void _bind_methods();
public:
void set_requirements_dict(gd::Dictionary dict);
gd::Dictionary get_requirements_dict() const;
void set_desired_state_dict(gd::Dictionary dict);
gd::Dictionary get_desired_state_dict() const;
public:
//! Do not select this goal unless all requirements are met.
WorldState requirements;
//! The state to find a path to.
WorldState desired_state;
};
}
#endif // !GOAP_GOAL_HPP