From 94f97ad3ae0ec7009e7714b2e9f4ec2e40a1e35f Mon Sep 17 00:00:00 2001 From: Rob Kelly Date: Sat, 4 Oct 2025 18:05:52 -0600 Subject: [PATCH] Arcology terrace metro generation --- .../generation/feature/arcology/arcology.tscn | 155 +++++++++++++++++- 1 file changed, 154 insertions(+), 1 deletion(-) diff --git a/src/world/generation/feature/arcology/arcology.tscn b/src/world/generation/feature/arcology/arcology.tscn index d1585d2..22693c5 100644 --- a/src/world/generation/feature/arcology/arcology.tscn +++ b/src/world/generation/feature/arcology/arcology.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=3 uid="uid://nllc8ljmn37g"] +[gd_scene load_steps=11 format=3 uid="uid://nllc8ljmn37g"] [ext_resource type="Script" uid="uid://drk82eeqk2mjs" path="res://src/world/generation/feature/generation_feature.gd" id="1_ek7o7"] [ext_resource type="Material" uid="uid://0ja682cfcvu3" path="res://assets/materials/shaders/megalith_base.material" id="2_pko82"] @@ -22,6 +22,11 @@ _limits = [1.0, 20.0, 0.0, 1.0] _data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 20), 0.0, 0.0, 0, 0] point_count = 2 +[sub_resource type="Curve" id="Curve_kox75"] +_limits = [0.0, 4.0, 0.0, 1.0] +_data = [Vector2(0, 4), 0.0, 0.0, 0, 0] +point_count = 1 + [node name="Arcology" type="Node3D"] script = ExtResource("1_ek7o7") metadata/_custom_type_script = "uid://drk82eeqk2mjs" @@ -122,6 +127,43 @@ construct_height_factor_z = SubResource("Curve_0w44q") bounding_box = AABB(0, 0, 0, 44480, 400, 4096) noise_offset = Vector3(1, 1, 1) +[node name="UpperMetro" type="Node3D" parent="MetroQuadrant"] + +[node name="MetroGridLayer" parent="MetroQuadrant/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer2" parent="MetroQuadrant/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 28700, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer3" parent="MetroQuadrant/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 38500, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer4" parent="MetroQuadrant/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 28700) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer5" parent="MetroQuadrant/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 38500) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + [node name="MetroQuadrant2" type="Node3D" parent="."] transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0, 100000) @@ -153,6 +195,43 @@ construct_height_factor_z = SubResource("Curve_0w44q") bounding_box = AABB(0, 0, 0, 44480, 400, 4096) noise_offset = Vector3(1, 1, 1) +[node name="UpperMetro" type="Node3D" parent="MetroQuadrant2"] + +[node name="MetroGridLayer" parent="MetroQuadrant2/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer2" parent="MetroQuadrant2/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 28700, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer3" parent="MetroQuadrant2/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 38500, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer4" parent="MetroQuadrant2/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 28700) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer5" parent="MetroQuadrant2/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 38500) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + [node name="MetroQuadrant3" type="Node3D" parent="."] transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 100000, 0, 100000) @@ -184,6 +263,43 @@ construct_height_factor_z = SubResource("Curve_0w44q") bounding_box = AABB(0, 0, 0, 44480, 400, 4096) noise_offset = Vector3(1, 1, 1) +[node name="UpperMetro" type="Node3D" parent="MetroQuadrant3"] + +[node name="MetroGridLayer" parent="MetroQuadrant3/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer2" parent="MetroQuadrant3/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 28700, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer3" parent="MetroQuadrant3/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 38500, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer4" parent="MetroQuadrant3/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 28700) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer5" parent="MetroQuadrant3/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 38500) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + [node name="MetroQuadrant4" type="Node3D" parent="."] transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 100000, 0, 0) @@ -214,3 +330,40 @@ construct_height_factor_x = SubResource("Curve_amoo5") construct_height_factor_z = SubResource("Curve_0w44q") bounding_box = AABB(0, 0, 0, 44480, 400, 4096) noise_offset = Vector3(1, 1, 1) + +[node name="UpperMetro" type="Node3D" parent="MetroQuadrant4"] + +[node name="MetroGridLayer" parent="MetroQuadrant4/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer2" parent="MetroQuadrant4/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 28700, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer3" parent="MetroQuadrant4/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 38500, 25000, 18900) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer4" parent="MetroQuadrant4/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 28700) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01) + +[node name="MetroGridLayer5" parent="MetroQuadrant4/UpperMetro" instance=ExtResource("4_fy7wq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18900, 25000, 38500) +simple_construct_threshold = 0.4 +construct_height_factor_x = SubResource("Curve_kox75") +bounding_box = AABB(0, 0, 0, 5632, 400, 5632) +noise_scale = Vector3(0.01, 0.01, 0.01)