Merge pull request #79137 from smix8/region_bake_depr_4.x
Mark NavigationServer3D.region_bake_navigation_mesh() as deprecated
This commit is contained in:
commit
d676246647
6 changed files with 14 additions and 1 deletions
|
@ -696,12 +696,13 @@
|
|||
Queries a path in a given navigation map. Start and target position and other parameters are defined through [NavigationPathQueryParameters3D]. Updates the provided [NavigationPathQueryResult3D] result object with the path among other results requested by the query.
|
||||
</description>
|
||||
</method>
|
||||
<method name="region_bake_navigation_mesh">
|
||||
<method name="region_bake_navigation_mesh" is_deprecated="true">
|
||||
<return type="void" />
|
||||
<param index="0" name="navigation_mesh" type="NavigationMesh" />
|
||||
<param index="1" name="root_node" type="Node" />
|
||||
<description>
|
||||
Bakes the [param navigation_mesh] with bake source geometry collected starting from the [param root_node].
|
||||
[i]Deprecated.[/i] This function is deprecated due to core threading changes. To upgrade existing code, first create a [NavigationMeshSourceGeometryData3D] resource. Use this resource with [method parse_source_geometry_data] to parse the SceneTree for nodes that should contribute to the navigation mesh baking. The SceneTree parsing needs to happen on the main thread. After the parsing is finished use the resource with [method bake_from_source_geometry_data] to bake a navigation mesh.
|
||||
</description>
|
||||
</method>
|
||||
<method name="region_create">
|
||||
|
|
|
@ -446,10 +446,13 @@ COMMAND_2(region_set_navigation_mesh, RID, p_region, Ref<NavigationMesh>, p_navi
|
|||
region->set_mesh(p_navigation_mesh);
|
||||
}
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
void GodotNavigationServer::region_bake_navigation_mesh(Ref<NavigationMesh> p_navigation_mesh, Node *p_root_node) {
|
||||
ERR_FAIL_COND(p_navigation_mesh.is_null());
|
||||
ERR_FAIL_COND(p_root_node == nullptr);
|
||||
|
||||
WARN_PRINT_ONCE("NavigationServer3D::region_bake_navigation_mesh() is deprecated due to core threading changes. To upgrade existing code, first create a NavigationMeshSourceGeometryData3D resource. Use this resource with method parse_source_geometry_data() to parse the SceneTree for nodes that should contribute to the navigation mesh baking. The SceneTree parsing needs to happen on the main thread. After the parsing is finished use the resource with method bake_from_source_geometry_data() to bake a navigation mesh..");
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
NavigationMeshGenerator::get_singleton()->clear(p_navigation_mesh);
|
||||
Ref<NavigationMeshSourceGeometryData3D> source_geometry_data;
|
||||
|
@ -458,6 +461,7 @@ void GodotNavigationServer::region_bake_navigation_mesh(Ref<NavigationMesh> p_na
|
|||
NavigationMeshGenerator::get_singleton()->bake_from_source_geometry_data(p_navigation_mesh, source_geometry_data);
|
||||
#endif
|
||||
}
|
||||
#endif // DISABLE_DEPRECATED
|
||||
|
||||
int GodotNavigationServer::region_get_connections_count(RID p_region) const {
|
||||
NavRegion *region = region_owner.get_or_null(p_region);
|
||||
|
|
|
@ -154,7 +154,9 @@ public:
|
|||
virtual uint32_t region_get_navigation_layers(RID p_region) const override;
|
||||
COMMAND_2(region_set_transform, RID, p_region, Transform3D, p_transform);
|
||||
COMMAND_2(region_set_navigation_mesh, RID, p_region, Ref<NavigationMesh>, p_navigation_mesh);
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
virtual void region_bake_navigation_mesh(Ref<NavigationMesh> p_navigation_mesh, Node *p_root_node) override;
|
||||
#endif // DISABLE_DEPRECATED
|
||||
virtual int region_get_connections_count(RID p_region) const override;
|
||||
virtual Vector3 region_get_connection_pathway_start(RID p_region, int p_connection_id) const override;
|
||||
virtual Vector3 region_get_connection_pathway_end(RID p_region, int p_connection_id) const override;
|
||||
|
|
|
@ -82,7 +82,9 @@ void NavigationServer3D::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("region_get_navigation_layers", "region"), &NavigationServer3D::region_get_navigation_layers);
|
||||
ClassDB::bind_method(D_METHOD("region_set_transform", "region", "transform"), &NavigationServer3D::region_set_transform);
|
||||
ClassDB::bind_method(D_METHOD("region_set_navigation_mesh", "region", "navigation_mesh"), &NavigationServer3D::region_set_navigation_mesh);
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
ClassDB::bind_method(D_METHOD("region_bake_navigation_mesh", "navigation_mesh", "root_node"), &NavigationServer3D::region_bake_navigation_mesh);
|
||||
#endif // DISABLE_DEPRECATED
|
||||
ClassDB::bind_method(D_METHOD("region_get_connections_count", "region"), &NavigationServer3D::region_get_connections_count);
|
||||
ClassDB::bind_method(D_METHOD("region_get_connection_pathway_start", "region", "connection"), &NavigationServer3D::region_get_connection_pathway_start);
|
||||
ClassDB::bind_method(D_METHOD("region_get_connection_pathway_end", "region", "connection"), &NavigationServer3D::region_get_connection_pathway_end);
|
||||
|
|
|
@ -148,8 +148,10 @@ public:
|
|||
/// Set the navigation mesh of this region.
|
||||
virtual void region_set_navigation_mesh(RID p_region, Ref<NavigationMesh> p_navigation_mesh) = 0;
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
/// Bake the navigation mesh.
|
||||
virtual void region_bake_navigation_mesh(Ref<NavigationMesh> p_navigation_mesh, Node *p_root_node) = 0;
|
||||
#endif // DISABLE_DEPRECATED
|
||||
|
||||
/// Get a list of a region's connection to other regions.
|
||||
virtual int region_get_connections_count(RID p_region) const = 0;
|
||||
|
|
|
@ -79,7 +79,9 @@ public:
|
|||
uint32_t region_get_navigation_layers(RID p_region) const override { return 0; }
|
||||
void region_set_transform(RID p_region, Transform3D p_transform) override {}
|
||||
void region_set_navigation_mesh(RID p_region, Ref<NavigationMesh> p_navigation_mesh) override {}
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
void region_bake_navigation_mesh(Ref<NavigationMesh> p_navigation_mesh, Node *p_root_node) override {}
|
||||
#endif // DISABLE_DEPRECATED
|
||||
int region_get_connections_count(RID p_region) const override { return 0; }
|
||||
Vector3 region_get_connection_pathway_start(RID p_region, int p_connection_id) const override { return Vector3(); }
|
||||
Vector3 region_get_connection_pathway_end(RID p_region, int p_connection_id) const override { return Vector3(); }
|
||||
|
|
Loading…
Reference in a new issue