You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
710 B
35 lines
710 B
extends Spatial
|
|
|
|
var terrain
|
|
|
|
func _ready():
|
|
pass
|
|
|
|
|
|
func draw_world():
|
|
var st = SurfaceTool.new()
|
|
|
|
st.begin(Mesh.PRIMITIVE_TRIANGLES)
|
|
st.add_smooth_group(true)
|
|
for triangle in terrain.get_triangles():
|
|
for point in triangle.points():
|
|
st.add_vertex(point.point3d())
|
|
|
|
st.generate_normals()
|
|
st.generate_tangents()
|
|
st.index()
|
|
# Commit to a mesh.
|
|
var mesh = st.commit()
|
|
|
|
var mi = MeshInstance.new()
|
|
mi.mesh = mesh
|
|
var material = load("res://world/world.tres")
|
|
mi.set_surface_material(0, material)
|
|
mi.create_trimesh_collision()
|
|
mi.cast_shadow = GeometryInstance.SHADOW_CASTING_SETTING_ON
|
|
print(mi)
|
|
add_child(mi)
|
|
|
|
func _on_Game_world_loaded(game_terrain):
|
|
terrain = game_terrain
|
|
draw_world()
|
|
|