[gd_scene load_steps=62 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"] [ext_resource type="Script" path="res://world/jajce/jajce_world.gd" id="3_world"] [ext_resource type="PackedScene" path="res://world/jajce/StylizedTree.tscn" id="4_tree"] [ext_resource type="PackedScene" path="res://world/jajce/FortressBlockout.tscn" id="5_fortress"] [ext_resource type="PackedScene" path="res://world/jajce/StylizedHouse.tscn" id="6_house"] [ext_resource type="PackedScene" path="res://world/jajce/StylizedMill.tscn" id="7_mill"] [ext_resource type="PackedScene" path="res://world/jajce/BridgeBlockout.tscn" id="8_bridge"] [ext_resource type="PackedScene" path="res://world/jajce/WaterBody.tscn" id="9_water"] [ext_resource type="PackedScene" path="res://world/jajce/WaterfallBody.tscn" id="10_waterfall"] [ext_resource type="PackedScene" path="res://world/jajce/WaterfallMist.tscn" id="11_mist"] [ext_resource type="PackedScene" path="res://world/jajce/ChimneySmoke.tscn" id="12_smoke"] [ext_resource type="Script" path="res://world/jajce/day_night_cycle.gd" id="13_daynight"] [ext_resource type="PackedScene" path="res://world/storage/StorageNode.tscn" id="14_storage"] [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"] [ext_resource type="PackedScene" path="res://addons/terrain_3d/extras/particle_example/Terrain3DParticles.tscn" id="19_terrain_particles"] [ext_resource type="Material" path="res://world/jajce/materials/cozy_grass_material.tres" id="20_grass_material"] [ext_resource type="Script" path="res://world/jajce/GrassInteractionController.gd" id="21_grass_controller"] [ext_resource type="PackedScene" path="res://assets/foliage/tree.glb" id="22_conifer"] [ext_resource type="PackedScene" path="res://assets/foliage/tree-high.glb" id="23_conifer_high"] [ext_resource type="PackedScene" path="res://world/jajce/CozyButterfly.tscn" id="24_butterfly"] [ext_resource type="Material" path="res://world/jajce/materials/cozy_grass_process_material.tres" id="25_grass_process"] [ext_resource type="PackedScene" path="res://world/jajce/RiverbankResourceCluster.tscn" id="26_resource_cluster"] [ext_resource type="PackedScene" path="res://world/jajce/ForestEdgeResourceCluster.tscn" id="27_forest_cluster"] [ext_resource type="PackedScene" path="res://world/animals/goat/cozy_goat.tscn" id="28_goat"] [ext_resource type="PackedScene" path="res://world/animals/goat/dunja_habitat.tscn" id="29_habitat"] [ext_resource type="PackedScene" path="res://world/animals/goat/zora_shelter.tscn" id="30_zora_shelter"] [sub_resource type="Terrain3DMaterial" id="Terrain3DMaterial_jajce"] _shader_parameters = { "auto_base_texture": 0, "auto_overlay_texture": 1, "auto_slope": 0.62, "blend_sharpness": 0.88, "enable_macro_variation": true, "macro_variation1": Color(0.78, 0.9, 0.42, 1), "macro_variation2": Color(0.55, 0.75, 0.38, 1), "macro_variation_slope": 0.48 } world_background = 0 auto_shader = true [sub_resource type="StandardMaterial3D" id="Material_path_readability"] albedo_color = Color(0.52, 0.39, 0.24, 1) roughness = 0.95 [sub_resource type="BoxMesh" id="Mesh_path_readability"] material = SubResource("Material_path_readability") size = Vector3(1, 0.06, 1) [sub_resource type="StandardMaterial3D" id="Material_landmark_banner"] albedo_color = Color(0.68, 0.12, 0.1, 1) roughness = 0.72 [sub_resource type="StandardMaterial3D" id="Material_site_canvas"] albedo_color = Color(0.82, 0.68, 0.38, 1) roughness = 0.88 [sub_resource type="StandardMaterial3D" id="Material_site_dark_wood"] albedo_color = Color(0.24, 0.13, 0.07, 1) roughness = 0.82 [sub_resource type="StandardMaterial3D" id="Material_site_book"] albedo_color = Color(0.37, 0.18, 0.62, 1) roughness = 0.74 [sub_resource type="BoxMesh" id="Mesh_landmark_banner"] material = SubResource("Material_landmark_banner") size = Vector3(0.12, 1.7, 1.0) [sub_resource type="CylinderMesh" id="Mesh_site_pole"] material = SubResource("Material_site_dark_wood") top_radius = 0.06 bottom_radius = 0.07 height = 2.2 [sub_resource type="BoxMesh" id="Mesh_site_sign"] material = SubResource("Material_site_canvas") size = Vector3(1.0, 0.08, 0.5) [sub_resource type="BoxMesh" id="Mesh_site_sack"] 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) [sub_resource type="BoxMesh" id="Mesh_rest_canopy"] material = SubResource("Material_site_canvas") size = Vector3(2.9, 0.08, 1.4) [sub_resource type="ProceduralSkyMaterial" id="SkyMaterial_jajce"] resource_local_to_scene = true sky_top_color = Color(0.28, 0.52, 0.72, 1) sky_horizon_color = Color(0.88, 0.74, 0.52, 1) ground_bottom_color = Color(0.18, 0.24, 0.14, 1) ground_horizon_color = Color(0.68, 0.6, 0.44, 1) sun_angle_max = 18.0 [sub_resource type="Sky" id="Sky_jajce"] resource_local_to_scene = true sky_material = SubResource("SkyMaterial_jajce") [sub_resource type="Environment" id="Environment_greybox"] resource_local_to_scene = true background_mode = 2 sky = SubResource("Sky_jajce") background_energy_multiplier = 0.9 ambient_light_source = 3 ambient_light_color = Color(0.95, 0.9, 0.76, 1) ambient_light_energy = 0.75 reflected_light_source = 2 tonemap_mode = 2 glow_enabled = true glow_normalized = true glow_intensity = 0.5 glow_strength = 0.9 glow_bloom = 0.12 fog_enabled = true fog_light_color = Color(0.88, 0.84, 0.7, 1) fog_light_energy = 0.78 fog_density = 0.002 fog_height = -2.0 fog_height_density = 0.08 fog_aerial_perspective = 0.35 fog_sky_affect = 0.28 volumetric_fog_enabled = false volumetric_fog_density = 0.0035 volumetric_fog_albedo = Color(0.82, 0.9, 0.82, 1) volumetric_fog_emission = Color(0.06, 0.09, 0.07, 1) volumetric_fog_emission_energy = 0.12 volumetric_fog_length = 96.0 volumetric_fog_detail_spread = 1.6 adjustment_enabled = true adjustment_brightness = 1.08 adjustment_contrast = 1.04 adjustment_saturation = 1.08 [sub_resource type="StandardMaterial3D" id="Material_guard"] albedo_color = Color(0.55, 0.45, 0.35, 1) roughness = 0.8 [sub_resource type="StandardMaterial3D" id="Material_study"] albedo_color = Color(0.45, 0.35, 0.22, 1) roughness = 0.82 [sub_resource type="StandardMaterial3D" id="Material_rest"] albedo_color = Color(0.35, 0.28, 0.22, 1) roughness = 0.88 [sub_resource type="CylinderMesh" id="Mesh_guard_post"] material = SubResource("Material_guard") top_radius = 0.35 bottom_radius = 0.4 height = 2.5 [sub_resource type="BoxMesh" id="Mesh_study_desk"] material = SubResource("Material_study") size = Vector3(2.0, 0.25, 1.2) [sub_resource type="BoxMesh" id="Mesh_rest_bench"] material = SubResource("Material_rest") size = Vector3(2.8, 0.3, 0.9) [node name="JajceWorld" type="Node3D"] script = ExtResource("3_world") [node name="NavigationRegion3D" type="NavigationRegion3D" parent="."] navigation_mesh = ExtResource("16_nav") [node name="TerrainRoot" type="Node3D" parent="."] [node name="Terrain3D" type="Terrain3D" parent="TerrainRoot"] data_directory = "res://terrain/jajce/data" material = SubResource("Terrain3DMaterial_jajce") assets = ExtResource("1_assets") collision_mask = 3 collision_mode = 1 top_level = true [node name="CozyGrassField" parent="TerrainRoot/Terrain3D" instance=ExtResource("19_terrain_particles")] instance_spacing = 0.703125 cell_width = 24.0 grid_width = 3 rows = 34 amount = 1156 process_fixed_fps = 24 process_material = ExtResource("25_grass_process") shadow_mode = 0 mesh_material_override = ExtResource("20_grass_material") min_draw_distance = 36.0 particle_count = 10404 [node name="GrassInteractionController" type="Node" parent="TerrainRoot"] script = ExtResource("21_grass_controller") grass_material = ExtResource("20_grass_material") [node name="FortressBlockout" type="Node3D" parent="."] position = Vector3(-25, 7, 9) [node name="Keep" parent="FortressBlockout" instance=ExtResource("5_fortress")] scale = Vector3(1.06, 1.06, 1.06) [node name="WaterRoot" type="Node3D" parent="."] [node name="RiverSurface" parent="WaterRoot" instance=ExtResource("9_water")] [node name="WaterfallBody" parent="WaterRoot" instance=ExtResource("10_waterfall")] [node name="WaterfallMist" parent="WaterRoot" instance=ExtResource("11_mist")] [node name="VillageRoot" type="Node3D" parent="."] [node name="House_01" parent="VillageRoot" instance=ExtResource("6_house")] position = Vector3(-15, 2, 7) rotation_degrees = Vector3(0, 8, 0) [node name="Smoke" parent="VillageRoot/House_01" instance=ExtResource("12_smoke")] position = Vector3(0, 4.5, 0) [node name="House_02" parent="VillageRoot" instance=ExtResource("6_house")] position = Vector3(-8, 2, 2) rotation_degrees = Vector3(0, -12, 0) scale = Vector3(0.92, 0.92, 0.92) [node name="Smoke" parent="VillageRoot/House_02" instance=ExtResource("12_smoke")] position = Vector3(0, 4.5, 0) [node name="House_03" parent="VillageRoot" instance=ExtResource("6_house")] position = Vector3(-15, 2, -4) rotation_degrees = Vector3(0, 18, 0) scale = Vector3(0.88, 0.88, 0.88) [node name="Smoke" parent="VillageRoot/House_03" instance=ExtResource("12_smoke")] position = Vector3(0, 4.5, 0) [node name="House_04" parent="VillageRoot" instance=ExtResource("6_house")] position = Vector3(-19, 0, 15) rotation_degrees = Vector3(0, -19, 0) scale = Vector3(0.82, 0.82, 0.82) [node name="Smoke" parent="VillageRoot/House_04" instance=ExtResource("12_smoke")] position = Vector3(0, 4.5, 0) [node name="House_05" parent="VillageRoot" instance=ExtResource("6_house")] position = Vector3(-10, 0, 13) rotation_degrees = Vector3(0, 15, 0) scale = Vector3(0.76, 0.76, 0.76) [node name="Smoke" parent="VillageRoot/House_05" instance=ExtResource("12_smoke")] position = Vector3(0, 4.5, 0) [node name="House_06" parent="VillageRoot" instance=ExtResource("6_house")] position = Vector3(-7, 0, -13) rotation_degrees = Vector3(0, 31, 0) scale = Vector3(0.9, 0.9, 0.9) [node name="House_07" parent="VillageRoot" instance=ExtResource("6_house")] position = Vector3(2, 0, 12) rotation_degrees = Vector3(0, -24, 0) scale = Vector3(0.8, 0.8, 0.8) [node name="House_08" parent="VillageRoot" instance=ExtResource("6_house")] position = Vector3(-22, 0, -9) rotation_degrees = Vector3(0, 36, 0) scale = Vector3(0.78, 0.78, 0.78) [node name="Mill" parent="VillageRoot" instance=ExtResource("7_mill")] position = Vector3(19, 2, 7) [node name="Bridge" parent="VillageRoot" instance=ExtResource("8_bridge")] position = Vector3(25, 0.5, 0) [node name="Path_Village_Spine" type="MeshInstance3D" parent="VillageRoot"] position = Vector3(-3, 0.04, -1) rotation_degrees = Vector3(0, 20, 0) scale = Vector3(1.25, 1, 13) cast_shadow = 0 mesh = SubResource("Mesh_path_readability") [node name="Path_Pantry_Worksites" type="MeshInstance3D" parent="VillageRoot"] position = Vector3(-2, 0.04, -7.5) rotation_degrees = Vector3(0, 82, 0) scale = Vector3(1.15, 1, 8) cast_shadow = 0 mesh = SubResource("Mesh_path_readability") [node name="Path_River_Bridge" type="MeshInstance3D" parent="VillageRoot"] position = Vector3(12, 0.04, 3.5) rotation_degrees = Vector3(0, 72, 0) scale = Vector3(1.35, 1, 18) cast_shadow = 0 mesh = SubResource("Mesh_path_readability") [node name="Path_Forest_Edge" type="MeshInstance3D" parent="VillageRoot"] position = Vector3(4, 0.04, -9) rotation_degrees = Vector3(0, -42, 0) scale = Vector3(1.1, 1, 9) cast_shadow = 0 mesh = SubResource("Mesh_path_readability") [node name="FoliageRoot" type="Node3D" parent="."] [node name="Tree_West_01" parent="FoliageRoot" instance=ExtResource("4_tree")] position = Vector3(-33, 0, -15) scale = Vector3(1.25, 1.25, 1.25) [node name="Tree_West_02" parent="FoliageRoot" instance=ExtResource("4_tree")] position = Vector3(-29, 0, -21) scale = Vector3(0.9, 0.9, 0.9) [node name="Tree_West_03" parent="FoliageRoot" instance=ExtResource("4_tree")] position = Vector3(-38, 0, 2) scale = Vector3(1.4, 1.4, 1.4) [node name="Tree_North_01" parent="FoliageRoot" instance=ExtResource("4_tree")] position = Vector3(-2, 0, 25) [node name="Tree_North_02" parent="FoliageRoot" instance=ExtResource("4_tree")] position = Vector3(7, 0, 28) scale = Vector3(1.2, 1.2, 1.2) [node name="Tree_North_03" parent="FoliageRoot" instance=ExtResource("4_tree")] position = Vector3(15, 0, 24) scale = Vector3(0.85, 0.85, 0.85) [node name="Tree_River_01" parent="FoliageRoot" instance=ExtResource("4_tree")] position = Vector3(19, 0, 18) scale = Vector3(0.9, 0.9, 0.9) [node name="Conifer_Citadel_01" parent="FoliageRoot" instance=ExtResource("23_conifer_high")] position = Vector3(-39, 0, 13) rotation_degrees = Vector3(0, 18, 0) scale = Vector3(2.4, 2.4, 2.4) [node name="Conifer_Citadel_02" parent="FoliageRoot" instance=ExtResource("22_conifer")] position = Vector3(-34, 0, 22) rotation_degrees = Vector3(0, -35, 0) scale = Vector3(2.8, 2.8, 2.8) [node name="Conifer_Citadel_03" parent="FoliageRoot" instance=ExtResource("23_conifer_high")] position = Vector3(-43, 0, 3) rotation_degrees = Vector3(0, 62, 0) scale = Vector3(2.15, 2.15, 2.15) [node name="Conifer_Falls_01" parent="FoliageRoot" instance=ExtResource("23_conifer_high")] position = Vector3(36, 0, -17) rotation_degrees = Vector3(0, -18, 0) scale = Vector3(2.35, 2.35, 2.35) [node name="Conifer_Falls_02" parent="FoliageRoot" instance=ExtResource("22_conifer")] position = Vector3(38, 0, -8) rotation_degrees = Vector3(0, 28, 0) scale = Vector3(2.7, 2.7, 2.7) [node name="Conifer_South_01" parent="FoliageRoot" instance=ExtResource("23_conifer_high")] position = Vector3(-21, 0, -29) rotation_degrees = Vector3(0, 44, 0) scale = Vector3(2.25, 2.25, 2.25) [node name="Conifer_South_02" parent="FoliageRoot" instance=ExtResource("22_conifer")] position = Vector3(8, 0, -31) rotation_degrees = Vector3(0, -20, 0) scale = Vector3(2.65, 2.65, 2.65) [node name="WildlifeRoot" type="Node3D" parent="."] [node name="Butterfly_Meadow_01" parent="WildlifeRoot" instance=ExtResource("24_butterfly")] position = Vector3(-3, 3.1, -5) phase = 0.4 [node name="Butterfly_Houses_01" parent="WildlifeRoot" instance=ExtResource("24_butterfly")] position = Vector3(-11, 4.2, 8) scale = Vector3(0.9, 0.9, 0.9) phase = 2.3 [node name="Butterfly_River_01" parent="WildlifeRoot" instance=ExtResource("24_butterfly")] position = Vector3(10, 3.6, 5) scale = Vector3(1.12, 1.12, 1.12) phase = 4.4 [node name="WorldObjects" type="Node3D" parent="."] [node name="Animals" type="Node3D" parent="WorldObjects"] [node name="Dunja" parent="WorldObjects/Animals" instance=ExtResource("28_goat")] position = Vector3(0, 0, -15.5) rotation_degrees = Vector3(0, 150, 0) [node name="Zora" parent="WorldObjects/Animals" instance=ExtResource("28_goat")] position = Vector3(-8, 0, -15.5) rotation_degrees = Vector3(0, 210, 0) scale = Vector3(0.92, 0.92, 0.92) animal_id = &"goat_zora" display_name = "Zora" initial_hunger = 42.0 initial_routine_site_id = &"zora_shelter" initial_next_routine_tick = 12 [node name="AnimalHabitats" type="Node3D" parent="WorldObjects"] [node name="DunjaHabitat" parent="WorldObjects/AnimalHabitats" instance=ExtResource("29_habitat")] position = Vector3(0, 0, -17) [node name="ZoraShelter" parent="WorldObjects/AnimalHabitats" instance=ExtResource("30_zora_shelter")] position = Vector3(-8, 0, -17) [node name="ResourceNodes" type="Node3D" parent="WorldObjects"] [node name="BerryBush_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(-6, 0, -8) node_id = &"berry_bush_01" regrow_rate = 0.02 safety_risk = 0.05 comfort_distance = 18.0 discovery_priority = 1.0 [node name="BerryBush_02" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(-10, 0, -4) node_id = &"berry_bush_02" initial_amount = 8.0 regrow_rate = 0.02 safety_risk = 0.08 comfort_distance = 20.0 discovery_priority = 0.5 [node name="BerryPatch_River_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(12, 0, 10) node_id = &"berry_patch_river_01" initial_amount = 6.0 yield_per_action = 1.5 regrow_rate = 0.02 safety_risk = 0.18 comfort_distance = 22.0 discovery_priority = 0.25 [node name="AnimalCamp_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(-12, 0, 8) node_id = &"animal_camp_01" initial_amount = 5.0 yield_per_action = 1.0 safety_risk = 0.35 comfort_distance = 24.0 discovery_priority = -0.5 [node name="BerryPatch_South_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(-18, 0, -6) node_id = &"berry_patch_south_01" initial_amount = 7.0 yield_per_action = 1.5 safety_risk = 0.12 comfort_distance = 24.0 discovery_priority = 0.1 [node name="AnimalCamp_River_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(20, 0, 16) node_id = &"animal_camp_river_01" initial_amount = 4.0 yield_per_action = 1.0 safety_risk = 0.45 comfort_distance = 30.0 discovery_priority = -0.75 [node name="Tree_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(6, 0, -8) node_id = &"tree_01" action_id = &"gather_wood" resource_id = &"wood" initial_amount = 15.0 yield_per_action = 3.0 safety_risk = 0.12 comfort_distance = 24.0 [node name="Tree_02" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(10, 0, -4) node_id = &"tree_02" action_id = &"gather_wood" resource_id = &"wood" initial_amount = 12.0 yield_per_action = 3.0 safety_risk = 0.16 comfort_distance = 26.0 [node name="Tree_North_Outskirts_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(6, 0, 12) node_id = &"tree_north_outskirts_01" action_id = &"gather_wood" resource_id = &"wood" initial_amount = 10.0 yield_per_action = 2.0 safety_risk = 0.2 comfort_distance = 28.0 discovery_priority = 0.25 [node name="Tree_South_Edge_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(-12, 0, -12) node_id = &"tree_south_edge_01" action_id = &"gather_wood" resource_id = &"wood" initial_amount = 9.0 yield_per_action = 2.0 safety_risk = 0.24 comfort_distance = 26.0 [node name="WoodPile_Village_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(5, 0, -13) node_id = &"wood_pile_village_01" action_id = &"gather_wood" resource_id = &"wood" initial_amount = 6.0 yield_per_action = 1.5 safety_risk = 0.02 comfort_distance = 16.0 discovery_priority = 0.75 [node name="FarmCrop_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(-11, 0, 3) node_id = &"farm_crop_01" initial_amount = 8.0 yield_per_action = 2.0 safety_risk = 0.02 comfort_distance = 16.0 discovery_priority = 0.85 [node name="WoodPile_Mill_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(21, 0, 1) node_id = &"wood_pile_mill_01" action_id = &"gather_wood" resource_id = &"wood" initial_amount = 4.0 yield_per_action = 1.0 safety_risk = 0.03 comfort_distance = 14.0 discovery_priority = 0.8 [node name="BerryPatch_Mill_01" parent="WorldObjects/ResourceNodes" instance=ExtResource("2_resource")] position = Vector3(14, 0, 3) node_id = &"berry_patch_mill_01" initial_amount = 5.0 yield_per_action = 1.5 safety_risk = 0.1 comfort_distance = 20.0 discovery_priority = 0.45 [node name="ResourceClusters" type="Node3D" parent="WorldObjects"] [node name="RiverbankResourceCluster" parent="WorldObjects/ResourceClusters" instance=ExtResource("26_resource_cluster")] position = Vector3(33, 0, 7) [node name="ForestEdgeResourceCluster" parent="WorldObjects/ResourceClusters" instance=ExtResource("27_forest_cluster")] position = Vector3(-8, 0, -27) [node name="StorageSites" type="Node3D" parent="WorldObjects"] [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" display_name = "Village Woodpile" [node name="PantrySignPole" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry"] position = Vector3(-1.05, 1.1, 1.25) mesh = SubResource("Mesh_site_pole") [node name="PantrySign" type="MeshInstance3D" parent="WorldObjects/StorageSites/VillagePantry"] position = Vector3(-1.05, 1.85, 1.25) rotation_degrees = Vector3(0, 90, 0) mesh = SubResource("Mesh_site_sign") [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="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"] position = Vector3(0, 0, 8) script = ExtResource("15_activity") site_id = &"guard_post" action_id = &"patrol" display_name = "Guard Post" capacity = 2 [node name="GuardTowerVisual" type="MeshInstance3D" parent="WorldObjects/ActivitySites/GuardPost"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.25, 0) mesh = SubResource("Mesh_guard_post") [node name="GuardPennantPole" type="MeshInstance3D" parent="WorldObjects/ActivitySites/GuardPost"] position = Vector3(0.45, 2.35, 0) mesh = SubResource("Mesh_site_pole") [node name="GuardPennant" type="MeshInstance3D" parent="WorldObjects/ActivitySites/GuardPost"] position = Vector3(0.45, 2.85, 0.48) scale = Vector3(0.8, 0.55, 0.65) mesh = SubResource("Mesh_landmark_banner") [node name="InteractionPoint" type="Marker3D" parent="WorldObjects/ActivitySites/GuardPost"] [node name="DebugLabel" type="Label3D" parent="WorldObjects/ActivitySites/GuardPost"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.8, 0) billboard = 1 no_depth_test = true font_size = 18 outline_modulate = Color(0, 0, 0, 1) outline_size = 4 text = "Guard Post" [node name="StudyDesk" type="Node3D" parent="WorldObjects/ActivitySites"] position = Vector3(-6, 0, 6) script = ExtResource("15_activity") site_id = &"study_desk" action_id = &"study" display_name = "Study Desk" [node name="StudyDeskVisual" type="MeshInstance3D" parent="WorldObjects/ActivitySites/StudyDesk"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.125, 0) mesh = SubResource("Mesh_study_desk") [node name="OpenBook_A" type="MeshInstance3D" parent="WorldObjects/ActivitySites/StudyDesk"] position = Vector3(-0.25, 0.32, 0) rotation_degrees = Vector3(0, 14, 0) mesh = SubResource("Mesh_study_book") [node name="OpenBook_B" type="MeshInstance3D" parent="WorldObjects/ActivitySites/StudyDesk"] position = Vector3(0.22, 0.32, 0.04) rotation_degrees = Vector3(0, -14, 0) mesh = SubResource("Mesh_study_book") [node name="InteractionPoint" type="Marker3D" parent="WorldObjects/ActivitySites/StudyDesk"] [node name="DebugLabel" type="Label3D" parent="WorldObjects/ActivitySites/StudyDesk"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0) billboard = 1 no_depth_test = true font_size = 18 outline_modulate = Color(0, 0, 0, 1) outline_size = 4 text = "Study Desk" [node name="RestBench" type="Node3D" parent="WorldObjects/ActivitySites"] position = Vector3(4, 0, 5) script = ExtResource("15_activity") site_id = &"rest_bench" action_id = &"rest" display_name = "Rest Bench" capacity = 2 [node name="RestBenchVisual" type="MeshInstance3D" parent="WorldObjects/ActivitySites/RestBench"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.15, 0) mesh = SubResource("Mesh_rest_bench") [node name="RestCanopy" type="MeshInstance3D" parent="WorldObjects/ActivitySites/RestBench"] position = Vector3(0, 1.35, 0) rotation_degrees = Vector3(0, 0, -6) mesh = SubResource("Mesh_rest_canopy") [node name="RestCanopyPost_A" type="MeshInstance3D" parent="WorldObjects/ActivitySites/RestBench"] position = Vector3(-1.25, 0.72, -0.52) scale = Vector3(0.8, 0.8, 0.8) mesh = SubResource("Mesh_site_pole") [node name="RestCanopyPost_B" type="MeshInstance3D" parent="WorldObjects/ActivitySites/RestBench"] position = Vector3(1.25, 0.72, 0.52) scale = Vector3(0.8, 0.8, 0.8) mesh = SubResource("Mesh_site_pole") [node name="InteractionPoint" type="Marker3D" parent="WorldObjects/ActivitySites/RestBench"] [node name="DebugLabel" type="Label3D" parent="WorldObjects/ActivitySites/RestBench"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0) billboard = 1 no_depth_test = true font_size = 18 outline_modulate = Color(0, 0, 0, 1) outline_size = 4 text = "Rest Bench" [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] rotation_degrees = Vector3(-55, -35, 0) light_color = Color(1, 0.87, 0.72, 1) light_energy = 1.45 shadow_enabled = true directional_shadow_max_distance = 180.0 [node name="AtmosphereRoot" type="Node3D" parent="."] [node name="WindGustField" parent="AtmosphereRoot" instance=ExtResource("17_wind_gust")] position = Vector3(-2, 0, 0) [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_greybox") [node name="DayNightCycle" type="Node" parent="." node_paths=PackedStringArray("directional_light", "world_environment")] script = ExtResource("13_daynight") directional_light = NodePath("../DirectionalLight3D") world_environment = NodePath("../WorldEnvironment")