Add layered inland cliff generation

This commit is contained in:
Alexander Sellite 2026-08-20 17:53:38 -04:00
parent 2710544070
commit 86372a652e
66 changed files with 1552 additions and 79 deletions

View file

@ -11,7 +11,7 @@ packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0002"
selection_weight = 0.75
maximum_placements = 20
tags = PackedStringArray("land", "walkable", "sand", "coast", "slope")
tags = PackedStringArray("land", "walkable", "sand", "coast", "slope", "beach_ocean_edge")
allowed_neighbor_tags = PackedStringArray("sand", "grass")
required_neighbor_tags = PackedStringArray("sand")
minimum_required_neighbors = 1

View file

@ -0,0 +1,22 @@
[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_0008.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0008"
label = "beach corner"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0008"
selection_weight = 0.2
maximum_placements = 4
tags = PackedStringArray("land", "walkable", "sand", "coast", "slope", "corner")
allowed_neighbor_tags = PackedStringArray("sand", "coast")
north_allowed_neighbor_tags = PackedStringArray("beach_ocean_edge")
west_allowed_neighbor_tags = PackedStringArray("beach_ocean_edge")
required_neighbor_tags = PackedStringArray("beach_ocean_edge")
minimum_required_neighbors = 2
preferred_neighbor_tags = PackedStringArray("coast")
prefers_map_boundary = true
ocean_facing_edges = 6

View file

@ -0,0 +1,23 @@
[gd_resource type="Resource" script_class="TerrainChunkDefinition" load_steps=4 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_0009.glb" id="2_scene"]
[ext_resource type="PackedScene" path="res://world/generation/chunks/assets/chunk_0000.glb" id="3_base_grass"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0009"
label = "second-tier grass top"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0009"
base_layer_scene = ExtResource("3_base_grass")
base_layer_mesh_name = &"chunk_0000"
overlay_only = true
selection_weight = 0.22
maximum_placements = 8
tags = PackedStringArray("land", "walkable", "grass", "elevation_2", "elevation_2_top")
allowed_neighbor_tags = PackedStringArray("elevation_2")
required_neighbor_tags = PackedStringArray("elevation_2")
minimum_required_neighbors = 4
preferred_neighbor_tags = PackedStringArray("elevation_2_top")
must_be_interior = true

View file

@ -0,0 +1,27 @@
[gd_resource type="Resource" script_class="TerrainChunkDefinition" load_steps=4 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_0010.glb" id="2_scene"]
[ext_resource type="PackedScene" path="res://world/generation/chunks/assets/chunk_0000.glb" id="3_base_grass"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0010"
label = "second-tier grass corner"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0010"
base_layer_scene = ExtResource("3_base_grass")
base_layer_mesh_name = &"chunk_0000"
overlay_only = true
selection_weight = 0.12
maximum_placements = 16
tags = PackedStringArray("land", "walkable", "grass", "cliff", "corner", "elevation_2", "elevation_2_border")
allowed_neighbor_tags = PackedStringArray("grass", "elevation_2")
north_allowed_neighbor_tags = PackedStringArray("elevation_2_border")
east_allowed_neighbor_tags = PackedStringArray("grass")
south_allowed_neighbor_tags = PackedStringArray("grass")
west_allowed_neighbor_tags = PackedStringArray("elevation_2_border")
required_neighbor_tags = PackedStringArray("elevation_2_border")
minimum_required_neighbors = 2
preferred_neighbor_tags = PackedStringArray("elevation_2")
must_be_interior = true

View file

@ -0,0 +1,27 @@
[gd_resource type="Resource" script_class="TerrainChunkDefinition" load_steps=4 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_0011.glb" id="2_scene"]
[ext_resource type="PackedScene" path="res://world/generation/chunks/assets/chunk_0000.glb" id="3_base_grass"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0011"
label = "second-tier grass edge"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0011"
base_layer_scene = ExtResource("3_base_grass")
base_layer_mesh_name = &"chunk_0000"
overlay_only = true
selection_weight = 0.28
maximum_placements = 32
tags = PackedStringArray("land", "walkable", "grass", "cliff", "edge", "elevation_2", "elevation_2_border")
allowed_neighbor_tags = PackedStringArray("grass", "elevation_2")
north_allowed_neighbor_tags = PackedStringArray("elevation_2_border")
east_allowed_neighbor_tags = PackedStringArray("grass")
south_allowed_neighbor_tags = PackedStringArray("elevation_2_border")
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")
must_be_interior = true

View file

@ -0,0 +1,27 @@
[gd_resource type="Resource" script_class="TerrainChunkDefinition" load_steps=4 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_0012.glb" id="2_scene"]
[ext_resource type="PackedScene" path="res://world/generation/chunks/assets/chunk_0000.glb" id="3_base_grass"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0012"
label = "second-tier grass ramp"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0012"
base_layer_scene = ExtResource("3_base_grass")
base_layer_mesh_name = &"chunk_0000"
overlay_only = true
selection_weight = 0.12
maximum_placements = 8
tags = PackedStringArray("land", "walkable", "grass", "cliff", "edge", "ramp", "elevation_2", "elevation_2_border")
allowed_neighbor_tags = PackedStringArray("grass", "elevation_2")
north_allowed_neighbor_tags = PackedStringArray("elevation_2_border")
east_allowed_neighbor_tags = PackedStringArray("grass")
south_allowed_neighbor_tags = PackedStringArray("elevation_2_border")
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")
must_be_interior = true