Merge pull request #53 from eriwyn/humidité

ajout de l'humidité
pull/55/head^2
eriwyn 3 years ago committed by GitHub
commit 2f8105d474
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. BIN
      MainMenu0.bin
  2. 7
      ui/map/map.gd
  3. 12
      utils/world_generation/WorldGeneration.gd
  4. 5
      world/World3d.gd

Binary file not shown.

@ -15,12 +15,15 @@ func heightmap():
colors.add_point(0.0, Color("#89cfa5")) # green colors.add_point(0.0, Color("#89cfa5")) # green
colors.add_point(-0.999, Color("#5e4fa2")) # blue colors.add_point(-0.999, Color("#5e4fa2")) # blue
var color = colors.interpolate(min(center.get_elevation() + 0.001, 0.999)) 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 # color = Color.green
if center.get_data("ocean"): if center.get_data("ocean"):
# var factor = pow((center.get_elevation()+1.001), 10) / 5.0 # var factor = pow((center.get_elevation()+1.001), 10) / 5.0
color = Color("#5e4fa2") color = Color("#5e4fa2")
if center.get_data("snow"): # if center.get_data("snow"):
color = Color.white # color = Color.white
# if center.get_data("coast"): # if center.get_data("coast"):
# color = Color.black # color = Color.black
if center.polygon().size() > 2: if center.polygon().size() > 2:

@ -48,6 +48,7 @@ func init_data():
for center in Global.terrain.get_centers(): for center in Global.terrain.get_centers():
center.set_elevation(find_elevation(center.point2d())) center.set_elevation(find_elevation(center.point2d()))
center.set_data("temperature", find_temperature(center)) center.set_data("temperature", find_temperature(center))
center.set_data("moisture", find_moisture(center.point2d()))
if center.get_data("temperature") > 0.5: if center.get_data("temperature") > 0.5:
center.set_data("snow", true) center.set_data("snow", true)
if center.get_elevation() <= 0.0: if center.get_elevation() <= 0.0:
@ -72,6 +73,13 @@ func init_data():
center.set_data("material", "stone") center.set_data("material", "stone")
if center.get_data("coast"): if center.get_data("coast"):
center.set_data("material", "sand") 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() Global.loadings["world_creation"].increment_step()
@ -241,6 +249,10 @@ func find_elevation(point):
elevation = (elevation * terraces) / terraces elevation = (elevation * terraces) / terraces
return elevation 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): func find_temperature(center):
var poles = 4 var poles = 4

@ -29,9 +29,8 @@ func add_trees():
var poisson_disc_sampling: PoissonDiscSampling = PoissonDiscSampling.new() var poisson_disc_sampling: PoissonDiscSampling = PoissonDiscSampling.new()
for center in Global.terrain.get_centers(): 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,100)
var num = rng.randi_range(0,10) if center.get_data("forest") or num == 1:
if num == 1:
var points2d = poisson_disc_sampling.generate_points(3, center.polygon(), 2) var points2d = poisson_disc_sampling.generate_points(3, center.polygon(), 2)
for point in points2d: for point in points2d:
var tree = treescene.instance() var tree = treescene.instance()

Loading…
Cancel
Save