Expand generated terrain with biome-driven props

This commit is contained in:
Alexander Sellite 2026-08-20 00:28:55 -04:00
parent e8888ed05a
commit 1e24fb0bfc
103 changed files with 5427 additions and 351 deletions

View file

@ -11,4 +11,6 @@ packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0000"
allowed_rotation_mask = 15
selection_weight = 4.0
tags = PackedStringArray("land", "grass", "flat")
tags = PackedStringArray("land", "walkable", "grass", "flat", "spawn_safe")
allowed_neighbor_tags = PackedStringArray("grass", "sand", "coast", "fresh_water")
preferred_neighbor_tags = PackedStringArray("grass")

View file

@ -11,4 +11,8 @@ packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0001"
allowed_rotation_mask = 15
selection_weight = 1.5
tags = PackedStringArray("land", "sand", "flat")
tags = PackedStringArray("land", "walkable", "sand", "flat")
allowed_neighbor_tags = PackedStringArray("sand", "grass")
required_neighbor_tags = PackedStringArray("coast")
minimum_required_neighbors = 1
preferred_neighbor_tags = PackedStringArray("coast", "sand")

View file

@ -10,5 +10,10 @@ label = "beach"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0002"
selection_weight = 0.75
maximum_placements = 10
tags = PackedStringArray("land", "sand", "coast", "slope")
maximum_placements = 20
tags = PackedStringArray("land", "walkable", "sand", "coast", "slope")
allowed_neighbor_tags = PackedStringArray("sand", "grass")
required_neighbor_tags = PackedStringArray("sand")
minimum_required_neighbors = 1
preferred_neighbor_tags = PackedStringArray("sand", "grass")
ocean_facing_edges = 2

View file

@ -10,7 +10,9 @@ label = "stream"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0003"
selection_weight = 0.6
tags = PackedStringArray("land", "fresh_water", "river", "flowing")
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)

View file

@ -10,7 +10,9 @@ label = "pond"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0004"
selection_weight = 0.35
tags = PackedStringArray("land", "fresh_water", "pond")
tags = PackedStringArray("land", "walkable", "fresh_water", "pond")
allowed_neighbor_tags = PackedStringArray("grass")
preferred_neighbor_tags = PackedStringArray("grass")
water_inlet_edges = 1
water_surface_size = Vector2(6.7, 7.75)
water_surface_offset = Vector2(-0.32, -1.03)

View file

@ -0,0 +1,21 @@
[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" uid="uid://cg6jtwiq41mbr" path="res://world/generation/chunks/assets/chunk_0005.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0005"
label = "grass ocean edge"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0005"
selection_weight = 1.0
maximum_placements = 20
tags = PackedStringArray("land", "walkable", "grass", "coast", "cliff", "grass_ocean_edge")
allowed_neighbor_tags = PackedStringArray("grass", "sand", "coast")
north_allowed_neighbor_tags = PackedStringArray("coast")
south_allowed_neighbor_tags = PackedStringArray("coast")
west_allowed_neighbor_tags = PackedStringArray("grass")
preferred_neighbor_tags = PackedStringArray("grass", "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" uid="uid://ddjqd4kl4tkhg" path="res://world/generation/chunks/assets/chunk_0006.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0006"
label = "grass to beach ocean edge"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0006"
selection_weight = 0.35
maximum_placements = 8
tags = PackedStringArray("land", "walkable", "sand", "coast", "transition", "slope")
allowed_neighbor_tags = PackedStringArray("grass", "sand", "coast")
north_allowed_neighbor_tags = PackedStringArray("coast")
south_allowed_neighbor_tags = PackedStringArray("grass_ocean_edge")
west_allowed_neighbor_tags = PackedStringArray("grass")
required_neighbor_tags = PackedStringArray("coast")
minimum_required_neighbors = 2
preferred_neighbor_tags = PackedStringArray("coast")
prefers_map_boundary = true
ocean_facing_edges = 2

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" uid="uid://cniughsb3gacd" path="res://world/generation/chunks/assets/chunk_0007.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"chunk_0007"
label = "grass ocean corner"
packed_scene = ExtResource("2_scene")
primary_mesh_name = &"chunk_0007"
selection_weight = 0.2
maximum_placements = 4
tags = PackedStringArray("land", "walkable", "grass", "coast", "cliff", "corner")
allowed_neighbor_tags = PackedStringArray("grass", "coast")
north_allowed_neighbor_tags = PackedStringArray("grass_ocean_edge")
west_allowed_neighbor_tags = PackedStringArray("grass_ocean_edge")
required_neighbor_tags = PackedStringArray("grass_ocean_edge")
minimum_required_neighbors = 2
preferred_neighbor_tags = PackedStringArray("coast")
prefers_map_boundary = true
ocean_facing_edges = 6

View file

@ -12,4 +12,8 @@ primary_mesh_name = &"chunk_0000"
allowed_rotation_mask = 1
selection_weight = 0.01
maximum_placements = 1
tags = PackedStringArray("land", "grass", "flat", "spawn")
tags = PackedStringArray("land", "walkable", "grass", "flat", "spawn")
allowed_neighbor_tags = PackedStringArray("grass", "coast")
required_neighbor_tags = PackedStringArray("spawn_safe")
minimum_required_neighbors = 3
preferred_neighbor_tags = PackedStringArray("spawn_safe")