Files

29 lines
1001 B
GDScript
Raw Permalink Normal View History

2026-09-12 11:01:37 +02:00
extends SceneTree
func _initialize() -> void:
call_deferred("run")
func run() -> void:
var arena := RelayArena.new()
root.add_child(arena)
var nav := NavigationMesh.new()
nav.cell_size = 0.2
nav.cell_height = 0.05
nav.agent_height = 1.8
nav.agent_radius = 0.4
nav.agent_max_climb = 0.25
nav.agent_max_slope = 46
nav.region_min_size = 2
nav.region_merge_size = 8
nav.edge_max_error = 1.0
nav.geometry_parsed_geometry_type = NavigationMesh.PARSED_GEOMETRY_STATIC_COLLIDERS
nav.geometry_collision_mask = 1
var source := NavigationMeshSourceGeometryData3D.new()
NavigationServer3D.parse_source_geometry_data(nav, source, arena)
NavigationServer3D.bake_from_source_geometry_data(nav, source)
DirAccess.make_dir_recursive_absolute("res://assets/navigation")
var error := ResourceSaver.save(nav, "res://assets/navigation/quarry.res")
print("QUARRY BAKE polygons=", nav.get_polygon_count(), " saved=", error)
arena.free()
quit(0 if nav.get_polygon_count() > 0 and error == OK else 1)