diff --git a/MainMenu0.bin b/MainMenu0.bin deleted file mode 100644 index 16a0bc0..0000000 Binary files a/MainMenu0.bin and /dev/null differ diff --git a/ui/map/map.gd b/ui/map/map.gd index 1e4de14..a7fc20c 100644 --- a/ui/map/map.gd +++ b/ui/map/map.gd @@ -15,12 +15,15 @@ func heightmap(): colors.add_point(0.0, Color("#89cfa5")) # green colors.add_point(-0.999, Color("#5e4fa2")) # blue var color = colors.interpolate(min(center.get_elevation() + 0.001, 0.999)) + var moisture = center.get_data("moisture") + if moisture: + color = colors.interpolate(max(min(moisture + 0.001, 0.999), 0.001)) # color = Color.green if center.get_data("ocean"): # var factor = pow((center.get_elevation()+1.001), 10) / 5.0 color = Color("#5e4fa2") - if center.get_data("snow"): - color = Color.white +# if center.get_data("snow"): +# color = Color.white # if center.get_data("coast"): # color = Color.black if center.polygon().size() > 2: diff --git a/utils/world_generation/WorldGeneration.gd b/utils/world_generation/WorldGeneration.gd index 397edaa..2daf6e4 100644 --- a/utils/world_generation/WorldGeneration.gd +++ b/utils/world_generation/WorldGeneration.gd @@ -48,6 +48,7 @@ func init_data(): for center in Global.terrain.get_centers(): center.set_elevation(find_elevation(center.point2d())) center.set_data("temperature", find_temperature(center)) + center.set_data("moisture", find_moisture(center.point2d())) if center.get_data("temperature") > 0.5: center.set_data("snow", true) if center.get_elevation() <= 0.0: @@ -72,6 +73,13 @@ func init_data(): center.set_data("material", "stone") if center.get_data("coast"): center.set_data("material", "sand") + if ( + not center.get_data("coast") + and not center.get_data("mountain") + and not center.get_data("ocean") + and center.get_data("moisture") > 0.3 + ): + center.set_data("forest", true) Global.loadings["world_creation"].increment_step() @@ -241,6 +249,10 @@ func find_elevation(point): elevation = (elevation * terraces) / terraces return elevation +func find_moisture(point): + var elevation = noise.get_noise_2d((point.x + 100) / wavelength * 2, (point.y + 100) / wavelength * 2) + return elevation + func find_temperature(center): var poles = 4 diff --git a/world/World3d.gd b/world/World3d.gd index e96708d..fc62da8 100644 --- a/world/World3d.gd +++ b/world/World3d.gd @@ -30,9 +30,8 @@ func add_trees(): var poisson_disc_sampling: PoissonDiscSampling = PoissonDiscSampling.new() for center in Global.terrain.get_centers(): - if not center.get_data("water") and not center.get_data("coast") and not center.get_data("mountain"): - var num = rng.randi_range(0,10) - if num == 1: + var num = rng.randi_range(0,100) + if center.get_data("forest") or num == 1: var points2d = poisson_disc_sampling.generate_points(3, center.polygon(), 2) for point in points2d: var tree = treescene.instance()