class_name TerrainGeneration extends Node var mesh : MeshInstance3D var size_depth : int = 100 var size_width : int = 100 var mesh_res : int = 2 # Called when the node enters the scene tree for the first time. func _ready(): generate() func generate(): var plane_mesh = PlaneMesh.new() plane_mesh.size = Vector2(size_width, size_depth) plane_mesh.subdivide_depth = size_depth * mesh_res plane_mesh.subdivide_width = size_width * mesh_res plane_mesh.material = preload("res://ProceduralGeneration/Materials/terrain.tres") var surface = SurfaceTool.new() surface.create_from(plane_mesh, 0) mesh = MeshInstance3D.new() mesh.mesh = surface.commit() mesh.create_trimesh_collision() mesh.cast_shadow = GeometryInstance3D.SHADOW_CASTING_SETTING_OFF mesh.add_to_group("NavSource") add_child(mesh)