|
|
|
|
@ -7,28 +7,36 @@ func _ready(): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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() * Vector3(1, 24*5, 1)) |
|
|
|
|
|
|
|
|
|
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) |
|
|
|
|
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 |
|
|
|
|
if i == 0: |
|
|
|
|
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 |
|
|
|
|
|