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

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_bridge.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_bridge"
label = "small bridge"
packed_scene = ExtResource("2_scene")
clearance_radius = 3.75

View file

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_dock.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_dock"
label = "dock"
packed_scene = ExtResource("2_scene")
clearance_radius = 6.0

View file

@ -0,0 +1,17 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_log.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_log"
label = "decorative log"
packed_scene = ExtResource("2_scene")
procedural_group = &"grass_detail"
required_chunk_tags = PackedStringArray("grass")
selection_weight = 1.0
minimum_spawn_chunk_distance = 2
clearance_radius = 2.8
collision_box_size = Vector3(1.1, 0.9, 5.0)
collision_offset = Vector3(0, 0.45, 0)

View file

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_log_post_1.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_log_post_1"
label = "large decorative post"
packed_scene = ExtResource("2_scene")
clearance_radius = 0.5

View file

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_log_post_2.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_log_post_2"
label = "small decorative post"
packed_scene = ExtResource("2_scene")
clearance_radius = 0.35

View file

@ -0,0 +1,18 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_mushroom.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_mushroom"
label = "mushrooms"
packed_scene = ExtResource("2_scene")
procedural_group = &"grass_detail"
required_chunk_tags = PackedStringArray("grass")
selection_weight = 2.0
minimum_spawn_chunk_distance = 1
preferred_nearby_prop_groups = PackedStringArray("grass_tree")
preferred_nearby_radius = 12.0
nearby_preference_weight_multiplier = 3.0
clearance_radius = 0.8

View file

@ -0,0 +1,16 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_palm.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_palm"
label = "palm"
packed_scene = ExtResource("2_scene")
procedural_group = &"sand_tree"
required_chunk_tags = PackedStringArray("sand")
minimum_spawn_chunk_distance = 2
clearance_radius = 2.0
collision_radius = 0.4
collision_height = 6.0

View file

@ -0,0 +1,18 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_pine.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_pine"
label = "pine"
packed_scene = ExtResource("2_scene")
procedural_group = &"grass_tree"
required_chunk_tags = PackedStringArray("grass")
selection_weight = 0.7
minimum_spawn_chunk_distance = 2
clearance_radius = 1.55
collision_radius = 0.5
collision_height = 4.0
gatherable_anchor_height = 2.15

View file

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_timber_1.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_timber_1"
label = "large path timber"
packed_scene = ExtResource("2_scene")
clearance_radius = 2.5

View file

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_timber_2.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_timber_2"
label = "small path timber"
packed_scene = ExtResource("2_scene")
clearance_radius = 2.5

View file

@ -0,0 +1,17 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_tree_1.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_tree_1"
label = "small tree"
packed_scene = ExtResource("2_scene")
procedural_group = &"grass_tree"
required_chunk_tags = PackedStringArray("grass")
minimum_spawn_chunk_distance = 2
clearance_radius = 1.3
collision_radius = 0.4
collision_height = 3.2
gatherable_anchor_height = 2.15

View file

@ -0,0 +1,17 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_tree_2.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_tree_2"
label = "medium tree"
packed_scene = ExtResource("2_scene")
procedural_group = &"grass_tree"
required_chunk_tags = PackedStringArray("grass")
minimum_spawn_chunk_distance = 2
clearance_radius = 1.5
collision_radius = 0.5
collision_height = 3.8
gatherable_anchor_height = 2.15

View file

@ -0,0 +1,17 @@
[gd_resource type="Resource" script_class="TerrainPropDefinition" load_steps=3 format=3]
[ext_resource type="Script" path="res://world/generation/terrain_prop_definition.gd" id="1_definition"]
[ext_resource type="PackedScene" path="res://world/generation/props/assets/prop_tree_3.glb" id="2_scene"]
[resource]
script = ExtResource("1_definition")
stable_id = &"prop_tree_3"
label = "large tree"
packed_scene = ExtResource("2_scene")
procedural_group = &"grass_tree"
required_chunk_tags = PackedStringArray("grass")
minimum_spawn_chunk_distance = 2
clearance_radius = 1.8
collision_radius = 0.55
collision_height = 4.2
gatherable_anchor_height = 2.15