diff options
| author | smix8 <52464204+smix8@users.noreply.github.com> | 2023-06-10 15:16:04 +0200 |
|---|---|---|
| committer | smix8 <52464204+smix8@users.noreply.github.com> | 2023-06-12 14:26:45 +0200 |
| commit | c1fc331b8865bd099df210fa434782bc9b60b2d8 (patch) | |
| tree | 37d40b4547240ab19bd0b4ba8e945ec99a55f508 /servers | |
| parent | 66423d440e53109627717edbada77856c514bb6f (diff) | |
| download | redot-engine-c1fc331b8865bd099df210fa434782bc9b60b2d8.tar.gz | |
Update navigation obstacle API
Updates navigation obstacle API.
Diffstat (limited to 'servers')
| -rw-r--r-- | servers/navigation_server_2d.cpp | 8 | ||||
| -rw-r--r-- | servers/navigation_server_2d.h | 4 | ||||
| -rw-r--r-- | servers/navigation_server_3d.cpp | 6 | ||||
| -rw-r--r-- | servers/navigation_server_3d.h | 6 | ||||
| -rw-r--r-- | servers/navigation_server_3d_dummy.h | 6 |
5 files changed, 30 insertions, 0 deletions
diff --git a/servers/navigation_server_2d.cpp b/servers/navigation_server_2d.cpp index c2dddb0627..4b3bb421d1 100644 --- a/servers/navigation_server_2d.cpp +++ b/servers/navigation_server_2d.cpp @@ -449,8 +449,12 @@ void NavigationServer2D::_bind_methods() { ClassDB::bind_method(D_METHOD("agent_set_avoidance_priority", "agent", "priority"), &NavigationServer2D::agent_set_avoidance_priority); ClassDB::bind_method(D_METHOD("obstacle_create"), &NavigationServer2D::obstacle_create); + ClassDB::bind_method(D_METHOD("obstacle_set_avoidance_enabled", "obstacle", "enabled"), &NavigationServer2D::obstacle_set_avoidance_enabled); + ClassDB::bind_method(D_METHOD("obstacle_get_avoidance_enabled", "obstacle"), &NavigationServer2D::obstacle_get_avoidance_enabled); ClassDB::bind_method(D_METHOD("obstacle_set_map", "obstacle", "map"), &NavigationServer2D::obstacle_set_map); ClassDB::bind_method(D_METHOD("obstacle_get_map", "obstacle"), &NavigationServer2D::obstacle_get_map); + ClassDB::bind_method(D_METHOD("obstacle_set_radius", "obstacle", "radius"), &NavigationServer2D::obstacle_set_radius); + ClassDB::bind_method(D_METHOD("obstacle_set_velocity", "obstacle", "velocity"), &NavigationServer2D::obstacle_set_velocity); ClassDB::bind_method(D_METHOD("obstacle_set_position", "obstacle", "position"), &NavigationServer2D::obstacle_set_position); ClassDB::bind_method(D_METHOD("obstacle_set_vertices", "obstacle", "vertices"), &NavigationServer2D::obstacle_set_vertices); ClassDB::bind_method(D_METHOD("obstacle_set_avoidance_layers", "obstacle", "layers"), &NavigationServer2D::obstacle_set_avoidance_layers); @@ -602,8 +606,12 @@ RID NavigationServer2D::obstacle_create() { RID obstacle = NavigationServer3D::get_singleton()->obstacle_create(); return obstacle; } +void FORWARD_2(obstacle_set_avoidance_enabled, RID, p_obstacle, bool, p_enabled, rid_to_rid, bool_to_bool); +bool FORWARD_1_C(obstacle_get_avoidance_enabled, RID, p_obstacle, rid_to_rid); void FORWARD_2(obstacle_set_map, RID, p_obstacle, RID, p_map, rid_to_rid, rid_to_rid); RID FORWARD_1_C(obstacle_get_map, RID, p_obstacle, rid_to_rid); +void FORWARD_2(obstacle_set_radius, RID, p_obstacle, real_t, p_radius, rid_to_rid, real_to_real); +void FORWARD_2(obstacle_set_velocity, RID, p_obstacle, Vector2, p_velocity, rid_to_rid, v2_to_v3); void FORWARD_2(obstacle_set_position, RID, p_obstacle, Vector2, p_position, rid_to_rid, v2_to_v3); void FORWARD_2(obstacle_set_avoidance_layers, RID, p_obstacle, uint32_t, p_layers, rid_to_rid, uint32_to_uint32); diff --git a/servers/navigation_server_2d.h b/servers/navigation_server_2d.h index 88246019b9..36c964e2ea 100644 --- a/servers/navigation_server_2d.h +++ b/servers/navigation_server_2d.h @@ -240,8 +240,12 @@ public: /// Creates the obstacle. virtual RID obstacle_create(); + virtual void obstacle_set_avoidance_enabled(RID p_obstacle, bool p_enabled); + virtual bool obstacle_get_avoidance_enabled(RID p_obstacle) const; virtual void obstacle_set_map(RID p_obstacle, RID p_map); virtual RID obstacle_get_map(RID p_obstacle) const; + virtual void obstacle_set_radius(RID p_obstacle, real_t p_radius); + virtual void obstacle_set_velocity(RID p_obstacle, Vector2 p_velocity); virtual void obstacle_set_position(RID p_obstacle, Vector2 p_position); virtual void obstacle_set_vertices(RID p_obstacle, const Vector<Vector2> &p_vertices); virtual void obstacle_set_avoidance_layers(RID p_obstacle, uint32_t p_layers); diff --git a/servers/navigation_server_3d.cpp b/servers/navigation_server_3d.cpp index 7888a28b7b..f9f8797b76 100644 --- a/servers/navigation_server_3d.cpp +++ b/servers/navigation_server_3d.cpp @@ -128,9 +128,15 @@ void NavigationServer3D::_bind_methods() { ClassDB::bind_method(D_METHOD("agent_set_avoidance_priority", "agent", "priority"), &NavigationServer3D::agent_set_avoidance_priority); ClassDB::bind_method(D_METHOD("obstacle_create"), &NavigationServer3D::obstacle_create); + ClassDB::bind_method(D_METHOD("obstacle_set_avoidance_enabled", "obstacle", "enabled"), &NavigationServer3D::obstacle_set_avoidance_enabled); + ClassDB::bind_method(D_METHOD("obstacle_get_avoidance_enabled", "obstacle"), &NavigationServer3D::obstacle_get_avoidance_enabled); + ClassDB::bind_method(D_METHOD("obstacle_set_use_3d_avoidance", "obstacle", "enabled"), &NavigationServer3D::obstacle_set_use_3d_avoidance); + ClassDB::bind_method(D_METHOD("obstacle_get_use_3d_avoidance", "obstacle"), &NavigationServer3D::obstacle_get_use_3d_avoidance); ClassDB::bind_method(D_METHOD("obstacle_set_map", "obstacle", "map"), &NavigationServer3D::obstacle_set_map); ClassDB::bind_method(D_METHOD("obstacle_get_map", "obstacle"), &NavigationServer3D::obstacle_get_map); + ClassDB::bind_method(D_METHOD("obstacle_set_radius", "obstacle", "radius"), &NavigationServer3D::obstacle_set_radius); ClassDB::bind_method(D_METHOD("obstacle_set_height", "obstacle", "height"), &NavigationServer3D::obstacle_set_height); + ClassDB::bind_method(D_METHOD("obstacle_set_velocity", "obstacle", "velocity"), &NavigationServer3D::obstacle_set_velocity); ClassDB::bind_method(D_METHOD("obstacle_set_position", "obstacle", "position"), &NavigationServer3D::obstacle_set_position); ClassDB::bind_method(D_METHOD("obstacle_set_vertices", "obstacle", "vertices"), &NavigationServer3D::obstacle_set_vertices); ClassDB::bind_method(D_METHOD("obstacle_set_avoidance_layers", "obstacle", "layers"), &NavigationServer3D::obstacle_set_avoidance_layers); diff --git a/servers/navigation_server_3d.h b/servers/navigation_server_3d.h index 73698581e9..23c38532e8 100644 --- a/servers/navigation_server_3d.h +++ b/servers/navigation_server_3d.h @@ -260,7 +260,13 @@ public: virtual RID obstacle_create() = 0; virtual void obstacle_set_map(RID p_obstacle, RID p_map) = 0; virtual RID obstacle_get_map(RID p_obstacle) const = 0; + virtual void obstacle_set_avoidance_enabled(RID p_obstacle, bool p_enabled) = 0; + virtual bool obstacle_get_avoidance_enabled(RID p_obstacle) const = 0; + virtual void obstacle_set_use_3d_avoidance(RID p_obstacle, bool p_enabled) = 0; + virtual bool obstacle_get_use_3d_avoidance(RID p_obstacle) const = 0; + virtual void obstacle_set_radius(RID p_obstacle, real_t p_radius) = 0; virtual void obstacle_set_height(RID p_obstacle, real_t p_height) = 0; + virtual void obstacle_set_velocity(RID p_obstacle, Vector3 p_velocity) = 0; virtual void obstacle_set_position(RID p_obstacle, Vector3 p_position) = 0; virtual void obstacle_set_vertices(RID p_obstacle, const Vector<Vector3> &p_vertices) = 0; virtual void obstacle_set_avoidance_layers(RID p_obstacle, uint32_t p_layers) = 0; diff --git a/servers/navigation_server_3d_dummy.h b/servers/navigation_server_3d_dummy.h index 98dc38990e..23fd8291db 100644 --- a/servers/navigation_server_3d_dummy.h +++ b/servers/navigation_server_3d_dummy.h @@ -123,7 +123,13 @@ public: RID obstacle_create() override { return RID(); } void obstacle_set_map(RID p_obstacle, RID p_map) override {} RID obstacle_get_map(RID p_obstacle) const override { return RID(); } + void obstacle_set_avoidance_enabled(RID p_obstacle, bool p_enabled) override {} + bool obstacle_get_avoidance_enabled(RID p_obstacle) const override { return false; } + void obstacle_set_use_3d_avoidance(RID p_obstacle, bool p_enabled) override {} + bool obstacle_get_use_3d_avoidance(RID p_obstacle) const override { return false; } + void obstacle_set_radius(RID p_obstacle, real_t p_radius) override {} void obstacle_set_height(RID p_obstacle, real_t p_height) override {} + void obstacle_set_velocity(RID p_obstacle, Vector3 p_velocity) override {} void obstacle_set_position(RID p_obstacle, Vector3 p_position) override {} void obstacle_set_vertices(RID p_obstacle, const Vector<Vector3> &p_vertices) override {} void obstacle_set_avoidance_layers(RID p_obstacle, uint32_t p_layers) override {} |
