Change 2D navigation region and link updates to an async process

Changes 2D navigation region and link updates to an async process.
This commit is contained in:
smix8
2025-06-11 00:40:36 +02:00
parent db57f282fa
commit 2458370de4
22 changed files with 1084 additions and 481 deletions

View File

@ -76,6 +76,8 @@ void NavigationServer2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("region_create"), &NavigationServer2D::region_create);
ClassDB::bind_method(D_METHOD("region_get_iteration_id", "region"), &NavigationServer2D::region_get_iteration_id);
ClassDB::bind_method(D_METHOD("region_set_use_async_iterations", "region", "enabled"), &NavigationServer2D::region_set_use_async_iterations);
ClassDB::bind_method(D_METHOD("region_get_use_async_iterations", "region"), &NavigationServer2D::region_get_use_async_iterations);
ClassDB::bind_method(D_METHOD("region_set_enabled", "region", "enabled"), &NavigationServer2D::region_set_enabled);
ClassDB::bind_method(D_METHOD("region_get_enabled", "region"), &NavigationServer2D::region_get_enabled);
ClassDB::bind_method(D_METHOD("region_set_use_edge_connections", "region", "enabled"), &NavigationServer2D::region_set_use_edge_connections);

View File

@ -102,6 +102,9 @@ public:
virtual RID region_create() = 0;
virtual uint32_t region_get_iteration_id(RID p_region) const = 0;
virtual void region_set_use_async_iterations(RID p_region, bool p_enabled) = 0;
virtual bool region_get_use_async_iterations(RID p_region) const = 0;
virtual void region_set_enabled(RID p_region, bool p_enabled) = 0;
virtual bool region_get_enabled(RID p_region) const = 0;

View File

@ -64,6 +64,8 @@ public:
RID region_create() override { return RID(); }
uint32_t region_get_iteration_id(RID p_region) const override { return 0; }
void region_set_use_async_iterations(RID p_region, bool p_enabled) override {}
bool region_get_use_async_iterations(RID p_region) const override { return false; }
void region_set_enabled(RID p_region, bool p_enabled) override {}
bool region_get_enabled(RID p_region) const override { return false; }
void region_set_use_edge_connections(RID p_region, bool p_enabled) override {}