extends GridMap var postprocess_done: bool = false var postprocess_delay: float = 1.0 func _process(delta: float) -> void: if postprocess_delay > 0: postprocess_delay -= delta if postprocess_delay <= 0 and !postprocess_done: #bake_navigation = true if !NavigationServer3D.get_maps().is_empty(): postprocess_done = true var regions_deleted: int = 0 var map_rid: RID = NavigationServer3D.get_maps()[0] for cell in get_used_cells(): var nav_region_rid: RID = NavigationServer3D.map_get_closest_point_owner(map_rid, to_global(map_to_local(cell))) var upstairs_neighbour: Vector3 = cell + Vector3i(0,1,0) if get_cell_item(upstairs_neighbour) != INVALID_CELL_ITEM: DebugDraw3D.draw_box(to_global(map_to_local(cell)), Quaternion(), Vector3(2,1,2), Color.RED, true, 50) NavigationServer3D.region_set_enabled(nav_region_rid, false) regions_deleted += 1 NavigationServer3D.map_force_update(map_rid) print("Navmesh postprocess done; %d regions deleted." % regions_deleted)