[gd_scene load_steps=71 format=2]

[ext_resource path="res://world.gd" type="Script" id=1]
[ext_resource path="res://terrain.gdshader" type="Shader" id=2]
[ext_resource path="res://road/road_elements.gltf" type="PackedScene" id=3]
[ext_resource path="res://camera/camera_pos.tscn" type="PackedScene" id=4]
[ext_resource path="res://scenes/waiting.gd" type="Script" id=5]
[ext_resource path="res://camera/fps_cam_pos.tscn" type="PackedScene" id=6]
[ext_resource path="res://terrain-objects/terrain-trees_t1_l0.mesh" type="ArrayMesh" id=7]
[ext_resource path="res://terrain-objects/terrain-trees_t1_l1.mesh" type="ArrayMesh" id=8]
[ext_resource path="res://terrain-objects/terrain-trees_t1_l3.mesh" type="ArrayMesh" id=9]
[ext_resource path="res://terrain-objects/terrain-trees_t2_l1.mesh" type="ArrayMesh" id=10]
[ext_resource path="res://terrain-objects/terrain-trees_t2_l0.mesh" type="ArrayMesh" id=11]
[ext_resource path="res://terrain-objects/terrain-trees_t3_l0.mesh" type="ArrayMesh" id=12]
[ext_resource path="res://terrain-objects/terrain-trees_t3_l1.mesh" type="ArrayMesh" id=13]
[ext_resource path="res://terrain-objects/terrain-trees_t3_l3.mesh" type="ArrayMesh" id=14]
[ext_resource path="res://terrain-objects/terrain-bushes_p1_l0.mesh" type="ArrayMesh" id=15]
[ext_resource path="res://terrain-objects/terrain-bushes_p2_l0.mesh" type="ArrayMesh" id=16]
[ext_resource path="res://terrain-objects/terrain-bushes_p3_l0.mesh" type="ArrayMesh" id=17]
[ext_resource path="res://terrain-objects/terrain-bushes_p4_l0.mesh" type="ArrayMesh" id=18]
[ext_resource path="res://terrain-objects/terrain-bushes_p5_l0.mesh" type="ArrayMesh" id=19]
[ext_resource path="res://terrain-objects/terrain-grass_f1_l0.mesh" type="ArrayMesh" id=20]
[ext_resource path="res://terrain-objects/terrain-grass_f1_l1.mesh" type="ArrayMesh" id=21]
[ext_resource path="res://terrain-objects/terrain-grass_g1_l1.mesh" type="ArrayMesh" id=22]
[ext_resource path="res://terrain-objects/terrain-grass_g1_l0.mesh" type="ArrayMesh" id=23]
[ext_resource path="res://terrain-objects/terrain-grass_g1_l2.mesh" type="ArrayMesh" id=24]
[ext_resource path="res://terrain-objects/terrain-grass_g2_l1.mesh" type="ArrayMesh" id=25]
[ext_resource path="res://terrain-objects/terrain-grass_g2_l0.mesh" type="ArrayMesh" id=26]
[ext_resource path="res://terrain-objects/terrain-grass_g2_l2.mesh" type="ArrayMesh" id=27]
[ext_resource path="res://terrain-objects/terrain-grass_g3_l1.mesh" type="ArrayMesh" id=28]
[ext_resource path="res://terrain-objects/terrain-grass_g3_l0.mesh" type="ArrayMesh" id=29]

[sub_resource type="WorldGenerator" id=7]
iso_scale = 0.01

[sub_resource type="VoxelMesherTransvoxel" id=4]

[sub_resource type="Gradient" id=12]
colors = PoolColorArray( 0.27451, 0.27451, 0.27451, 1, 0.541176, 0.541176, 0.541176, 1 )

[sub_resource type="GradientTexture" id=13]
gradient = SubResource( 12 )
width = 64

[sub_resource type="Gradient" id=10]
offsets = PoolRealArray( 0, 0.473458 )
colors = PoolColorArray( 0.101961, 0.0588235, 0.0588235, 1, 0.188235, 0.109804, 0.109804, 1 )

[sub_resource type="GradientTexture" id=11]
gradient = SubResource( 10 )
width = 64

[sub_resource type="ShaderMaterial" id=6]
shader = ExtResource( 2 )
shader_param/u_transition_mask = null
shader_param/u_texture_top = SubResource( 11 )
shader_param/u_texture_sides = SubResource( 13 )

[sub_resource type="CylinderShape" id=1]
radius = 0.3
height = 2.25014

[sub_resource type="SphereShape" id=2]
radius = 1.4

[sub_resource type="TreeInstanceGenerator" id=19]
step = 128

[sub_resource type="VoxelInstanceLibraryItem" id=17]
name = "tree1"
lod_index = 2
generator = SubResource( 19 )
mesh = ExtResource( 7 )
mesh_lod1 = ExtResource( 8 )
mesh_lod2 = ExtResource( 8 )
mesh_lod3 = ExtResource( 9 )
collision_shapes = [ SubResource( 1 ), Transform( 1, 0, 0, 0, 0.995445, -0.0953419, 0, 0.0953419, 0.995445, 0, 1.0768, 0 ), SubResource( 2 ), Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.59792, 1.42922 ), SubResource( 2 ), Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.74276, -1.29866 ), SubResource( 2 ), Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0707073, 2.96499, 0.0801156 ) ]

