From a6c9f527b6598434b280873b568fd0562a6ffa64 Mon Sep 17 00:00:00 2001 From: Valentin Stark Date: Wed, 17 Aug 2022 23:49:37 +0200 Subject: [PATCH] changes to rivers --- world/World.gd | 52 +++++++++++++++++++++++++++++--------------------- world/game.gd | 5 +++-- 2 files changed, 33 insertions(+), 24 deletions(-) diff --git a/world/World.gd b/world/World.gd index cf9299f..e4ab1d1 100644 --- a/world/World.gd +++ b/world/World.gd @@ -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 diff --git a/world/game.gd b/world/game.gd index 18e5f19..44adba1 100644 --- a/world/game.gd +++ b/world/game.gd @@ -4,14 +4,14 @@ signal world_loaded export(int) var width = 2000 export(int) var height = 2000 -export(int) var spacing = 20 +export(int) var spacing = 5 export(int, 1, 9) var octaves = 5 export(int, 1, 30) var wavelength = 8 export(int) var border_width = 200 export(int) var terraces = 24 export(int) var terrace_height = 5 export(float) var mountain_height = 6.0 / 24.0 -export(int) var river_proba = 100 +export(int) var river_proba = 200 var rng = RandomNumberGenerator.new() var noise = OpenSimplexNoise.new() @@ -100,6 +100,7 @@ func set_river_path(point): path.append(point.get_index()) for index in path: terrain.get_point(index).set_data("river", true) + terrain.get_point(index).set_data("water", true) # Point