#ifndef NAV_ROOM_HPP #define NAV_ROOM_HPP #include #include namespace gd = godot; class NavMarker; class NavRoom : public gd::Node3D { GDCLASS(NavRoom, gd::Node3D); static void _bind_methods(); public: static NavRoom *get_closest_room(gd::Vector3 const &closest_to); virtual void _enter_tree() override; virtual void _exit_tree() override; virtual void on_child_entered(gd::Node *child); gd::Vector const &get_neighbours() const; gd::Vector const &get_markers() const; private: void set_editor_neighbours(gd::Array array); gd::Array get_editor_neighbours() const; private: float radius{1.f}; gd::Vector3 centre{0.f, 0.f, 0.f}; gd::Vector markers{}; gd::Vector neighbours{}; static gd::Vector rooms; }; #endif // !NAV_ROOM_HPP