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)