nature-sim/Entities/GroundTile/GroundTile.tscn
Dan Baker 3959333534 Adds bushes and flowers to ground tiles
Implements bush and flower spawning on ground tiles based on vegetation density.
Adds new assets for bushes and flowers, and introduces multi-mesh rendering for optimized performance.
Introduces seasonal color variations for vegetation using a shader for bushes and materials for flowers and grass.
Refactors material application into a MaterialManager to handle material assignments over multiple frames.
Moves ground tile scripts into a subfolder.
Adds floating particles to test scene.
2025-06-29 10:58:18 +01:00

103 lines
4.2 KiB
Text

[gd_scene load_steps=17 format=3 uid="uid://bwcevwwphdvq"]
[ext_resource type="Script" uid="uid://bq7hia2dit80y" path="res://Entities/GroundTile/scripts/ground_tile.gd" id="1_uwxqs"]
[ext_resource type="ArrayMesh" uid="uid://duj6747nq4qsk" path="res://Stages/Test3D/assets/stylizedGrassMeshes/grass.res" id="3_8mhad"]
[ext_resource type="Script" uid="uid://cacp8ncwuofuj" path="res://Entities/GroundTile/scripts/grass.gd" id="3_224hx"]
[ext_resource type="Material" uid="uid://b1miqvl8lus75" path="res://Stages/Test3D/GrassMaterialOverride.tres" id="3_f37ob"]
[ext_resource type="Script" uid="uid://btju6b83mvgvk" path="res://Entities/GroundTile/scripts/grass_multimesh.gd" id="4_3wpcb"]
[ext_resource type="Script" uid="uid://bt67yhdkwtqy5" path="res://Entities/GroundTile/scripts/bushes.gd" id="6_224hx"]
[ext_resource type="Script" uid="uid://cqko4m7cbxsfb" path="res://Entities/GroundTile/scripts/trees.gd" id="7_7lc7k"]
[ext_resource type="Script" uid="uid://dri5tubavplji" path="res://Entities/GroundTile/scripts/bush_multimesh.gd" id="7_jysav"]
[ext_resource type="Script" uid="uid://d3s0u7rm1y7i6" path="res://Entities/GroundTile/scripts/flower_multimesh.gd" id="8_jysav"]
[ext_resource type="Script" uid="uid://18vxtm3ua4x0" path="res://Entities/GroundTile/scripts/flowers.gd" id="8_q0r4p"]
[sub_resource type="ViewportTexture" id="ViewportTexture_h4g11"]
viewport_path = NodePath("DebugText/DebugTextViewport")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_f37ob"]
albedo_color = Color(0.196078, 0.392157, 0.196078, 1)
[sub_resource type="PlaneMesh" id="PlaneMesh_oqd8f"]
[sub_resource type="BoxShape3D" id="BoxShape3D_h4g11"]
size = Vector3(2, 2, 2)
[sub_resource type="MultiMesh" id="MultiMesh_3wpcb"]
transform_format = 1
mesh = ExtResource("3_8mhad")
[sub_resource type="PlaneMesh" id="PlaneMesh_f37ob"]
flip_faces = true
[node name="GroundTile" type="Node3D"]
script = ExtResource("1_uwxqs")
[node name="DebugText" type="Node3D" parent="."]
visible = false
[node name="DebugTextViewport" type="SubViewport" parent="DebugText"]
size = Vector2i(50, 50)
[node name="DebugTextLabel" type="Label" parent="DebugText/DebugTextViewport"]
offset_right = 40.0
offset_bottom = 23.0
text = "Hello world"
[node name="DebugTextBillboard" type="Sprite3D" parent="DebugText"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0461426, 0.199493, 0.0660986)
texture = SubResource("ViewportTexture_h4g11")
[node name="Ground" type="MeshInstance3D" parent="."]
material_override = SubResource("StandardMaterial3D_f37ob")
cast_shadow = 0
mesh = SubResource("PlaneMesh_oqd8f")
[node name="GroundCollision" type="StaticBody3D" parent="Ground"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground/GroundCollision"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
shape = SubResource("BoxShape3D_h4g11")
[node name="Grass" type="Node3D" parent="."]
script = ExtResource("3_224hx")
[node name="GrassMultimesh" type="MultiMeshInstance3D" parent="Grass"]
material_override = ExtResource("3_f37ob")
cast_shadow = 0
multimesh = SubResource("MultiMesh_3wpcb")
script = ExtResource("4_3wpcb")
[node name="GrassTarget" type="MeshInstance3D" parent="Grass"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0111763, 0)
mesh = SubResource("PlaneMesh_f37ob")
[node name="Bushes" type="Node3D" parent="."]
script = ExtResource("6_224hx")
[node name="BushMultimesh" type="MultiMeshInstance3D" parent="Bushes"]
cast_shadow = 0
multimesh = SubResource("MultiMesh_3wpcb")
script = ExtResource("7_jysav")
[node name="BushTarget" type="MeshInstance3D" parent="Bushes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0111763, 0)
mesh = SubResource("PlaneMesh_f37ob")
[node name="Flowers" type="Node3D" parent="."]
script = ExtResource("8_q0r4p")
[node name="FlowerMultimesh" type="MultiMeshInstance3D" parent="Flowers"]
cast_shadow = 0
multimesh = SubResource("MultiMesh_3wpcb")
script = ExtResource("8_jysav")
[node name="FloewerTarget" type="MeshInstance3D" parent="Flowers"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0111763, 0)
mesh = SubResource("PlaneMesh_f37ob")
[node name="Trees" type="Node3D" parent="."]
script = ExtResource("7_7lc7k")
[node name="Special" type="Node3D" parent="."]
[node name="Rocks" type="Node3D" parent="Special"]