feat: make pantry crises visible in the world

This commit is contained in:
Rijad Zuzo
2026-07-14 23:54:22 +02:00
parent c722e32a88
commit c23f6887c8
21 changed files with 800 additions and 73 deletions
+200 -7
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=36 format=3]
[gd_scene load_steps=50 format=3]
[ext_resource type="Terrain3DAssets" path="res://terrain/jajce/assets.tres" id="1_assets"]
[ext_resource type="PackedScene" path="res://world/resource_nodes/ResourceNode.tscn" id="2_resource"]
@@ -17,6 +17,7 @@
[ext_resource type="Script" path="res://world/activity/ActivitySite.gd" id="15_activity"]
[ext_resource type="NavigationMesh" path="res://world/jajce/JajceNavigationMesh.tres" id="16_nav"]
[ext_resource type="PackedScene" path="res://world/jajce/vfx/WindGustField.tscn" id="17_wind_gust"]
[ext_resource type="Script" path="res://world/storage/PantryStockVisual.gd" id="18_pantry_visual"]
[sub_resource type="Terrain3DMaterial" id="Terrain3DMaterial_jajce"]
_shader_parameters = {
@@ -74,6 +75,83 @@ size = Vector3(1.0, 0.08, 0.5)
material = SubResource("Material_site_canvas")
size = Vector3(0.5, 0.62, 0.42)
[sub_resource type="StandardMaterial3D" id="Material_pantry_berry"]
albedo_color = Color(0.56, 0.16, 0.19, 1)
roughness = 0.82
[sub_resource type="StandardMaterial3D" id="Material_pantry_leaf"]
albedo_color = Color(0.35, 0.52, 0.25, 1)
roughness = 0.86
[sub_resource type="StandardMaterial3D" id="Material_pantry_empty"]
albedo_color = Color(0.48, 0.22, 0.09, 1)
roughness = 0.94
[sub_resource type="StandardMaterial3D" id="Material_pantry_glow"]
transparency = 1
shading_mode = 0
albedo_color = Color(0.96, 0.72, 0.3, 0.7)
emission_enabled = true
emission = Color(0.92, 0.5, 0.15, 1)
emission_energy_multiplier = 0.45
[sub_resource type="CylinderMesh" id="Mesh_pantry_basket"]
material = SubResource("Material_site_dark_wood")
top_radius = 0.46
bottom_radius = 0.38
height = 0.3
radial_segments = 12
[sub_resource type="SphereMesh" id="Mesh_pantry_berry"]
material = SubResource("Material_pantry_berry")
radius = 0.15
height = 0.26
radial_segments = 10
rings = 5
[sub_resource type="SphereMesh" id="Mesh_pantry_leaf"]
material = SubResource("Material_pantry_leaf")
radius = 0.12
height = 0.24
radial_segments = 8
rings = 4
[sub_resource type="TorusMesh" id="Mesh_pantry_bowl_rim"]
material = SubResource("Material_pantry_empty")
inner_radius = 0.3
outer_radius = 0.39
rings = 14
ring_segments = 8
[sub_resource type="CylinderMesh" id="Mesh_pantry_bowl_base"]
material = SubResource("Material_pantry_empty")
top_radius = 0.3
bottom_radius = 0.24
height = 0.08
radial_segments = 12
[sub_resource type="BoxMesh" id="Mesh_pantry_shelf"]
material = SubResource("Material_site_dark_wood")
size = Vector3(1.5, 0.12, 0.5)
[sub_resource type="BoxMesh" id="Mesh_pantry_backcloth"]
material = SubResource("Material_site_canvas")
size = Vector3(1.45, 1.05, 0.08)
[sub_resource type="TorusMesh" id="Mesh_pantry_refill_ring"]
material = SubResource("Material_pantry_glow")
inner_radius = 0.55
outer_radius = 0.66
rings = 18
ring_segments = 8
[sub_resource type="SphereMesh" id="Mesh_pantry_refill_mote"]
material = SubResource("Material_pantry_glow")
radius = 0.09
height = 0.17
radial_segments = 8
rings = 4
[sub_resource type="BoxMesh" id="Mesh_study_book"]
material = SubResource("Material_site_book")
size = Vector3(0.42, 0.08, 0.3)
@@ -458,6 +536,9 @@ discovery_priority = 0.45
[node name="VillagePantry" parent="WorldObjects/StorageSites" instance=ExtResource("14_storage")]
position = Vector3(0, 0, -8)
[node name="Visual" parent="WorldObjects/StorageSites/VillagePantry"]
visible = false
[node name="VillageWoodpile" parent="WorldObjects/StorageSites" instance=ExtResource("14_storage")]
position = Vector3(8, 0, -12)
storage_id = &"village_woodpile"
@@ -471,16 +552,128 @@ position = Vector3(-1.05, 1.85, 1.25)
rotation_degrees = Vector3(0, 90, 0)
mesh = SubResource("Mesh_site_sign")
[node name="PantrySack_A" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry"]
position = Vector3(-0.95, 0.3, -0.65)
scale = Vector3(0.65, 1.0, 0.65)
[node name="PantryPresentation" type="Node3D" parent="WorldObjects/StorageSites/VillagePantry"]
position = Vector3(0, 0, -0.48)
scale = Vector3(1.12, 1.12, 1.12)
script = ExtResource("18_pantry_visual")
[node name="Backcloth" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation"]
position = Vector3(0, 0.68, 0.22)
mesh = SubResource("Mesh_pantry_backcloth")
[node name="ShelfLower" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation"]
position = Vector3(0, 0.18, 0)
mesh = SubResource("Mesh_pantry_shelf")
[node name="ShelfUpper" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation"]
position = Vector3(0, 1.15, 0)
mesh = SubResource("Mesh_pantry_shelf")
[node name="PostLeft" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation"]
position = Vector3(-0.65, 0.66, 0.18)
scale = Vector3(0.08, 8, 0.12)
mesh = SubResource("Mesh_pantry_shelf")
[node name="PostRight" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation"]
position = Vector3(0.65, 0.66, 0.18)
scale = Vector3(0.08, 8, 0.12)
mesh = SubResource("Mesh_pantry_shelf")
[node name="EmptyStock" type="Node3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation"]
position = Vector3(0, 0, -0.38)
[node name="BowlBase" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/EmptyStock"]
position = Vector3(0, 0.27, -0.04)
mesh = SubResource("Mesh_pantry_bowl_base")
[node name="BowlRim" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/EmptyStock"]
position = Vector3(0, 0.34, -0.04)
mesh = SubResource("Mesh_pantry_bowl_rim")
[node name="LowStock" type="Node3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation"]
visible = false
position = Vector3(0, 0, -0.38)
[node name="Sack" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/LowStock"]
position = Vector3(-0.42, 0.49, 0)
scale = Vector3(0.72, 0.9, 0.72)
mesh = SubResource("Mesh_site_sack")
[node name="PantrySack_B" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry"]
position = Vector3(-1.35, 0.22, -0.25)
scale = Vector3(0.5, 0.75, 0.5)
[node name="Basket" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/LowStock"]
position = Vector3(0.36, 0.32, -0.02)
mesh = SubResource("Mesh_pantry_basket")
[node name="BerryLeft" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/LowStock"]
position = Vector3(0.18, 0.52, -0.02)
mesh = SubResource("Mesh_pantry_berry")
[node name="BerryCenter" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/LowStock"]
position = Vector3(0.38, 0.57, 0.02)
mesh = SubResource("Mesh_pantry_berry")
[node name="BerryRight" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/LowStock"]
position = Vector3(0.55, 0.5, -0.03)
mesh = SubResource("Mesh_pantry_berry")
[node name="Leaf" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/LowStock"]
position = Vector3(0.36, 0.67, 0)
rotation_degrees = Vector3(20, 0, 58)
scale = Vector3(0.45, 1, 0.3)
mesh = SubResource("Mesh_pantry_leaf")
[node name="FullStock" type="Node3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation"]
visible = false
position = Vector3(0, 0, -0.38)
[node name="SackLeft" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/FullStock"]
position = Vector3(-0.48, 0.77, 0)
scale = Vector3(0.55, 0.72, 0.55)
mesh = SubResource("Mesh_site_sack")
[node name="SackRight" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/FullStock"]
position = Vector3(0.48, 0.78, 0)
scale = Vector3(0.5, 0.68, 0.5)
mesh = SubResource("Mesh_site_sack")
[node name="UpperBasket" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/FullStock"]
position = Vector3(0, 1.31, -0.02)
scale = Vector3(0.82, 0.82, 0.82)
mesh = SubResource("Mesh_pantry_basket")
[node name="UpperBerryLeft" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/FullStock"]
position = Vector3(-0.18, 1.48, -0.03)
mesh = SubResource("Mesh_pantry_berry")
[node name="UpperBerryCenter" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/FullStock"]
position = Vector3(0, 1.52, 0.02)
mesh = SubResource("Mesh_pantry_berry")
[node name="UpperBerryRight" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/FullStock"]
position = Vector3(0.18, 1.46, -0.02)
mesh = SubResource("Mesh_pantry_berry")
[node name="RefillResponse" type="Node3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation"]
visible = false
position = Vector3(0, 0.08, -0.5)
scale = Vector3(0.45, 0.45, 0.45)
[node name="Ring" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/RefillResponse"]
position = Vector3(0, 0.78, 0)
mesh = SubResource("Mesh_pantry_refill_ring")
[node name="MoteLeft" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/RefillResponse"]
position = Vector3(-0.48, 1.02, 0)
mesh = SubResource("Mesh_pantry_refill_mote")
[node name="MoteCenter" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/RefillResponse"]
position = Vector3(0, 1.18, 0)
scale = Vector3(0.8, 1.3, 0.8)
mesh = SubResource("Mesh_pantry_refill_mote")
[node name="MoteRight" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry/PantryPresentation/RefillResponse"]
position = Vector3(0.48, 1.02, 0)
mesh = SubResource("Mesh_pantry_refill_mote")
[node name="ActivitySites" type="Node3D" parent="WorldObjects"]
[node name="GuardPost" type="Node3D" parent="WorldObjects/ActivitySites"]