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.
43 lines
907 B
43 lines
907 B
extends Spatial
|
|
|
|
var terrain
|
|
|
|
func _ready():
|
|
pass
|
|
|
|
|
|
func draw_world():
|
|
# for i in range(0, 1, 1):
|
|
# print(i)
|
|
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():
|
|
var factor = Vector3(1, 24*5, 1)
|
|
# if point.get_data("river") and i == 0:
|
|
# factor.y -= 0
|
|
# if i == 1:
|
|
# factor.y -= 2.0
|
|
st.add_vertex(point.point3d() * factor)
|
|
|
|
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.material")
|
|
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()
|
|
|
|
|