[sub_resource type="TreeInstanceGenerator" id=43]
step = 1

[sub_resource type="VoxelInstanceLibraryItem" id=44]
name = "grass1"
generator = SubResource( 43 )
mesh = ExtResource( 23 )
mesh_lod1 = ExtResource( 22 )
mesh_lod2 = ExtResource( 24 )
mesh_lod3 = ExtResource( 24 )

[sub_resource type="TreeInstanceGenerator" id=45]
item = 1

[sub_resource type="VoxelInstanceLibraryItem" id=46]
name = "grass2"
generator = SubResource( 45 )
mesh = ExtResource( 26 )
mesh_lod1 = ExtResource( 25 )
mesh_lod2 = ExtResource( 27 )
mesh_lod3 = ExtResource( 27 )

[sub_resource type="TreeInstanceGenerator" id=47]
step = 1

[sub_resource type="VoxelInstanceLibraryItem" id=48]
name = "grass3"
generator = SubResource( 47 )
mesh = ExtResource( 29 )
mesh_lod1 = ExtResource( 28 )
mesh_lod2 = ExtResource( 28 )
mesh_lod3 = ExtResource( 28 )

[sub_resource type="CylinderShape" id=21]
radius = 0.3
height = 2.25014

[sub_resource type="SphereShape" id=22]
radius = 1.4

[sub_resource type="TreeInstanceGenerator" id=25]
step = 128
item = 64

[sub_resource type="VoxelInstanceLibraryItem" id=24]
name = "tree2"
lod_index = 1
generator = SubResource( 25 )
mesh = ExtResource( 11 )
mesh_lod1 = ExtResource( 10 )
mesh_lod2 = ExtResource( 10 )
mesh_lod3 = ExtResource( 10 )
collision_shapes = [ SubResource( 21 ), Transform( 1, 0, 0, 0, 0.995445, -0.0953419, 0, 0.0953419, 0.995445, 0, 1.0768, 0 ), SubResource( 22 ), Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.59792, 1.42922 ), SubResource( 22 ), Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.74276, -1.29866 ), SubResource( 22 ), Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0707073, 2.96499, 0.0801156 ) ]

[sub_resource type="CylinderShape" id=26]
radius = 0.3
height = 2.25014

[sub_resource type="SphereShape" id=27]
radius = 1.4

[sub_resource type="TreeInstanceGenerator" id=30]
step = 128
item = 96

[sub_resource type="VoxelInstanceLibraryItem" id=29]
lod_index = 1
generator = SubResource( 30 )
mesh = ExtResource( 12 )
mesh_lod1 = ExtResource( 13 )
mesh_lod2 = ExtResource( 14 )
mesh_lod3 = ExtResource( 14 )
collision_shapes = [ SubResource( 26 ), Transform( 1, 0, 0, 0, 0.995445, -0.0953419, 0, 0.0953419, 0.995445, 0, 1.0768, 0 ), SubResource( 27 ), Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.59792, 1.42922 ), SubResource( 27 ), Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.74276, -1.29866 ), SubResource( 27 ), Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0707073, 2.96499, 0.0801156 ) ]

[sub_resource type="TreeInstanceGenerator" id=31]
step = 16
item = 8

[sub_resource type="VoxelInstanceLibraryItem" id=32]
name = "bush1"
lod_index = 1
generator = SubResource( 31 )
mesh = ExtResource( 15 )
mesh_lod1 = ExtResource( 15 )
mesh_lod2 = ExtResource( 15 )
mesh_lod3 = ExtResource( 15 )

[sub_resource type="TreeInstanceGenerator" id=33]
step = 16
item = 9

[sub_resource type="VoxelInstanceLibraryItem" id=34]
name = "bush2"
lod_index = 1
generator = SubResource( 33 )
mesh = ExtResource( 16 )
mesh_lod1 = ExtResource( 16 )
mesh_lod2 = ExtResource( 16 )
mesh_lod3 = ExtResource( 16 )

[sub_resource type="TreeInstanceGenerator" id=35]
step = 16
item = 10

[sub_resource type="VoxelInstanceLibraryItem" id=36]
lod_index = 2
generator = SubResource( 35 )
mesh = ExtResource( 17 )
mesh_lod1 = ExtResource( 17 )
mesh_lod2 = ExtResource( 17 )
mesh_lod3 = ExtResource( 17 )

[sub_resource type="TreeInstanceGenerator" id=37]
step = 16
item = 11

[sub_resource type="VoxelInstanceLibraryItem" id=38]
name = "bush4"
lod_index = 1
generator = SubResource( 37 )
mesh = ExtResource( 18 )
mesh_lod1 = ExtResource( 18 )
mesh_lod2 = ExtResource( 18 )
mesh_lod3 = ExtResource( 18 )

[sub_resource type="TreeInstanceGenerator" id=39]
step = 16
item = 12

