The Cove's stream: a stream block whose water only runs downhill (spring to the bay), its own water ribbon, trout, on the map; scenery and landmarks keep clear
This commit is contained in:
@@ -423,6 +423,8 @@ func _scatter_trees() -> void:
|
||||
func _on_clifftop(x: float, z: float) -> bool:
|
||||
if pier != null and pier.covers(x, z, 2.0):
|
||||
return true
|
||||
if terrain.near_stream(x, z, 1.2):
|
||||
return true # (the stream's bed and banks)
|
||||
for c in keep_clear:
|
||||
if Vector2(x - c[0].x, z - c[0].z).length() < float(c[1]):
|
||||
return true
|
||||
@@ -615,7 +617,7 @@ func _place_logs() -> void:
|
||||
continue
|
||||
var h: float = terrain.sample_height(x, z)
|
||||
var n: Vector3 = terrain.sample_normal(x, z)
|
||||
if h < terrain.water_level + 0.6 or n.y < 0.97 or Vector2(x - _spawn.x, z - _spawn.z).length() < 8.0:
|
||||
if h < terrain.water_level + 0.6 or n.y < 0.97 or Vector2(x - _spawn.x, z - _spawn.z).length() < 8.0 or terrain.near_stream(x, z, 1.5):
|
||||
continue
|
||||
var mi := MeshInstance3D.new()
|
||||
var shape: Shape3D
|
||||
@@ -680,7 +682,7 @@ func _scatter_pickups() -> void:
|
||||
continue
|
||||
var h: float = terrain.sample_height(x, z)
|
||||
var n: Vector3 = terrain.sample_normal(x, z)
|
||||
if h < terrain.water_level + 0.3 or n.y < 0.8 or (pier != null and pier.covers(x, z, 1.0)):
|
||||
if h < terrain.water_level + 0.3 or n.y < 0.8 or (pier != null and pier.covers(x, z, 1.0)) or terrain.near_stream(x, z, 0.3):
|
||||
continue
|
||||
var chance := 1.0
|
||||
match id:
|
||||
@@ -742,7 +744,7 @@ func _scatter_berry_bushes(root: Node3D) -> void:
|
||||
continue
|
||||
var h: float = terrain.sample_height(x, z)
|
||||
var n: Vector3 = terrain.sample_normal(x, z)
|
||||
if h < terrain.water_level + 0.6 or n.y < 0.85:
|
||||
if h < terrain.water_level + 0.6 or n.y < 0.85 or terrain.near_stream(x, z, 1.0):
|
||||
continue
|
||||
var f := _forest(x, z)
|
||||
var chance := 0.12 + (1.0 - absf(f - 0.45) * 2.0) * 0.5
|
||||
@@ -824,7 +826,7 @@ func _make_grass_tile(k: Vector2i) -> Node3D:
|
||||
if not terrain.in_bounds(x, z):
|
||||
continue
|
||||
var h: float = terrain.sample_height(x, z)
|
||||
if h < terrain.water_level + 0.25 or h > terrain.snow_height - 6.0:
|
||||
if h < terrain.water_level + 0.25 or h > terrain.snow_height - 6.0 or terrain.near_stream(x, z, -0.2):
|
||||
continue
|
||||
var n: Vector3 = terrain.sample_normal(x, z)
|
||||
if n.y < 0.72:
|
||||
|
||||
Reference in New Issue
Block a user