tunnel-strategy/src/global_world_state.hpp

32 lines
828 B
C++

#ifndef GOAP_GLOBAL_WORLD_STATE_HPP
#define GOAP_GLOBAL_WORLD_STATE_HPP
#include "action.hpp"
#include "tunnels_game_mode.hpp"
#include <godot_cpp/classes/node.hpp>
namespace godot::goap {
class GlobalWorldState : public Node {
GDCLASS(GlobalWorldState, Node);
static void _bind_methods();
public:
static bool has_singleton();
static GlobalWorldState *get_singleton();
virtual void _enter_tree() override;
virtual void _ready() override;
virtual void _exit_tree() override;
virtual void _process(double delta_time) override;
Vector3 get_player_position();
Variant get_world_property(StringName prop_key);
private:
WorldState global_state_cache{};
Ref<TunnelsGameMode> game_mode{};
static GlobalWorldState *singleton_instance;
};
}
#endif // !GOAP_GLOBAL_WORLD_STATE_HPP