[sub_resource type="VoxelInstanceLibraryItem" id=40]
name = "bush5"
lod_index = 1
generator = SubResource( 39 )
mesh = ExtResource( 19 )
mesh_lod1 = ExtResource( 19 )
mesh_lod2 = ExtResource( 19 )
mesh_lod3 = ExtResource( 19 )

[sub_resource type="TreeInstanceGenerator" id=41]
step = 64
item = 16

[sub_resource type="VoxelInstanceLibraryItem" id=42]
name = "flower1"
generator = SubResource( 41 )
mesh = ExtResource( 20 )
mesh_lod1 = ExtResource( 21 )
mesh_lod2 = ExtResource( 21 )
mesh_lod3 = ExtResource( 21 )

[sub_resource type="VoxelInstanceLibrary" id=18]
item_1 = SubResource( 17 )
item_2 = SubResource( 24 )
item_3 = SubResource( 29 )
item_4 = SubResource( 32 )
item_5 = SubResource( 34 )
item_6 = SubResource( 36 )
item_7 = SubResource( 38 )
item_8 = SubResource( 40 )
item_9 = SubResource( 42 )
item_10 = SubResource( 44 )
item_11 = SubResource( 46 )
item_12 = SubResource( 48 )

[sub_resource type="Curve" id=20]
min_value = -300.0
max_value = 300.0
bake_resolution = 200
_data = [ Vector2( 0, -259.615 ), 0.0, 0.0, 0, 0, Vector2( 0.291262, -300 ), 0.0, 0.0, 0, 0, Vector2( 0.339806, -63.4615 ), 0.0, 0.0, 0, 0, Vector2( 0.466019, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.466019, 11.5385 ), 0.0, 0.0, 0, 0, Vector2( 0.723301, 75 ), 311.264, 311.264, 0, 0, Vector2( 0.902913, 184.615 ), 976.237, 976.237, 0, 0, Vector2( 0.975728, 300 ), 0.0, 0.0, 0, 0 ]

[sub_resource type="FastNoiseLite" id=8]
seed = 36800
period = 1024.0

[sub_resource type="DetourNavigationMesh" id=9]
cell_size = 0.15
cell_height = 0.15
agent_height = 1.5
agent_radius = 0.15
agent_max_climb = 0.6
region_min_size = 0.5
region_merge_size = 10.0
edge_max_length = 0.4
edge_max_error = 0.2
detail_sample_max_error = 0.5
group = "navigation"
partition_type = -1082130432
data = {
}

[node name="world" type="Spatial"]
script = ExtResource( 1 )
camera_path = NodePath("camera_pos/rot_y/rot_x/SpringArm/camera_offset/Camera")
camera_pos_path = NodePath("camera_pos")
camera_rot_y_path = NodePath("camera_pos/rot_y")
camera_rot_x_path = NodePath("camera_pos/rot_y/rot_x")
camera_offset_path = NodePath("camera_pos/rot_y/rot_x/SpringArm/camera_offset")
camera_arm_path = NodePath("camera_pos/rot_y/rot_x/SpringArm")
fps_camera_scene = ExtResource( 6 )

[node name="VoxelLodTerrain" type="VoxelLodTerrain" parent="." groups=["navigation"]]
generator = SubResource( 7 )
mesher = SubResource( 4 )
view_distance = 300
lod_count = 7
lod_distance = 60.0
lod_fade_duration = 1.0
material = SubResource( 6 )
run_stream_in_editor = false
mesh_block_size = 32

[node name="VoxelInstancer" type="VoxelInstancer" parent="VoxelLodTerrain"]
library = SubResource( 18 )

[node name="DirectionalLight" type="DirectionalLight" parent="."]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 100, 0 )
shadow_enabled = true

[node name="Camera" type="Camera" parent="."]
transform = Transform( 0.819152, 0.40558, -0.40558, 0, 0.707107, 0.707107, 0.573577, -0.579228, 0.579228, 0, 150, 0 )
far = 600.0

[node name="Roads" type="Roads" parent="."]
road_data = ExtResource( 3 )
curve = SubResource( 20 )
noise = SubResource( 8 )

[node name="camera_pos" parent="." instance=ExtResource( 4 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 150, 0 )

[node name="waiting" type="ColorRect" parent="."]
visible = false
anchor_right = 1.0
anchor_bottom = 1.0
color = Color( 0, 0, 0, 1 )
script = ExtResource( 5 )
__meta__ = {
"_edit_use_anchors_": false
}

[node name="player" type="Spatial" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 150, 0 )

[node name="DetourNavigation" type="DetourNavigation" parent="."]

[node name="DetourNavigationMeshInstance" type="DetourNavigationMeshInstance" parent="."]
navmesh = SubResource( 9 )

[node name="DetourCrowdManager" type="DetourCrowdManager" parent="."]

[node name="nav_pos" type="Spatial" parent="." groups=["navigation"]]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4e+07, 0, -4e+07 )

[node name="nav_pos2" type="Spatial" parent="." groups=["navigation"]]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4e+07, 0, 4e+07 )
