Expand procedural terrain generation

This commit is contained in:
Alexander Sellite 2026-08-20 21:42:50 -04:00
parent b82f6fe15c
commit 5d55afcc26
51 changed files with 1924 additions and 223 deletions

View file

@ -9,7 +9,7 @@ stable_id = &"chunk_0003"
label = "stream"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0003"
selection_weight = 0.6
selection_weight = 0.3
tags = PackedStringArray("land", "walkable", "fresh_water", "river", "flowing")
allowed_neighbor_tags = PackedStringArray("grass")
preferred_neighbor_tags = PackedStringArray("grass")

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="TerrainChunkDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_chunk_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/chunks/assets/chunk_0013.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0013"
label = "grass-sand diagonal"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0013"
participates_in_base_solver = false
allowed_rotation_mask = 15
selection_weight = 0.8
maximum_placements = 16
tags = PackedStringArray("land", "walkable", "grass", "sand", "flat", "transition", "mixed_surface")
allowed_neighbor_tags = PackedStringArray("grass", "sand")
forbidden_neighbor_tags = PackedStringArray("fresh_water", "spawn")
north_allowed_neighbor_tags = PackedStringArray("sand")
east_allowed_neighbor_tags = PackedStringArray("grass")
south_allowed_neighbor_tags = PackedStringArray("grass")
west_allowed_neighbor_tags = PackedStringArray("sand")
north_surface_tags = PackedStringArray("sand")
east_surface_tags = PackedStringArray("grass")
south_surface_tags = PackedStringArray("grass")
west_surface_tags = PackedStringArray("sand")
preferred_neighbor_tags = PackedStringArray("grass", "sand", "transition")
must_be_interior = true

View file

@ -0,0 +1,24 @@
[gd_resource type="Resource" script_class="TerrainChunkDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_chunk_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/chunks/assets/chunk_0014.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0014"
label = "second-tier grass sea edge"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0014"
overlay_only = true
selection_weight = 0.28
maximum_placements = 32
tags = PackedStringArray("land", "walkable", "grass", "coast", "cliff", "edge", "elevation_2", "elevation_2_border", "elevation_2_sea_edge")
allowed_neighbor_tags = PackedStringArray("elevation_2")
north_allowed_neighbor_tags = PackedStringArray("elevation_2_sea_edge")
south_allowed_neighbor_tags = PackedStringArray("elevation_2_sea_edge")
west_allowed_neighbor_tags = PackedStringArray("elevation_2_top")
required_neighbor_tags = PackedStringArray("elevation_2_top")
minimum_required_neighbors = 1
preferred_neighbor_tags = PackedStringArray("elevation_2", "coast")
prefers_map_boundary = true
ocean_facing_edges = 2

View file

@ -0,0 +1,23 @@
[gd_resource type="Resource" script_class="TerrainChunkDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_chunk_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/chunks/assets/chunk_0015.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0015"
label = "second-tier grass sea corner"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0015"
overlay_only = true
selection_weight = 0.12
maximum_placements = 16
tags = PackedStringArray("land", "walkable", "grass", "coast", "cliff", "corner", "elevation_2", "elevation_2_border", "elevation_2_sea_edge")
allowed_neighbor_tags = PackedStringArray("elevation_2")
north_allowed_neighbor_tags = PackedStringArray("elevation_2_sea_edge")
west_allowed_neighbor_tags = PackedStringArray("elevation_2_sea_edge")
required_neighbor_tags = PackedStringArray("elevation_2_sea_edge")
minimum_required_neighbors = 2
preferred_neighbor_tags = PackedStringArray("elevation_2", "coast")
prefers_map_boundary = true
ocean_facing_edges = 6

View file

@ -0,0 +1,19 @@
[gd_resource type="Resource" script_class="TerrainChunkDefinition" format=3]
[ext_resource type="Script" path="res://world/generation/terrain_chunk_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/chunks/assets/chunk_0016.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0016"
label = "stream variant"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0016"
selection_weight = 0.3
tags = PackedStringArray("land", "walkable", "fresh_water", "river", "flowing")
allowed_neighbor_tags = PackedStringArray("grass")
preferred_neighbor_tags = PackedStringArray("grass")
water_inlet_edges = 1
water_outlet_edges = 4
water_surface_size = Vector2(2.1, 10)
water_surface_offset = Vector2(-0.315, 0)