Ponte - Pali
This commit is contained in:
BIN
Assets/Meshes/Chunk/Prop/Colonnine.fbx
Normal file
BIN
Assets/Meshes/Chunk/Prop/Colonnine.fbx
Normal file
Binary file not shown.
44
Assets/Meshes/Chunk/Prop/Colonnine.fbx.import
Normal file
44
Assets/Meshes/Chunk/Prop/Colonnine.fbx.import
Normal file
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://4vtbxj03b1qp"
|
||||
path="res://.godot/imported/Colonnine.fbx-0ba854f809efa844716ff81da49deaf0.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Meshes/Chunk/Prop/Colonnine.fbx"
|
||||
dest_files=["res://.godot/imported/Colonnine.fbx-0ba854f809efa844716ff81da49deaf0.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=true
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={}
|
||||
fbx/importer=0
|
||||
fbx/allow_geometry_helper_nodes=false
|
||||
fbx/embedded_image_handling=1
|
||||
fbx/naming_version=2
|
||||
BIN
Assets/Meshes/Chunk/Prop/Colonnine_Curva.fbx
Normal file
BIN
Assets/Meshes/Chunk/Prop/Colonnine_Curva.fbx
Normal file
Binary file not shown.
44
Assets/Meshes/Chunk/Prop/Colonnine_Curva.fbx.import
Normal file
44
Assets/Meshes/Chunk/Prop/Colonnine_Curva.fbx.import
Normal file
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://0eh5tnf6io4g"
|
||||
path="res://.godot/imported/Colonnine_Curva.fbx-326080ed134a0c55816d540a05845813.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Meshes/Chunk/Prop/Colonnine_Curva.fbx"
|
||||
dest_files=["res://.godot/imported/Colonnine_Curva.fbx-326080ed134a0c55816d540a05845813.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=true
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={}
|
||||
fbx/importer=0
|
||||
fbx/allow_geometry_helper_nodes=false
|
||||
fbx/embedded_image_handling=1
|
||||
fbx/naming_version=2
|
||||
BIN
Assets/Meshes/Chunk/Prop/SottoRotaia.fbx
Normal file
BIN
Assets/Meshes/Chunk/Prop/SottoRotaia.fbx
Normal file
Binary file not shown.
44
Assets/Meshes/Chunk/Prop/SottoRotaia.fbx.import
Normal file
44
Assets/Meshes/Chunk/Prop/SottoRotaia.fbx.import
Normal file
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dieq808draswq"
|
||||
path="res://.godot/imported/SottoRotaia.fbx-c32abd14ffb164be655dbf7999241933.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Meshes/Chunk/Prop/SottoRotaia.fbx"
|
||||
dest_files=["res://.godot/imported/SottoRotaia.fbx-c32abd14ffb164be655dbf7999241933.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=true
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={}
|
||||
fbx/importer=0
|
||||
fbx/allow_geometry_helper_nodes=false
|
||||
fbx/embedded_image_handling=1
|
||||
fbx/naming_version=2
|
||||
BIN
Assets/Meshes/Chunk/Rotaie/Chunk_Rettilineo_Ponte.fbx
Normal file
BIN
Assets/Meshes/Chunk/Rotaie/Chunk_Rettilineo_Ponte.fbx
Normal file
Binary file not shown.
44
Assets/Meshes/Chunk/Rotaie/Chunk_Rettilineo_Ponte.fbx.import
Normal file
44
Assets/Meshes/Chunk/Rotaie/Chunk_Rettilineo_Ponte.fbx.import
Normal file
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://eyfm4fps8jtu"
|
||||
path="res://.godot/imported/Chunk_Rettilineo_Ponte.fbx-5683dfd712bfad33441a0e0a3657e965.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Meshes/Chunk/Rotaie/Chunk_Rettilineo_Ponte.fbx"
|
||||
dest_files=["res://.godot/imported/Chunk_Rettilineo_Ponte.fbx-5683dfd712bfad33441a0e0a3657e965.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=true
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={}
|
||||
fbx/importer=0
|
||||
fbx/allow_geometry_helper_nodes=false
|
||||
fbx/embedded_image_handling=1
|
||||
fbx/naming_version=2
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 119 KiB |
BIN
Assets/Textures/imgonline-com-ua-TextureSeamless-jSoRtFVlEv2.jpg
Normal file
BIN
Assets/Textures/imgonline-com-ua-TextureSeamless-jSoRtFVlEv2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 55 KiB |
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bkwyi5h8l8lw0"
|
||||
path.s3tc="res://.godot/imported/imgonline-com-ua-TextureSeamless-jSoRtFVlEv2.jpg-c6495bffb57f69b818f2f603223b3ee4.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Textures/imgonline-com-ua-TextureSeamless-jSoRtFVlEv2.jpg"
|
||||
dest_files=["res://.godot/imported/imgonline-com-ua-TextureSeamless-jSoRtFVlEv2.jpg-c6495bffb57f69b818f2f603223b3ee4.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
BIN
Assets/Textures/rocks2.jpg
Normal file
BIN
Assets/Textures/rocks2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 72 KiB |
41
Assets/Textures/rocks2.jpg.import
Normal file
41
Assets/Textures/rocks2.jpg.import
Normal file
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ur25wd8uhl6x"
|
||||
path.s3tc="res://.godot/imported/rocks2.jpg-8f3e60f1b67408a2b58a22f59f5480dd.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Textures/rocks2.jpg"
|
||||
dest_files=["res://.godot/imported/rocks2.jpg-8f3e60f1b67408a2b58a22f59f5480dd.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
BIN
Assets/Textures/rocks2.png
Normal file
BIN
Assets/Textures/rocks2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 149 KiB |
41
Assets/Textures/rocks2.png.import
Normal file
41
Assets/Textures/rocks2.png.import
Normal file
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cbre67ry28op2"
|
||||
path.s3tc="res://.godot/imported/rocks2.png-2ef9ffb76c33199b11f1cf93bb2726e9.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Textures/rocks2.png"
|
||||
dest_files=["res://.godot/imported/rocks2.png-2ef9ffb76c33199b11f1cf93bb2726e9.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
24
Materials/Colonine.tres
Normal file
24
Materials/Colonine.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://bo116s36xwnfm"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_1o1e1"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_1o1e1")
|
||||
shader_parameter/albedo_color = Color(0.32544088, 0.3254409, 0.32544088, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
24
Materials/Fili_noWind.tres
Normal file
24
Materials/Fili_noWind.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://bvegnw62j8h1k"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_c5jm3"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_c5jm3")
|
||||
shader_parameter/albedo_color = Color(0.12591085, 0.12591085, 0.12591082, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
24
Materials/Grass5.tres
Normal file
24
Materials/Grass5.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://dsrv87k50yvqd"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="1_ewe6r"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnlnnkjsnccmx" path="res://Assets/Textures/Leaf_Test2.png" id="2_ewe6r"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_ewe6r")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = false
|
||||
shader_parameter/base_color = Color(0.103467666, 0.34917185, 0.14285779, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("2_ewe6r")
|
||||
shader_parameter/leaves_scale = 1.0
|
||||
shader_parameter/rotation_degrees = 0.0
|
||||
shader_parameter/texture_offset = Vector2(0, 0)
|
||||
shader_parameter/opacity = 1.0
|
||||
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
|
||||
shader_parameter/height_min = 0.0
|
||||
shader_parameter/height_max = 5.0
|
||||
shader_parameter/shadow_intensity = 0.70000003325
|
||||
shader_parameter/highlight_intensity = 0.02000000095
|
||||
shader_parameter/light_steps = 10.0
|
||||
shader_parameter/random_mix = 0.138000006555
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
26
Materials/SottoRotaia.tres
Normal file
26
Materials/SottoRotaia.tres
Normal file
@@ -0,0 +1,26 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://d2h6aer57h1ye"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_v4vmh"]
|
||||
[ext_resource type="Texture2D" uid="uid://bkwyi5h8l8lw0" path="res://Assets/Textures/imgonline-com-ua-TextureSeamless-jSoRtFVlEv2.jpg" id="2_x4gqx"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_v4vmh")
|
||||
shader_parameter/albedo_color = Color(0.24495715, 0.29944825, 0.31761965, 1)
|
||||
shader_parameter/albedo_texture = ExtResource("2_x4gqx")
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(2.16, 2)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
26
Materials/SottoRotaia2.tres
Normal file
26
Materials/SottoRotaia2.tres
Normal file
@@ -0,0 +1,26 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://bqcdnwennt7m2"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_fjf20"]
|
||||
[ext_resource type="Texture2D" uid="uid://ur25wd8uhl6x" path="res://Assets/Textures/rocks2.jpg" id="2_fjf20"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_fjf20")
|
||||
shader_parameter/albedo_color = Color(0.48201752, 0.36036563, 0.20172778, 1)
|
||||
shader_parameter/albedo_texture = ExtResource("2_fjf20")
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(75, 75)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
10
Materials/fili.tres
Normal file
10
Materials/fili.tres
Normal file
@@ -0,0 +1,10 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://chs4pdi0nv1jc"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://ddwohdg6yplmd" path="res://Scenes/Fili.gdshader" id="1_d4s2v"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_d4s2v")
|
||||
shader_parameter/albedo_color = Color(0.1, 0.1, 0.1, 1)
|
||||
shader_parameter/forza_vento = 1.0
|
||||
shader_parameter/velocita_vento = 2.0
|
||||
18
Scenes/Chunk_Rotaie/Prop/colonnine.tscn
Normal file
18
Scenes/Chunk_Rotaie/Prop/colonnine.tscn
Normal file
@@ -0,0 +1,18 @@
|
||||
[gd_scene format=3 uid="uid://bniy5ii46hf75"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://4vtbxj03b1qp" path="res://Assets/Meshes/Chunk/Prop/Colonnine.fbx" id="1_m1aeh"]
|
||||
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_yor74"]
|
||||
[ext_resource type="Material" uid="uid://bo116s36xwnfm" path="res://Materials/Colonine.tres" id="3_yor74"]
|
||||
[ext_resource type="Material" uid="uid://bvegnw62j8h1k" path="res://Materials/Fili_noWind.tres" id="4_5enhm"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pg30c"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_yor74")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[node name="Colonnine" unique_id=1951538317 instance=ExtResource("1_m1aeh")]
|
||||
|
||||
[node name="Cube_033" parent="." index="0" unique_id=113433479]
|
||||
material_overlay = SubResource("ShaderMaterial_pg30c")
|
||||
surface_material_override/0 = ExtResource("3_yor74")
|
||||
surface_material_override/1 = ExtResource("4_5enhm")
|
||||
67
Scenes/Chunk_Rotaie/Prop/colonnine_curva.tscn
Normal file
67
Scenes/Chunk_Rotaie/Prop/colonnine_curva.tscn
Normal file
@@ -0,0 +1,67 @@
|
||||
[gd_scene format=3 uid="uid://ciygqehxthjbg"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://0eh5tnf6io4g" path="res://Assets/Meshes/Chunk/Prop/Colonnine_Curva.fbx" id="1_xgw5f"]
|
||||
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_kh62w"]
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="2_o8l6a"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_l2jxn"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_kh62w")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kh62w"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_o8l6a")
|
||||
shader_parameter/albedo_color = Color(0.1254902, 0.1254902, 0.1254902, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_3cgme"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_kh62w")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_t4fcb"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_o8l6a")
|
||||
shader_parameter/albedo_color = Color(0.3254902, 0.3254902, 0.3254902, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[node name="Colonnine_Curva" unique_id=1186782612 instance=ExtResource("1_xgw5f")]
|
||||
|
||||
[node name="BézierCurve_003" parent="." index="0" unique_id=558306713]
|
||||
material_overlay = SubResource("ShaderMaterial_l2jxn")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_kh62w")
|
||||
|
||||
[node name="Cube_206" parent="." index="1" unique_id=978348316]
|
||||
material_overlay = SubResource("ShaderMaterial_3cgme")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_t4fcb")
|
||||
16
Scenes/Chunk_Rotaie/Prop/sotto_rotaia.tscn
Normal file
16
Scenes/Chunk_Rotaie/Prop/sotto_rotaia.tscn
Normal file
@@ -0,0 +1,16 @@
|
||||
[gd_scene format=3 uid="uid://chtkmym4f8l5n"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dieq808draswq" path="res://Assets/Meshes/Chunk/Prop/SottoRotaia.fbx" id="1_4wu1g"]
|
||||
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_a3int"]
|
||||
[ext_resource type="Material" uid="uid://d2h6aer57h1ye" path="res://Materials/SottoRotaia.tres" id="2_p6klt"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_6w8yp"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_a3int")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[node name="SottoRotaia" unique_id=1965004457 instance=ExtResource("1_4wu1g")]
|
||||
|
||||
[node name="Cube" parent="." index="0" unique_id=566585669]
|
||||
material_overlay = SubResource("ShaderMaterial_6w8yp")
|
||||
surface_material_override/0 = ExtResource("2_p6klt")
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -3,11 +3,11 @@
|
||||
[ext_resource type="PackedScene" uid="uid://bsyih4obfvlvd" path="res://Assets/Meshes/Chunk/Rotaie/Chunk_Rettilineo_F.fbx" id="1_kj78r"]
|
||||
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_0vblt"]
|
||||
[ext_resource type="Material" uid="uid://cabv225thcqi3" path="res://Materials/Grass2.tres" id="2_10hdy"]
|
||||
[ext_resource type="Material" uid="uid://768v64kvq6ho" path="res://Materials/SentieroRotaie.tres" id="3_7qabg"]
|
||||
[ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://Materials/Grass3.tres" id="3_883gi"]
|
||||
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://Materials/Grass4.tres" id="4_0vblt"]
|
||||
[ext_resource type="Material" uid="uid://cit5uciejjoou" path="res://Materials/Grass_Chunk.tres" id="4_883gi"]
|
||||
[ext_resource type="Texture2D" uid="uid://3ot7glyivagg" path="res://Assets/Textures/Texture_Sentiero.png" id="5_0vblt"]
|
||||
[ext_resource type="Material" uid="uid://bqcdnwennt7m2" path="res://Materials/SottoRotaia2.tres" id="6_tval6"]
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="8_883gi"]
|
||||
[ext_resource type="Texture2D" uid="uid://diocw7vrerh45" path="res://Assets/Textures/Texture_Train.png" id="9_0vblt"]
|
||||
[ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="11_tval6"]
|
||||
@@ -52,9 +52,10 @@ shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 1.0000000475
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -84,7 +85,7 @@ cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_amftp")
|
||||
|
||||
[node name="Chunk_014" parent="." index="3" unique_id=1732721251]
|
||||
surface_material_override/0 = ExtResource("3_7qabg")
|
||||
surface_material_override/0 = ExtResource("6_tval6")
|
||||
|
||||
[node name="Chunk_016" parent="." index="4" unique_id=1716938621]
|
||||
surface_material_override/0 = ExtResource("4_883gi")
|
||||
|
||||
253
Scenes/Chunk_Rotaie/chunk_rettilineo_ponte.tscn
Normal file
253
Scenes/Chunk_Rotaie/chunk_rettilineo_ponte.tscn
Normal file
File diff suppressed because one or more lines are too long
@@ -2,9 +2,9 @@
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bis8oyv8qriyi" path="res://Assets/Meshes/Chunk/Bioma_C/Chunk_C_L_2.fbx" id="1_lnvvn"]
|
||||
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_flg24"]
|
||||
[ext_resource type="Material" uid="uid://couj6glsrm6h3" path="res://Materials/Sentiero.tres" id="2_xlq82"]
|
||||
[ext_resource type="Material" uid="uid://cs7owfgg600jg" path="res://Materials/Argini.tres" id="3_mo772"]
|
||||
[ext_resource type="Material" uid="uid://cit5uciejjoou" path="res://Materials/Grass_Chunk.tres" id="4_1xy4j"]
|
||||
[ext_resource type="Material" uid="uid://768v64kvq6ho" path="res://Materials/SentieroRotaie.tres" id="4_raxwl"]
|
||||
[ext_resource type="Material" uid="uid://br5ipee2wxkcn" path="res://Materials/Water_Toon.tres" id="6_flg24"]
|
||||
[ext_resource type="Shader" uid="uid://cjratw2ndyu8x" path="res://Shaders/grass_leaves.gdshader" id="6_m8njj"]
|
||||
[ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://Materials/Grass3.tres" id="6_mo772"]
|
||||
@@ -19,6 +19,12 @@
|
||||
[ext_resource type="Material" uid="uid://wkegx4a21x7u" path="res://Materials/Staccionata.tres" id="16_26pld"]
|
||||
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="17_11318"]
|
||||
[ext_resource type="PackedScene" uid="uid://bhcut7ndtdo2w" path="res://Assets/Test/SK_Mannequin.FBX" id="18_26pld"]
|
||||
[ext_resource type="PackedScene" uid="uid://bgb4pfflokl5s" path="res://Scenes/Chunk_Scene/Prop/palo_luce.tscn" id="20_raxwl"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_raxwl"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("17_11318")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_mo772"]
|
||||
size = Vector2(1, 1)
|
||||
@@ -133,16 +139,20 @@ _surfaces = [{
|
||||
blend_shape_mode = 0
|
||||
shadow_mesh = SubResource("ArrayMesh_d4r25")
|
||||
|
||||
[node name="Chunk_C_L_2" unique_id=1157835915 instance=ExtResource("1_lnvvn")]
|
||||
[node name="Chunk_C_L_2" unique_id=1157835915 node_paths=PackedStringArray("attacchi_sx", "attacchi_dx") instance=ExtResource("1_lnvvn")]
|
||||
script = ExtResource("2_flg24")
|
||||
sud = true
|
||||
ovest = true
|
||||
ha_palo_luce = true
|
||||
attacchi_sx = [NodePath("Marker3D")]
|
||||
attacchi_dx = [NodePath("Marker3D2")]
|
||||
|
||||
[node name="Argini" parent="." index="0" unique_id=248809218]
|
||||
surface_material_override/0 = ExtResource("3_mo772")
|
||||
|
||||
[node name="Sentieri" parent="." index="1" unique_id=754485988]
|
||||
material_override = ExtResource("2_xlq82")
|
||||
material_override = ExtResource("4_raxwl")
|
||||
material_overlay = SubResource("ShaderMaterial_raxwl")
|
||||
|
||||
[node name="Terreno" parent="." index="2" unique_id=664428431]
|
||||
material_override = ExtResource("4_1xy4j")
|
||||
@@ -948,5 +958,14 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4399114, 0.088425875, 4.184
|
||||
[node name="SK_Mannequin3" parent="." index="15" unique_id=669372316 instance=ExtResource("18_26pld")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.30783892, 0.088425875, 0.15463018)
|
||||
|
||||
[node name="Marker3D" type="Marker3D" parent="." index="16" unique_id=909815593]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.50713843, 7.238265, -1.8376671)
|
||||
|
||||
[node name="Marker3D2" type="Marker3D" parent="." index="17" unique_id=803256502]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.50713843, 7.238265, -0.49207675)
|
||||
|
||||
[node name="PaloLuce" parent="." index="18" unique_id=1542979535 instance=ExtResource("20_raxwl")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.50713843, 0, -1.1693094)
|
||||
|
||||
[editable path="MSH_Staccionate2"]
|
||||
[editable path="MSH_Staccionate3"]
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
[ext_resource type="Material" uid="uid://br5ipee2wxkcn" path="res://Materials/Water_Toon.tres" id="5_1oe8g"]
|
||||
[ext_resource type="Material" uid="uid://cabv225thcqi3" path="res://Materials/Grass2.tres" id="6_l5gkg"]
|
||||
[ext_resource type="Material" uid="uid://m1qmskp2o6dj" path="res://Materials/Grass_Argini.tres" id="7_1oe8g"]
|
||||
[ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://Materials/Grass3.tres" id="8_l5gkg"]
|
||||
[ext_resource type="Material" uid="uid://dsrv87k50yvqd" path="res://Materials/Grass5.tres" id="8_l5gkg"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_spqm3"]
|
||||
size = Vector2(1, 1)
|
||||
@@ -57,7 +57,7 @@ cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_l5gkg")
|
||||
|
||||
[node name="Riso" type="Node3D" parent="MultiMeshInstance3D2" index="0" unique_id=1692910804]
|
||||
transform = Transform3D(-4.371139e-08, 1, -4.371139e-08, 0, -4.371139e-08, -1, -1, -4.371139e-08, 1.9106855e-15, -7.711709, 0.12167299, -7.6087165)
|
||||
transform = Transform3D(-4.371139e-08, 1, -4.371139e-08, 0, -4.371139e-08, -1, -1, -4.371139e-08, 1.9106855e-15, -7.711709, 0.26485503, -7.6087165)
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="MultiMeshInstance3D2/Riso" index="0" unique_id=577303588]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, -8.351872e-23, 0, -8.351872e-23, 1, 0, 0, 0.4380784)
|
||||
|
||||
@@ -13,27 +13,6 @@
|
||||
[ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="12_rrcoc"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjk04it47rqn4" path="res://Scenes/Chunk_Scene/House/house_c_3.tscn" id="12_wr3vc"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_sqcol"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_wr3vc")
|
||||
shader_parameter/albedo_color = Color(0.16470589, 0.50980395, 0.21960784, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fim7w"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("7_wr3vc")
|
||||
@@ -132,14 +111,35 @@ shadow_mesh = SubResource("ArrayMesh_7ona5")
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_lunjj"]
|
||||
size = Vector3(20, 10, 20)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_sqcol"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_wr3vc")
|
||||
shader_parameter/albedo_color = Color(0.16470589, 0.50980395, 0.21960784, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[node name="Chunk_C_E_1" unique_id=1874739368 instance=ExtResource("1_jpp2r")]
|
||||
script = ExtResource("2_02kkq")
|
||||
nord = true
|
||||
est = true
|
||||
ovest = true
|
||||
|
||||
[node name="Chunk_026" parent="." index="0" unique_id=1559745184]
|
||||
material_override = SubResource("ShaderMaterial_sqcol")
|
||||
[node name="Argini_002" parent="." index="0" unique_id=613643969]
|
||||
visible = false
|
||||
|
||||
[node name="Chunk_C_L_1" parent="." index="1" unique_id=47126446 instance=ExtResource("6_4h5ax")]
|
||||
nord = true
|
||||
@@ -221,4 +221,10 @@ transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 1.15
|
||||
[node name="House_C_3" parent="." index="14" unique_id=1014653774 instance=ExtResource("12_wr3vc")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0, -1.2958329)
|
||||
|
||||
[node name="Chunk_026" parent="." index="15" unique_id=1248878438]
|
||||
material_override = SubResource("ShaderMaterial_sqcol")
|
||||
|
||||
[node name="Water_001" parent="." index="16" unique_id=1186322604]
|
||||
visible = false
|
||||
|
||||
[editable path="Chunk_C_L_1"]
|
||||
|
||||
@@ -11,8 +11,8 @@ albedo_color = Color(0.3882353, 0.52156866, 0.20784314, 1)
|
||||
[node name="Chunk_C_E_1" unique_id=1874739368 instance=ExtResource("1_anwxh")]
|
||||
script = ExtResource("2_scq5d")
|
||||
|
||||
[node name="Chunk_026" parent="." index="0" unique_id=1559745184]
|
||||
material_override = SubResource("StandardMaterial3D_pynx0")
|
||||
[node name="Argini_002" parent="." index="0" unique_id=613643969]
|
||||
visible = false
|
||||
|
||||
[node name="TreeTest3" parent="." index="1" unique_id=838519336 instance=ExtResource("5_vyg4h")]
|
||||
transform = Transform3D(-1.6420741, 0, 0.43999258, 0, 1.7000003, 0, -0.43999258, 0, -1.6420741, -6, 0, 7)
|
||||
@@ -46,3 +46,9 @@ transform = Transform3D(1.2020817, 0, -1.2020817, 0, 1.6411026, 0, 1.2020817, 0,
|
||||
|
||||
[node name="Grass" parent="." index="11" unique_id=329885752 instance=ExtResource("4_pynx0")]
|
||||
transform = Transform3D(1.5, 0, 0, 0, 1, 0, 0, 0, 1.5, 0, 0.2, 0)
|
||||
|
||||
[node name="Chunk_026" parent="." index="12" unique_id=1248878438]
|
||||
material_override = SubResource("StandardMaterial3D_pynx0")
|
||||
|
||||
[node name="Water_001" parent="." index="13" unique_id=1186322604]
|
||||
visible = false
|
||||
|
||||
@@ -2,6 +2,12 @@
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://e5pjghlvgxrv" path="res://Assets/Meshes/Chunk/Prop/PaloLuce.fbx" id="1_jxwpf"]
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="2_3fmep"]
|
||||
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_wpudh"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ffi7j"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_wpudh")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wpudh"]
|
||||
render_priority = 0
|
||||
@@ -48,5 +54,6 @@ shader_parameter/emission_energy = 0.0
|
||||
[node name="PaloLuce" unique_id=1542979535 instance=ExtResource("1_jxwpf")]
|
||||
|
||||
[node name="Cube" parent="." index="0" unique_id=885327009]
|
||||
material_overlay = SubResource("ShaderMaterial_ffi7j")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_wpudh")
|
||||
surface_material_override/1 = SubResource("ShaderMaterial_q1sqc")
|
||||
|
||||
28
Scenes/Fili.gdshader
Normal file
28
Scenes/Fili.gdshader
Normal file
@@ -0,0 +1,28 @@
|
||||
shader_type spatial;
|
||||
render_mode blend_mix, depth_draw_opaque, cull_disabled;
|
||||
|
||||
// Colore del filo (nero o grigio scuro)
|
||||
uniform vec4 albedo_color : source_color = vec4(0.1, 0.1, 0.1, 1.0);
|
||||
|
||||
// Parametri controllati dal tuo script
|
||||
uniform float forza_vento = 1.0;
|
||||
uniform float velocita_vento = 2.0;
|
||||
|
||||
void vertex() {
|
||||
// COLOR.r è la nostra "pittura". È 0 dove c'è il palo (quindi non si muove)
|
||||
// ed è 1.0 al centro della pancia del filo.
|
||||
float capacita_movimento = COLOR.r;
|
||||
|
||||
// Creiamo un'onda fluida usando il tempo e la posizione nel mondo
|
||||
// così ogni filo oscilla in modo leggermente diverso dall'altro
|
||||
float onda_vento = sin(TIME * velocita_vento + NODE_POSITION_WORLD.x * 0.5) * forza_vento;
|
||||
|
||||
// Spingiamo il vertice sugli assi X e Z.
|
||||
VERTEX.x += onda_vento * 0.1 * capacita_movimento;
|
||||
VERTEX.z += onda_vento * 0.05 * capacita_movimento;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
ALBEDO = albedo_color.rgb;
|
||||
ROUGHNESS = 0.9;
|
||||
}
|
||||
1
Scenes/Fili.gdshader.uid
Normal file
1
Scenes/Fili.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://ddwohdg6yplmd
|
||||
@@ -11,6 +11,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://bvynwhkogurml" path="res://Scenes/Godrays_Scene.tscn" id="5_gwrkm"]
|
||||
[ext_resource type="Material" uid="uid://codq5gx71rj4o" path="res://Materials/Polvere atmosferica.tres" id="5_u10x4"]
|
||||
[ext_resource type="Texture2D" uid="uid://dxahudyvihk8b" path="res://Assets/Textures/Stars.png" id="6_jawsd"]
|
||||
[ext_resource type="Material" uid="uid://chs4pdi0nv1jc" path="res://Materials/fili.tres" id="6_qdxup"]
|
||||
[ext_resource type="Script" uid="uid://brcimd12tx3dm" path="res://Scripts/edge_detection_compositor.gd" id="7_4xv0h"]
|
||||
[ext_resource type="Texture2D" uid="uid://bpswbjh4jj1ou" path="res://Assets/Textures/noise.tres" id="7_6k3cw"]
|
||||
[ext_resource type="Texture2D" uid="uid://dey5onb6mwp3f" path="res://Assets/Textures/leaf_particle.png" id="7_vufuq"]
|
||||
@@ -125,7 +126,7 @@ size = Vector2(2, 2)
|
||||
[sub_resource type="Resource" id="Resource_5lko7"]
|
||||
script = ExtResource("11_vpybn")
|
||||
nome_bioma = "Campagna"
|
||||
chunk_disponibili = Array[PackedScene]([ExtResource("35_n33lw"), ExtResource("13_6k3cw")])
|
||||
chunk_disponibili = Array[PackedScene]([ExtResource("13_6k3cw"), ExtResource("35_n33lw")])
|
||||
metadata/_custom_type_script = "uid://c02bewqxt2epg"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_j2rq4"]
|
||||
@@ -769,9 +770,9 @@ shader_parameter/max_opacity = 0.10000000475
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kwbnj"]
|
||||
shader = ExtResource("46_nonqo")
|
||||
shader_parameter/blur_amount = 0.70000003325
|
||||
shader_parameter/focus_size = 0.250000011875
|
||||
shader_parameter/transition_softness = 0.40000001830148
|
||||
shader_parameter/blur_amount = 0.50000002375
|
||||
shader_parameter/focus_size = 0.54400002584
|
||||
shader_parameter/transition_softness = 0.00999999977648
|
||||
|
||||
[node name="DemoForest" type="Node3D" unique_id=265279494 node_paths=PackedStringArray("nodo_polvere", "particelle_lucciole", "particelle_vento", "bottone_neve", "bottone_nevicata", "overlay_nebbia_schermo", "particelle_neve")]
|
||||
script = ExtResource("1_cr3ar")
|
||||
@@ -810,6 +811,7 @@ materiale_pioggia_gocce = ExtResource("3_4wepm")
|
||||
materiale_nuvole = ExtResource("4_00nhk")
|
||||
nodo_polvere = NodePath("SubViewportContainer/SubViewport/ScreenEffect/PolvereAtmosferica")
|
||||
materiale_acqua = ExtResource("5_16mw0")
|
||||
materiale_fili_luce = ExtResource("6_qdxup")
|
||||
colore_mood_pioggia = Color(0.9777618, 0.9831695, 0.9889775, 1)
|
||||
colore_fulmine = Color(0.99999946, 0.9857114, 0.46342158, 1)
|
||||
fulmini_min = 2
|
||||
@@ -917,6 +919,9 @@ path_treno = NodePath("../Path3D")
|
||||
lista_biomi = Array[ExtResource("11_vpybn")]([SubResource("Resource_5lko7"), SubResource("Resource_j2rq4")])
|
||||
raggio_visivo = 4
|
||||
scala_distretti = 0.08
|
||||
materiale_filo_palo = ExtResource("6_qdxup")
|
||||
spessore_filo = 0.1
|
||||
forza_vento_fili = 5.0
|
||||
|
||||
[node name="MainMap" parent="SubViewportContainer/SubViewport/World" unique_id=1895741703 instance=ExtResource("8_bedag")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0, 0)
|
||||
@@ -1023,13 +1028,13 @@ skeleton = NodePath("../../../../../..")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_xjipq")
|
||||
|
||||
[node name="Fog" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=1575620825]
|
||||
transform = Transform3D(-0.008675572, -0.67532605, 44.935955, 0.2878669, 29.552338, 2.4086356, -85.190544, 21.108652, -0.54492366, -47.215515, 5.399597, 49.11187)
|
||||
transform = Transform3D(-0.008675572, -0.67532605, 44.935955, 0.2878668, 29.552332, 2.408635, -85.19052, 21.108646, -0.5449235, -54.908077, 14.520018, 49.11186)
|
||||
mesh = SubResource("PlaneMesh_gsfny")
|
||||
skeleton = NodePath("../../../../../..")
|
||||
surface_material_override/0 = ExtResource("2_4xv0h")
|
||||
|
||||
[node name="Fog2" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=567097306]
|
||||
transform = Transform3D(-0.008677567, -0.6737314, 41.582806, 0.28793296, 29.482548, 2.228902, -85.2101, 21.0588, -0.50426126, 51.961967, 6.179736, 49.90806)
|
||||
transform = Transform3D(-0.008677567, -0.6737314, 41.582806, 0.28793293, 29.482546, 2.2289019, -85.21009, 21.058798, -0.5042612, 51.961967, 12.156549, 49.908054)
|
||||
mesh = SubResource("PlaneMesh_gsfny")
|
||||
skeleton = NodePath("../../../../../..")
|
||||
surface_material_override/0 = ExtResource("2_4xv0h")
|
||||
@@ -20975,7 +20980,6 @@ mouse_filter = 2
|
||||
|
||||
[node name="ScreenEffect2" type="CanvasLayer" parent="SubViewportContainer/SubViewport" unique_id=2088057254]
|
||||
layer = 3
|
||||
visible = false
|
||||
follow_viewport_scale = 0.001
|
||||
|
||||
[node name="Nebbia" type="ColorRect" parent="SubViewportContainer/SubViewport/ScreenEffect2" unique_id=1102385319]
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://8sdgkykyg5l5" path="res://Assets/Textures/rock_color.png" id="6_cp4eh"]
|
||||
[ext_resource type="PackedScene" uid="uid://whamwjwv4nvb" path="res://Scenes/Chunk_Montagne/chunck_m_n_o_e_s_3f.tscn" id="8_cp4eh"]
|
||||
[ext_resource type="PackedScene" uid="uid://dn75nbg5ksfsi" path="res://Scenes/Chunk_Rotaie/chunk_rettilineo_F.tscn" id="9_ch5ch"]
|
||||
[ext_resource type="PackedScene" uid="uid://chmqq2uoblh5q" path="res://Scenes/Chunk_Rotaie/chunk_rettilineo_ponte.tscn" id="10_l8a21"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_iocve"]
|
||||
size = Vector3(20, 10, 20)
|
||||
@@ -155,9 +156,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -180, 0, -60)
|
||||
[node name="Chunk_Rettilineo_23" parent="." unique_id=1388153615 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 0, 80)
|
||||
|
||||
[node name="Chunk_Rettilineo_24" parent="." unique_id=1710723753 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 0, 60)
|
||||
|
||||
[node name="Chunk_Rettilineo_21" parent="." unique_id=1978190814 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -440, 0, -260)
|
||||
|
||||
@@ -179,15 +177,9 @@ transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -60,
|
||||
[node name="Chunk_Rettilineo_4" parent="." unique_id=1073486505 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -80, 0, 0)
|
||||
|
||||
[node name="Chunk_Rettilineo_5" parent="." unique_id=1325870477 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -100, 0, 0)
|
||||
|
||||
[node name="Chunk_Rettilineo_13" parent="." unique_id=1581462545 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -340, 0, -320)
|
||||
|
||||
[node name="Chunk_Rettilineo_14" parent="." unique_id=332489689 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -360, 0, -320)
|
||||
|
||||
[node name="Chunk_Rettilineo_15" parent="." unique_id=1547000461 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -560, 0, -60)
|
||||
|
||||
@@ -260,9 +252,6 @@ transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -280
|
||||
[node name="Chunk_Rettilineo_39" parent="." unique_id=299561757 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -300, 0, 140)
|
||||
|
||||
[node name="Chunk_Rettilineo_40" parent="." unique_id=1097839916 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -320, 0, 140)
|
||||
|
||||
[node name="Chunk_Rettilineo_43" parent="." unique_id=1599561754 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -400, 0, 140)
|
||||
|
||||
@@ -275,40 +264,40 @@ transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -360
|
||||
[node name="Chunk_Rettilineo_46" parent="." unique_id=1619269244 instance=ExtResource("1_q7xqk")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -340, 0, 140)
|
||||
|
||||
[node name="Chunk_Curva_1" parent="." unique_id=480671107 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_1" parent="." unique_id=217311849 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -160, 0, -20)
|
||||
|
||||
[node name="Chunk_Curva_2" parent="." unique_id=1364313697 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_2" parent="." unique_id=1068663965 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(1.1924881e-08, 0, 1, 0, 1, 0, -1, 0, 1.1924881e-08, -200, 0, -140)
|
||||
|
||||
[node name="Chunk_Curva_4" parent="." unique_id=1462911537 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_4" parent="." unique_id=1880677005 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(1.1924881e-08, 0, 1, 0, 1, 0, -1, 0, 1.1924881e-08, -300, 0, -300)
|
||||
|
||||
[node name="Chunk_Curva_5" parent="." unique_id=917175715 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_5" parent="." unique_id=1937819608 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -420, 0, -300)
|
||||
|
||||
[node name="Chunk_Curva_7" parent="." unique_id=1233217696 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_7" parent="." unique_id=369952667 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -540, 0, -180)
|
||||
|
||||
[node name="Chunk_Curva_8" parent="." unique_id=1633518535 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_8" parent="." unique_id=158352392 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, -540, 0, -20)
|
||||
|
||||
[node name="Chunk_Curva_9" parent="." unique_id=314246595 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_9" parent="." unique_id=989244570 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(-4.371138e-08, 0, 1, 0, 1, 0, -1, 0, -4.371138e-08, -480, 0, 20)
|
||||
|
||||
[node name="Chunk_Curva_12" parent="." unique_id=145961778 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_12" parent="." unique_id=1965442076 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(-4.3711395e-08, 0, -1, 0, 1, 0, 1, 0, -4.3711395e-08, -440, 0, 120)
|
||||
|
||||
[node name="Chunk_Curva_10" parent="." unique_id=334140980 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_10" parent="." unique_id=333779883 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(-4.371138e-08, 0, 1, 0, 1, 0, -1, 0, -4.371138e-08, 20, 0, 20)
|
||||
|
||||
[node name="Chunk_Curva_11" parent="." unique_id=692641914 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_11" parent="." unique_id=1052160404 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(1, 0, -7.1054274e-15, 0, 1, 0, 7.1054274e-15, 0, 1, 20, 0, 120)
|
||||
|
||||
[node name="Chunk_Curva_6" parent="." unique_id=2071515822 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_6" parent="." unique_id=2133916086 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -460, 0, -220)
|
||||
|
||||
[node name="Chunk_Curva_3" parent="." unique_id=1054028917 instance=ExtResource("2_nofk3")]
|
||||
[node name="Chunk_Curva_3" parent="." unique_id=764430333 instance=ExtResource("2_nofk3")]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -260, 0, -180)
|
||||
|
||||
[node name="TestScogliera11" parent="." unique_id=1247128389 instance=ExtResource("4_ikcvm")]
|
||||
@@ -467,3 +456,15 @@ transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -280
|
||||
|
||||
[node name="Chunk_Rettilineo_F2" parent="." unique_id=1426792016 instance=ExtResource("9_ch5ch")]
|
||||
transform = Transform3D(1.7682972e-07, 0, -0.9999999, 0, 1, 0, 0.9999999, 0, 1.7682972e-07, -120, 0, 0)
|
||||
|
||||
[node name="Chunk_Rettilineo_Ponte" parent="." unique_id=293357560 instance=ExtResource("10_l8a21")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -320, 0, 140)
|
||||
|
||||
[node name="Chunk_Rettilineo_Ponte2" parent="." unique_id=981505784 instance=ExtResource("10_l8a21")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 0, 60)
|
||||
|
||||
[node name="Chunk_Rettilineo_Ponte4" parent="." unique_id=113644592 instance=ExtResource("10_l8a21")]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -100, 0, 0)
|
||||
|
||||
[node name="Chunk_Rettilineo_Ponte3" parent="." unique_id=1500623550 instance=ExtResource("10_l8a21")]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -360, 0, -320)
|
||||
|
||||
@@ -25,7 +25,6 @@ transform = Transform3D(-0.85, 0, -1.2834644e-07, 0, 0.85, 0, 1.2834644e-07, 0,
|
||||
|
||||
[node name="polySurface3708_002" parent="." index="0" unique_id=1525054251]
|
||||
transform = Transform3D(99.99998, 0, 0, 0, -4.3711375e-06, 99.99999, 0, -99.99997, -4.3711384e-06, 0, 1.5, 0)
|
||||
visible = false
|
||||
material_overlay = SubResource("ShaderMaterial_tvivt")
|
||||
cast_shadow = 0
|
||||
surface_material_override/0 = ExtResource("2_crne2")
|
||||
@@ -130,6 +129,7 @@ surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D16" type="MeshInstance3D" parent="." index="20" unique_id=378179696]
|
||||
transform = Transform3D(3.1700006, 0, 0, 0, 3.1700006, 0, 0, 0, 16.415005, -3.5393626e-08, 1.9236344, 0.23440138)
|
||||
visible = false
|
||||
mesh = SubResource("BoxMesh_dbt0l")
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="." index="21" unique_id=1693942993]
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_ysg1u"]
|
||||
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_0y2rr"]
|
||||
[ext_resource type="PackedScene" uid="uid://chtkmym4f8l5n" path="res://Scenes/Chunk_Rotaie/Prop/sotto_rotaia.tscn" id="3_duyun"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_m6haf"]
|
||||
render_priority = 0
|
||||
@@ -17,9 +18,10 @@ shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -45,9 +47,10 @@ shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -56,6 +59,48 @@ render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_32tn1"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_ysg1u")
|
||||
shader_parameter/albedo_color = Color(0.2593505, 0.31085664, 0.31944266, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2fir7"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_ysg1u")
|
||||
shader_parameter/albedo_color = Color(0.05786048, 0.07707336, 0.08002914, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pp4r2"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_ysg1u")
|
||||
@@ -70,9 +115,10 @@ shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -98,9 +144,10 @@ shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -109,29 +156,6 @@ render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5u2u8"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_ysg1u")
|
||||
shader_parameter/albedo_color = Color(0.22494644, 0.08867701, 0.01631488, 1)
|
||||
shader_parameter/use_texture = false
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_m6haf"]
|
||||
size = Vector3(3.705, 0.2, 1.92)
|
||||
|
||||
[node name="Rotaie2" type="Node3D" unique_id=1464572050]
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=1040579890]
|
||||
@@ -146,6 +170,174 @@ material_override = SubResource("ShaderMaterial_fttrp")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D29" type="MeshInstance3D" parent="." unique_id=972203462]
|
||||
transform = Transform3D(1.3440716, 0, 0, 0, 0.18446521, 0, 0, 0, 1, 0.7, 0.2967139, 0)
|
||||
material_override = SubResource("ShaderMaterial_fttrp")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D30" type="MeshInstance3D" parent="." unique_id=534956212]
|
||||
transform = Transform3D(1.3440716, 0, 0, 0, 0.18446521, 0, 0, 0, 1, 0.7, 0.14930958, 0)
|
||||
material_override = SubResource("ShaderMaterial_fttrp")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D31" type="MeshInstance3D" parent="." unique_id=1127044398]
|
||||
transform = Transform3D(1.3440716, 0, 0, 0, 0.18446521, 0, 0, 0, 1, -0.70179665, 0.2967139, 0)
|
||||
material_override = SubResource("ShaderMaterial_fttrp")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D32" type="MeshInstance3D" parent="." unique_id=1718686790]
|
||||
transform = Transform3D(1.3440716, 0, 0, 0, 0.18446521, 0, 0, 0, 1, -0.70179665, 0.14930958, 0)
|
||||
material_override = SubResource("ShaderMaterial_fttrp")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D5" type="MeshInstance3D" parent="." unique_id=1744460445]
|
||||
transform = Transform3D(0.30081582, 0, 0, 0, 1, 0, 0, 0, 0.071544886, 0.8160427, 0.1301653, -0.5273058)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D6" type="MeshInstance3D" parent="." unique_id=2007944812]
|
||||
transform = Transform3D(0.30081582, 0, 0, 0, 1, 0, 0, 0, 0.071544886, 0.8160427, 0.1301653, 0.5172506)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D9" type="MeshInstance3D" parent="." unique_id=1697384362]
|
||||
transform = Transform3D(-1.3149077e-08, -1, 0, 0.30081582, -4.371139e-08, 0, 0, 0, 0.071544886, 0.8674324, 0.1301653, 0.5172506)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D10" type="MeshInstance3D" parent="." unique_id=431110500]
|
||||
transform = Transform3D(-1.3149077e-08, -1, 0, 0.30081582, -4.371139e-08, 0, 0, 0, 0.071544886, 0.8674324, 0.1301653, -0.5275448)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D13" type="MeshInstance3D" parent="." unique_id=1419756949]
|
||||
transform = Transform3D(-1.31490765e-08, -0.19476303, 0, 0.3008158, -8.513363e-09, 0, 0, 0, 0.020450655, 0.9053791, 0.15145324, -0.5275448)
|
||||
material_override = SubResource("ShaderMaterial_2fir7")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D14" type="MeshInstance3D" parent="." unique_id=836312176]
|
||||
transform = Transform3D(-1.31490765e-08, -0.19476303, 0, 0.3008158, -8.513363e-09, 0, 0, 0, 0.020450655, 0.9053791, 0.15145324, 0.516802)
|
||||
material_override = SubResource("ShaderMaterial_2fir7")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D23" type="MeshInstance3D" parent="." unique_id=216159373]
|
||||
transform = Transform3D(0.30081582, 0, 0, 0, 1, 0, 0, 0, 0.071544886, -0.5802297, 0.1301653, -0.5273058)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D24" type="MeshInstance3D" parent="." unique_id=1125706500]
|
||||
transform = Transform3D(0.30081582, 0, 0, 0, 1, 0, 0, 0, 0.071544886, -0.5802297, 0.1301653, 0.5172506)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D25" type="MeshInstance3D" parent="." unique_id=1529264862]
|
||||
transform = Transform3D(-1.3149077e-08, -1, 0, 0.30081582, -4.371139e-08, 0, 0, 0, 0.071544886, -0.52884, 0.1301653, 0.5172506)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D26" type="MeshInstance3D" parent="." unique_id=1483426319]
|
||||
transform = Transform3D(-1.3149077e-08, -1, 0, 0.30081582, -4.371139e-08, 0, 0, 0, 0.071544886, -0.52884, 0.1301653, -0.5275448)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D27" type="MeshInstance3D" parent="." unique_id=1155155966]
|
||||
transform = Transform3D(-1.31490765e-08, -0.19476303, 0, 0.3008158, -8.513363e-09, 0, 0, 0, 0.020450655, -0.4908933, 0.15145324, -0.5275448)
|
||||
material_override = SubResource("ShaderMaterial_2fir7")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D28" type="MeshInstance3D" parent="." unique_id=1025538095]
|
||||
transform = Transform3D(-1.31490765e-08, -0.19476303, 0, 0.3008158, -8.513363e-09, 0, 0, 0, 0.020450655, -0.4908933, 0.15145324, 0.516802)
|
||||
material_override = SubResource("ShaderMaterial_2fir7")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D17" type="MeshInstance3D" parent="." unique_id=903185813]
|
||||
transform = Transform3D(-0.30081582, 0, -6.2546524e-09, 0, 1, 0, 2.6298155e-08, 0, -0.071544886, 0.584427, 0.1301653, 0.5169515)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D18" type="MeshInstance3D" parent="." unique_id=78468043]
|
||||
transform = Transform3D(1.3149077e-08, 1, -6.2546524e-09, 0.30081582, -4.371139e-08, 0, -1.1495288e-15, -8.742278e-08, -0.071544886, 0.5330373, 0.1301653, 0.5169515)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D19" type="MeshInstance3D" parent="." unique_id=1534665872]
|
||||
transform = Transform3D(1.31490765e-08, 0.19476303, -1.7878531e-09, 0.30081576, -8.5133625e-09, 0, -1.1495287e-15, -1.7026725e-08, -0.020450655, 0.4950906, 0.15145324, 0.5174001)
|
||||
material_override = SubResource("ShaderMaterial_2fir7")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D20" type="MeshInstance3D" parent="." unique_id=1077677339]
|
||||
transform = Transform3D(-0.30081582, 0, -6.2546524e-09, 0, 1, 0, 2.6298155e-08, 0, -0.071544886, 0.584427, 0.1301653, -0.5278452)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D21" type="MeshInstance3D" parent="." unique_id=1726245505]
|
||||
transform = Transform3D(1.3149077e-08, 1, -6.2546524e-09, 0.30081582, -4.371139e-08, 0, -1.1495288e-15, -8.742278e-08, -0.071544886, 0.5330373, 0.1301653, -0.5278452)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D22" type="MeshInstance3D" parent="." unique_id=1489345313]
|
||||
transform = Transform3D(1.31490765e-08, 0.19476303, -1.7878531e-09, 0.30081576, -8.5133625e-09, 0, -1.1495287e-15, -1.7026725e-08, -0.020450655, 0.4950906, 0.15145324, -0.5273966)
|
||||
material_override = SubResource("ShaderMaterial_2fir7")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D15" type="MeshInstance3D" parent="." unique_id=619499450]
|
||||
transform = Transform3D(-1.31490765e-08, -0.19476303, 0, 0.3008158, -8.513363e-09, 0, 0, 0, 0.020450655, -0.9026205, 0.15145324, -0.5275448)
|
||||
material_override = SubResource("ShaderMaterial_2fir7")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D16" type="MeshInstance3D" parent="." unique_id=1236305650]
|
||||
transform = Transform3D(-1.31490765e-08, -0.19476303, 0, 0.3008158, -8.513363e-09, 0, 0, 0, 0.020450655, -0.9026205, 0.15145324, 0.516802)
|
||||
material_override = SubResource("ShaderMaterial_2fir7")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D11" type="MeshInstance3D" parent="." unique_id=1626419312]
|
||||
transform = Transform3D(-1.3149077e-08, -1, 0, 0.30081582, -4.371139e-08, 0, 0, 0, 0.071544886, -0.856239, 0.1301653, 0.5172506)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D12" type="MeshInstance3D" parent="." unique_id=790464593]
|
||||
transform = Transform3D(-1.3149077e-08, -1, 0, 0.30081582, -4.371139e-08, 0, 0, 0, 0.071544886, -0.856239, 0.1301653, -0.5275448)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D7" type="MeshInstance3D" parent="." unique_id=1020601401]
|
||||
transform = Transform3D(0.30081582, 0, 0, 0, 1, 0, 0, 0, 0.071544886, -0.82941407, 0.1301653, -0.5273058)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D8" type="MeshInstance3D" parent="." unique_id=1220705480]
|
||||
transform = Transform3D(0.30081582, 0, 0, 0, 1, 0, 0, 0, 0.071544886, -0.82941407, 0.1301653, 0.5172506)
|
||||
material_override = SubResource("ShaderMaterial_32tn1")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="." unique_id=170245195]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.05, 0.5)
|
||||
material_override = SubResource("ShaderMaterial_pp4r2")
|
||||
@@ -158,7 +350,5 @@ material_override = SubResource("ShaderMaterial_x2uev")
|
||||
material_overlay = SubResource("ShaderMaterial_qv8m2")
|
||||
mesh = SubResource("BoxMesh_ysg1u")
|
||||
|
||||
[node name="MeshInstance3D5" type="MeshInstance3D" parent="." unique_id=1376217081]
|
||||
visible = false
|
||||
material_override = SubResource("ShaderMaterial_5u2u8")
|
||||
mesh = SubResource("BoxMesh_m6haf")
|
||||
[node name="SottoRotaia" parent="." unique_id=1965004457 instance=ExtResource("3_duyun")]
|
||||
transform = Transform3D(-4.0398803e-08, 0, 1.6058998, 0, 1.6117952, 0, -0.92421687, 0, -7.019611e-08, 0, -0.1780675, 0)
|
||||
|
||||
@@ -57,17 +57,6 @@ func _ready() -> void:
|
||||
print("ATTENZIONE: Devi prima disegnare i punti del Path3D!")
|
||||
|
||||
func _costruisci_rotaie_da_zero() -> void:
|
||||
var mat_legno = StandardMaterial3D.new()
|
||||
mat_legno.albedo_color = Color(0.35, 0.2, 0.1)
|
||||
var mat_ferro = StandardMaterial3D.new()
|
||||
mat_ferro.albedo_color = Color(0.6, 0.6, 0.65)
|
||||
mat_ferro.metallic = 0.8
|
||||
|
||||
var mesh_traversina_default = BoxMesh.new()
|
||||
mesh_traversina_default.size = Vector3(larghezza_binari + 0.6, 0.1, 0.3)
|
||||
var mesh_binario = BoxMesh.new()
|
||||
mesh_binario.size = Vector3(0.1, 0.15, distanza_traversine + 0.05)
|
||||
|
||||
var lunghezza_totale = curve.get_baked_length()
|
||||
var numero_pezzi = int(lunghezza_totale / distanza_traversine)
|
||||
|
||||
@@ -80,6 +69,7 @@ func _costruisci_rotaie_da_zero() -> void:
|
||||
var distanza_avanti = distanza + 0.1
|
||||
var pos_avanti_locale = Vector3.ZERO
|
||||
|
||||
# Calcola la posizione successiva per orientare correttamente il pezzo
|
||||
if distanza_avanti > lunghezza_totale:
|
||||
var pos_dietro = curve.sample_baked(distanza - 0.1, true)
|
||||
pos_avanti_locale = pos_attuale_locale + (pos_attuale_locale - pos_dietro)
|
||||
@@ -89,29 +79,15 @@ func _costruisci_rotaie_da_zero() -> void:
|
||||
pezzo_binario.position = pos_attuale_locale
|
||||
var globale_attuale = to_global(pos_attuale_locale)
|
||||
var globale_avanti = to_global(pos_avanti_locale)
|
||||
|
||||
# Ruota il pezzo affinché segua la curva
|
||||
if globale_attuale.distance_to(globale_avanti) > 0.001:
|
||||
pezzo_binario.look_at(globale_avanti, Vector3.UP)
|
||||
|
||||
if modello_traversina != null:
|
||||
var traversina_custom = modello_traversina.instantiate()
|
||||
pezzo_binario.add_child(traversina_custom)
|
||||
else:
|
||||
var traversina = MeshInstance3D.new()
|
||||
traversina.mesh = mesh_traversina_default
|
||||
traversina.material_override = mat_legno
|
||||
pezzo_binario.add_child(traversina)
|
||||
|
||||
var binario_sx = MeshInstance3D.new()
|
||||
binario_sx.mesh = mesh_binario
|
||||
binario_sx.material_override = mat_ferro
|
||||
binario_sx.position = Vector3(-larghezza_binari / 2.0, 0.1, 0)
|
||||
pezzo_binario.add_child(binario_sx)
|
||||
|
||||
var binario_dx = MeshInstance3D.new()
|
||||
binario_dx.mesh = mesh_binario
|
||||
binario_dx.material_override = mat_ferro
|
||||
binario_dx.position = Vector3(larghezza_binari / 2.0, 0.1, 0)
|
||||
pezzo_binario.add_child(binario_dx)
|
||||
# Inserisce ESCLUSIVAMENTE il tuo modello (che contiene traversine e rotaie)
|
||||
if modello_traversina:
|
||||
var pezzo_custom = modello_traversina.instantiate()
|
||||
pezzo_binario.add_child(pezzo_custom)
|
||||
|
||||
func _calcola_fermate() -> void:
|
||||
var fermate_temp = []
|
||||
@@ -284,40 +260,4 @@ func _costruisci_treno() -> void:
|
||||
if modello_treno != null:
|
||||
treno_istanziato = modello_treno.instantiate()
|
||||
add_child(treno_istanziato)
|
||||
else:
|
||||
_costruisci_trenino_default()
|
||||
|
||||
func _costruisci_trenino_default() -> void:
|
||||
treno_istanziato = Node3D.new()
|
||||
add_child(treno_istanziato)
|
||||
|
||||
var mat_carrozzeria = StandardMaterial3D.new()
|
||||
mat_carrozzeria.albedo_color = Color(0.8, 0.15, 0.15)
|
||||
var mat_vetro = StandardMaterial3D.new()
|
||||
mat_vetro.albedo_color = Color(0.2, 0.8, 1.0)
|
||||
|
||||
var base_treno = MeshInstance3D.new()
|
||||
var mesh_base = BoxMesh.new()
|
||||
mesh_base.size = Vector3(1.4, 0.8, 3.0)
|
||||
base_treno.mesh = mesh_base
|
||||
base_treno.material_override = mat_carrozzeria
|
||||
base_treno.position = Vector3(0, 0.6, 0)
|
||||
treno_istanziato.add_child(base_treno)
|
||||
|
||||
var cabina = MeshInstance3D.new()
|
||||
var mesh_cabina = BoxMesh.new()
|
||||
mesh_cabina.size = Vector3(1.4, 1.0, 1.2)
|
||||
cabina.mesh = mesh_cabina
|
||||
cabina.material_override = mat_vetro
|
||||
cabina.position = Vector3(0, 1.5, -0.8)
|
||||
treno_istanziato.add_child(cabina)
|
||||
|
||||
var ciminiera = MeshInstance3D.new()
|
||||
var mesh_ciminiera = CylinderMesh.new()
|
||||
mesh_ciminiera.top_radius = 0.2
|
||||
mesh_ciminiera.bottom_radius = 0.3
|
||||
mesh_ciminiera.height = 0.8
|
||||
ciminiera.mesh = mesh_ciminiera
|
||||
ciminiera.material_override = mat_carrozzeria
|
||||
ciminiera.position = Vector3(0, 1.2, 1.0)
|
||||
treno_istanziato.add_child(ciminiera)
|
||||
|
||||
@@ -71,6 +71,7 @@ extends Node3D
|
||||
@export var materiale_nuvole: ShaderMaterial
|
||||
@export var nodo_polvere: ColorRect
|
||||
@export var materiale_acqua: ShaderMaterial
|
||||
@export var materiale_fili_luce: ShaderMaterial
|
||||
|
||||
@export_group("Meteo (Pioggia & Fulmini)")
|
||||
@export var colore_mood_pioggia: Color = Color(0.5, 0.6, 0.7, 1.0)
|
||||
@@ -105,6 +106,7 @@ extends Node3D
|
||||
@export var quantita_vento: int = 100
|
||||
@export var raggio_spawn_vento: float = 25.0
|
||||
@export var altezza_spawn_vento: float = 5.0
|
||||
@export_range(0.0, 5.0) var forza_vento_fili_base: float = 1.0
|
||||
|
||||
@export_group("Neve")
|
||||
@export var bottone_neve: Button
|
||||
@@ -324,6 +326,12 @@ func _process(delta: float) -> void:
|
||||
|
||||
materiale_acqua.set_shader_parameter("deep_water_color", final_acqua_deep)
|
||||
|
||||
# --- GESTIONE VENTO DEI FILI DELLA LUCE ---
|
||||
if materiale_fili_luce:
|
||||
# Interpoliamo tra la forza base (es. 1.0) e una bufera (5.0) in base alla pioggia
|
||||
var vento_attuale = lerp(forza_vento_fili_base, 5.0, intensita_pioggia)
|
||||
materiale_fili_luce.set_shader_parameter("forza_vento", vento_attuale)
|
||||
|
||||
var night_val = clamp(tempo_giorno - 2.0, 0.0, 1.0)
|
||||
|
||||
var attenuazione_luce_neve = lerp(1.0, 0.55, actual_snow_amount * (1.0 - night_val))
|
||||
|
||||
@@ -10,6 +10,12 @@ extends Node3D
|
||||
@export var dimensione_chunk: float = 20.0
|
||||
@export var raggio_visivo: int = 3
|
||||
@export var scala_distretti: float = 0.05
|
||||
@export var materiale_filo_palo: ShaderMaterial # <--- NUOVO MATERIALE PER I FILI
|
||||
@export_range(0.01, 1.0) var spessore_filo: float = 0.05
|
||||
@export_range(0.0, 5.0) var forza_vento_fili: float = 1.0 # <--- SLIDER DEL VENTO
|
||||
|
||||
# Memoria per non doppiare i fili tra due chunk
|
||||
var connessioni_pali: Dictionary = {}
|
||||
|
||||
var scacchiera: Dictionary = {}
|
||||
var ultima_pos_griglia_treno: Vector2i = Vector2i(999999, 999999)
|
||||
@@ -21,6 +27,7 @@ var dropdown_biomi: OptionButton
|
||||
var lbl_bioma: Label
|
||||
var lbl_distanza: Label
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if lista_biomi.is_empty() or path_treno == null: return
|
||||
|
||||
@@ -35,7 +42,7 @@ func _ready() -> void:
|
||||
generatore_altitudine.frequency = scala_distretti * 0.5
|
||||
|
||||
_crea_ui_gps()
|
||||
_aggiorna_set_pieces() # Accende/Spegne i mega-templi all'avvio
|
||||
_aggiorna_set_pieces()
|
||||
print("✅ Generatore a Distretti Dinamici Pronto.")
|
||||
|
||||
func _crea_ui_gps() -> void:
|
||||
@@ -81,17 +88,10 @@ func _crea_ui_gps() -> void:
|
||||
|
||||
_radar_bioma_treno()
|
||||
|
||||
# --- GESTIONE DEI MEGA-PEZZI (SET PIECES) ---
|
||||
# --- GESTIONE DEI MEGA-PEZZI (SET PIECES) ---
|
||||
func _aggiorna_set_pieces() -> void:
|
||||
var set_pieces = get_tree().get_nodes_in_group("set_pieces")
|
||||
|
||||
print("\n--- CONTROLLO SET PIECES ---")
|
||||
print("🔍 Trovati ", set_pieces.size(), " Set Pieces nel gruppo 'set_pieces'.")
|
||||
|
||||
for sp in set_pieces:
|
||||
if not "bioma_esclusivo" in sp or sp.bioma_esclusivo == "":
|
||||
print("⚠️ Il Set Piece '", sp.name, "' non ha un bioma_esclusivo impostato. Rimarrà sempre visibile.")
|
||||
continue
|
||||
|
||||
var bioma_locale = ""
|
||||
@@ -102,43 +102,34 @@ func _aggiorna_set_pieces() -> void:
|
||||
var grid_z = roundi(sp.global_position.z / dimensione_chunk)
|
||||
bioma_locale = _get_nome_bioma_procedurale(generatore_rumore.get_noise_2d(grid_x, grid_z))
|
||||
|
||||
print("👉 Analizzo: '", sp.name, "' | Vuole il bioma: [", sp.bioma_esclusivo, "] | Il bioma attuale qui è: [", bioma_locale, "]")
|
||||
|
||||
if bioma_locale == sp.bioma_esclusivo:
|
||||
sp.show()
|
||||
sp.process_mode = Node.PROCESS_MODE_INHERIT
|
||||
print(" ✅ CORRISPONDENZA! Il tempio è ORA VISIBILE E SOLIDO.")
|
||||
else:
|
||||
sp.hide()
|
||||
sp.process_mode = Node.PROCESS_MODE_DISABLED
|
||||
print(" ❌ NIENTE CORRISPONDENZA! Il tempio è ORA UN FANTASMA INVISIBILE.")
|
||||
print("----------------------------\n")
|
||||
|
||||
func _on_dropdown_biomi_item_selected(indice: int) -> void:
|
||||
if indice == 0: bioma_manuale_attivo = null
|
||||
else: bioma_manuale_attivo = lista_biomi[indice - 1]
|
||||
|
||||
_distruggi_e_rigenera_mondo()
|
||||
|
||||
func _distruggi_e_rigenera_mondo() -> void:
|
||||
# 1. Spegne i templi vecchi e accende quelli nuovi PRIMA di pulire la memoria
|
||||
_aggiorna_set_pieces()
|
||||
|
||||
# 2. Distrugge fisicamente tutti i modelli 3D dei biomi procedurali
|
||||
for pos in scacchiera.keys():
|
||||
var cella = scacchiera[pos]
|
||||
if cella["tipo"] == "bioma":
|
||||
if cella.has("nodo") and is_instance_valid(cella["nodo"]):
|
||||
cella["nodo"].queue_free()
|
||||
|
||||
# 3. AMNESIA TOTALE: Svuotiamo l'intero dizionario (sia biomi che ostacoli vecchi)
|
||||
scacchiera.clear()
|
||||
connessioni_pali.clear()
|
||||
ultima_pos_griglia_treno = Vector2i(999999, 999999)
|
||||
_radar_bioma_treno()
|
||||
ultima_pos_griglia_treno = Vector2i(999999, 999999)
|
||||
_radar_bioma_treno()
|
||||
|
||||
|
||||
|
||||
# 4. Forziamo il treno a sparare i laser e ricreare la mappa al prossimo frame
|
||||
ultima_pos_griglia_treno = Vector2i(999999, 999999)
|
||||
_radar_bioma_treno()
|
||||
ultima_pos_griglia_treno = Vector2i(999999, 999999)
|
||||
_radar_bioma_treno()
|
||||
|
||||
func _physics_process(_delta: float) -> void:
|
||||
if path_treno == null or path_treno.treno_istanziato == null: return
|
||||
@@ -154,6 +145,10 @@ func _physics_process(_delta: float) -> void:
|
||||
_pulisci_chunk_lontani(pos_attuale)
|
||||
_radar_bioma_treno()
|
||||
|
||||
# Aggiorna il vento dei fili
|
||||
if materiale_filo_palo and materiale_filo_palo is ShaderMaterial:
|
||||
materiale_filo_palo.set_shader_parameter("forza_vento", forza_vento_fili)
|
||||
|
||||
func _genera_attorno_al_treno(centro: Vector2i) -> void:
|
||||
for x in range(-raggio_visivo, raggio_visivo + 1):
|
||||
for z in range(-raggio_visivo, raggio_visivo + 1):
|
||||
@@ -167,7 +162,6 @@ func _genera_attorno_al_treno(centro: Vector2i) -> void:
|
||||
func _scegli_catalogo_per_cella(pos_griglia: Vector2i) -> Array[PackedScene]:
|
||||
if bioma_manuale_attivo != null:
|
||||
return bioma_manuale_attivo.chunk_disponibili
|
||||
|
||||
var valore = generatore_rumore.get_noise_2d(pos_griglia.x, pos_griglia.y)
|
||||
var valore_normalizzato = (valore + 1.0) / 2.0
|
||||
var indice = clamp(int(valore_normalizzato * lista_biomi.size()), 0, lista_biomi.size() - 1)
|
||||
@@ -176,7 +170,6 @@ func _scegli_catalogo_per_cella(pos_griglia: Vector2i) -> Array[PackedScene]:
|
||||
func _get_nome_bioma_procedurale(valore: float) -> String:
|
||||
if bioma_manuale_attivo != null:
|
||||
return bioma_manuale_attivo.nome_bioma
|
||||
|
||||
var valore_normalizzato = (valore + 1.0) / 2.0
|
||||
var indice = clamp(int(valore_normalizzato * lista_biomi.size()), 0, lista_biomi.size() - 1)
|
||||
return lista_biomi[indice].nome_bioma
|
||||
@@ -198,6 +191,7 @@ func _registra_cella_con_laser(pos_griglia: Vector2i) -> bool:
|
||||
var uscite_trovate = {"nord": false, "est": false, "sud": false, "ovest": false}
|
||||
var altezze_trovate = {"nord": 0, "est": 0, "sud": 0, "ovest": 0}
|
||||
|
||||
# Risaliamo l'albero per trovare lo script InfoChunk
|
||||
while nodo_corrente != null and nodo_corrente != get_tree().root:
|
||||
if nodo_corrente.has_method("get_dati_ruotati"):
|
||||
var scatti_rotazione = roundi(rad_to_deg(nodo_corrente.global_rotation.y) / -90.0)
|
||||
@@ -207,7 +201,24 @@ func _registra_cella_con_laser(pos_griglia: Vector2i) -> bool:
|
||||
break
|
||||
nodo_corrente = nodo_corrente.get_parent()
|
||||
|
||||
scacchiera[pos_griglia] = {"tipo": "ostacolo", "uscite": uscite_trovate, "altezze": altezze_trovate}
|
||||
# --- VERIFICA DEI PALI SUL PEZZO PRE-COSTRUITO ---
|
||||
var ha_il_palo = false
|
||||
if nodo_corrente != null and "ha_palo_luce" in nodo_corrente:
|
||||
ha_il_palo = nodo_corrente.ha_palo_luce
|
||||
|
||||
scacchiera[pos_griglia] = {
|
||||
"tipo": "ostacolo",
|
||||
"uscite": uscite_trovate,
|
||||
"altezze": altezze_trovate,
|
||||
"nodo": nodo_corrente,
|
||||
"ha_palo": ha_il_palo # Salviamo in memoria che questo binario ha i pali
|
||||
}
|
||||
|
||||
# MAGIA: Se il laser ha scoperto un tuo binario pre-costruito con i pali,
|
||||
# lo tratta come se fosse appena spawnato e lancia i fili verso i vicini!
|
||||
if ha_il_palo:
|
||||
_collega_pali_luce(pos_griglia, nodo_corrente)
|
||||
|
||||
return true
|
||||
return false
|
||||
|
||||
@@ -279,28 +290,31 @@ func _piazza_bioma_compatibile(pos_griglia: Vector2i) -> void:
|
||||
nuovo_chunk.position = Vector3(pos_griglia.x * dimensione_chunk, 0, pos_griglia.y * dimensione_chunk)
|
||||
nuovo_chunk.rotation.y = scelto.rotazione * (-PI / 2.0)
|
||||
|
||||
scacchiera[pos_griglia] = {"tipo": "bioma", "uscite": scelto.dati["connessioni"], "altezze": scelto.dati["altezze"], "nodo": nuovo_chunk}
|
||||
# --- SALVATAGGIO NELLA SCACCHIERA INCLUDENDO IL PALO ---
|
||||
var ha_il_palo = "ha_palo_luce" in nuovo_chunk and nuovo_chunk.ha_palo_luce
|
||||
scacchiera[pos_griglia] = {
|
||||
"tipo": "bioma",
|
||||
"uscite": scelto.dati["connessioni"],
|
||||
"altezze": scelto.dati["altezze"],
|
||||
"nodo": nuovo_chunk,
|
||||
"ha_palo": ha_il_palo
|
||||
}
|
||||
|
||||
# Se il chunk appena piazzato ha un palo, lanciamo i fili verso un vicino
|
||||
if ha_il_palo:
|
||||
_collega_pali_luce(pos_griglia, nuovo_chunk)
|
||||
|
||||
else:
|
||||
push_warning("⚠️ MANCA UN PEZZO IN CATALOGO PER LA POSIZIONE " + str(pos_griglia) + "!")
|
||||
|
||||
var fmt_alt = func(req): return str(req) if req != -1 else "Libero"
|
||||
var fmt_conn = func(req): return "Sì" if req == 1 else ("No" if req == 0 else "Libero")
|
||||
|
||||
print("--- IDENTIKIT DEL PEZZO CHE TI MANCA ---")
|
||||
print("Altezze richieste -> Nord: ", fmt_alt.call(req_alt_nord), " | Est: ", fmt_alt.call(req_alt_est), " | Sud: ", fmt_alt.call(req_alt_sud), " | Ovest: ", fmt_alt.call(req_alt_ovest))
|
||||
print("----------------------------------------\n")
|
||||
|
||||
var backup = catalogo_zona[0].instantiate()
|
||||
add_child(backup)
|
||||
backup.position = Vector3(pos_griglia.x * dimensione_chunk, 0, pos_griglia.y * dimensione_chunk)
|
||||
|
||||
var altezze_sicure = {
|
||||
"nord": req_alt_nord if req_alt_nord != -1 else altitudine_target,
|
||||
"est": req_alt_est if req_alt_est != -1 else altitudine_target,
|
||||
"sud": req_alt_sud if req_alt_sud != -1 else altitudine_target,
|
||||
"ovest": req_alt_ovest if req_alt_ovest != -1 else altitudine_target
|
||||
}
|
||||
scacchiera[pos_griglia] = {"tipo": "bioma", "uscite": {"nord":false, "est":false, "sud":false, "ovest":false}, "altezze": altezze_sicure, "nodo": backup}
|
||||
scacchiera[pos_griglia] = {"tipo": "bioma", "uscite": {"nord":false, "est":false, "sud":false, "ovest":false}, "altezze": altezze_sicure, "nodo": backup, "ha_palo": false}
|
||||
|
||||
func _richiede_connessione(pos_vicino: Vector2i, lato_richiesto: String) -> int:
|
||||
if not scacchiera.has(pos_vicino):
|
||||
@@ -316,12 +330,10 @@ func _richiede_altezza(pos_vicino: Vector2i, lato_richiesto: String) -> int:
|
||||
|
||||
func _radar_bioma_treno() -> void:
|
||||
if path_treno == null or path_treno.curve == null or path_treno.treno_istanziato == null: return
|
||||
|
||||
if bioma_manuale_attivo != null:
|
||||
if lbl_bioma: lbl_bioma.text = bioma_manuale_attivo.nome_bioma
|
||||
if lbl_distanza: lbl_distanza.text = "Override manuale (Infinita)"
|
||||
return
|
||||
|
||||
var pos_treno = path_treno.treno_istanziato.global_position
|
||||
var grid_x = roundi(pos_treno.x / dimensione_chunk)
|
||||
var grid_z = roundi(pos_treno.z / dimensione_chunk)
|
||||
@@ -336,11 +348,9 @@ func _radar_bioma_treno() -> void:
|
||||
var progresso_futuro = wrapf(progresso_attuale + (step * dimensione_chunk), 0.0, lunghezza_totale)
|
||||
var pos_futura_locale = path_treno.curve.sample_baked(progresso_futuro, true)
|
||||
var pos_futura_globale = path_treno.to_global(pos_futura_locale)
|
||||
|
||||
var f_x = roundi(pos_futura_globale.x / dimensione_chunk)
|
||||
var f_z = roundi(pos_futura_globale.z / dimensione_chunk)
|
||||
var bioma_futuro = _get_nome_bioma_procedurale(generatore_rumore.get_noise_2d(f_x, f_z))
|
||||
|
||||
if bioma_futuro != bioma_attuale:
|
||||
distanza_cambio = step * dimensione_chunk
|
||||
prossimo_bioma = bioma_futuro
|
||||
@@ -371,3 +381,197 @@ func _pulisci_chunk_lontani(centro_attuale: Vector2i) -> void:
|
||||
|
||||
for pos in celle_da_rimuovere:
|
||||
scacchiera.erase(pos)
|
||||
|
||||
# ==========================================================
|
||||
# ============ NUOVE FUNZIONI FILI DELLA LUCE ==============
|
||||
# ==========================================================
|
||||
|
||||
# --- 1. FUNZIONE SCUDO: Trova i pali anche se hai dimenticato di aggiornare l'Inspector ---
|
||||
# --- 1. FUNZIONE SCUDO (Più sicura contro i nodi nulli) ---
|
||||
func _ottieni_pali(chunk: Node3D, lato: String) -> Array[Node3D]:
|
||||
var pali: Array[Node3D] = []
|
||||
if lato == "sx":
|
||||
if "attacchi_sx" in chunk and chunk.attacchi_sx != null:
|
||||
for p in chunk.attacchi_sx:
|
||||
if is_instance_valid(p): pali.append(p)
|
||||
# Se l'array è vuoto, usa il vecchio nodo singolo
|
||||
if pali.is_empty() and "nodo_attacco_sx" in chunk and is_instance_valid(chunk.get("nodo_attacco_sx")):
|
||||
pali.append(chunk.get("nodo_attacco_sx"))
|
||||
else:
|
||||
if "attacchi_dx" in chunk and chunk.attacchi_dx != null:
|
||||
for p in chunk.attacchi_dx:
|
||||
if is_instance_valid(p): pali.append(p)
|
||||
if pali.is_empty() and "nodo_attacco_dx" in chunk and is_instance_valid(chunk.get("nodo_attacco_dx")):
|
||||
pali.append(chunk.get("nodo_attacco_dx"))
|
||||
return pali
|
||||
|
||||
# --- 2. LA LOGICA DI COLLEGAMENTO (Raggio Ampio) ---
|
||||
func _collega_pali_luce(pos_griglia_nuovo: Vector2i, chunk_nuovo: Node3D) -> void:
|
||||
if chunk_nuovo is Node3D: chunk_nuovo.force_update_transform()
|
||||
|
||||
var sx_nuovi = _ottieni_pali(chunk_nuovo, "sx")
|
||||
var dx_nuovi = _ottieni_pali(chunk_nuovo, "dx")
|
||||
if sx_nuovi.is_empty() or dx_nuovi.is_empty(): return
|
||||
|
||||
var id_nuovo = chunk_nuovo.get_instance_id()
|
||||
if not connessioni_pali.has(id_nuovo): connessioni_pali[id_nuovo] = 0
|
||||
|
||||
# Se ha già 2 fili, si ferma qui.
|
||||
if connessioni_pali[id_nuovo] >= 2: return
|
||||
|
||||
var p_sx_mio_best = null; var p_dx_mio_best = null
|
||||
var p_sx_tuo_best = null; var p_dx_tuo_best = null
|
||||
var miglior_vicino = null
|
||||
var miglior_distanza = 999999.0
|
||||
|
||||
# RAGGIO GIGANTE: Scansioniamo un'area 13x13 celle (circa 260 metri!)
|
||||
# Questo garantisce che nessun palo venga MAI saltato, anche nelle curve più larghe.
|
||||
var raggio_ricerca = 3
|
||||
|
||||
# FASE 1: Cerchiamo un palo "pulito" (con meno di 2 fili)
|
||||
for x in range(-raggio_ricerca, raggio_ricerca + 1):
|
||||
for z in range(-raggio_ricerca, raggio_ricerca + 1):
|
||||
if x == 0 and z == 0: continue
|
||||
|
||||
var pos_vicino = pos_griglia_nuovo + Vector2i(x, z)
|
||||
if scacchiera.has(pos_vicino) and scacchiera[pos_vicino].get("ha_palo", false):
|
||||
var chunk_vicino = scacchiera[pos_vicino]["nodo"]
|
||||
if not is_instance_valid(chunk_vicino) or chunk_vicino == chunk_nuovo: continue
|
||||
|
||||
var id_vicino = chunk_vicino.get_instance_id()
|
||||
var conn_vicino = connessioni_pali.get(id_vicino, 0)
|
||||
|
||||
# Ignoriamo i pali già pieni
|
||||
if conn_vicino >= 2: continue
|
||||
|
||||
if chunk_vicino is Node3D: chunk_vicino.force_update_transform()
|
||||
var sx_vicini = _ottieni_pali(chunk_vicino, "sx")
|
||||
var dx_vicini = _ottieni_pali(chunk_vicino, "dx")
|
||||
if sx_vicini.is_empty() or dx_vicini.is_empty(): continue
|
||||
|
||||
for i_m in range(sx_nuovi.size()):
|
||||
for i_t in range(sx_vicini.size()):
|
||||
var c_mio = (sx_nuovi[i_m].global_position + dx_nuovi[i_m].global_position) / 2.0
|
||||
var c_tuo = (sx_vicini[i_t].global_position + dx_vicini[i_t].global_position) / 2.0
|
||||
var dist = c_mio.distance_to(c_tuo)
|
||||
|
||||
if dist < miglior_distanza:
|
||||
miglior_distanza = dist
|
||||
miglior_vicino = chunk_vicino
|
||||
p_sx_mio_best = sx_nuovi[i_m]
|
||||
p_dx_mio_best = dx_nuovi[i_m]
|
||||
p_sx_tuo_best = sx_vicini[i_t]
|
||||
p_dx_tuo_best = dx_vicini[i_t]
|
||||
|
||||
# FASE 2 (Estrema Razio): Se c'è un buco enorme e non troviamo pali "puliti",
|
||||
# ci leghiamo a QUALSIASI palo nel raggio di 260m pur di non rimanere isolati.
|
||||
if miglior_vicino == null:
|
||||
for x in range(-raggio_ricerca, raggio_ricerca + 1):
|
||||
for z in range(-raggio_ricerca, raggio_ricerca + 1):
|
||||
if x == 0 and z == 0: continue
|
||||
|
||||
var pos_vicino = pos_griglia_nuovo + Vector2i(x, z)
|
||||
if scacchiera.has(pos_vicino) and scacchiera[pos_vicino].get("ha_palo", false):
|
||||
var chunk_vicino = scacchiera[pos_vicino]["nodo"]
|
||||
if not is_instance_valid(chunk_vicino) or chunk_vicino == chunk_nuovo: continue
|
||||
|
||||
if chunk_vicino is Node3D: chunk_vicino.force_update_transform()
|
||||
var sx_vicini = _ottieni_pali(chunk_vicino, "sx")
|
||||
var dx_vicini = _ottieni_pali(chunk_vicino, "dx")
|
||||
if sx_vicini.is_empty() or dx_vicini.is_empty(): continue
|
||||
|
||||
for i_m in range(sx_nuovi.size()):
|
||||
for i_t in range(sx_vicini.size()):
|
||||
var c_mio = (sx_nuovi[i_m].global_position + dx_nuovi[i_m].global_position) / 2.0
|
||||
var c_tuo = (sx_vicini[i_t].global_position + dx_vicini[i_t].global_position) / 2.0
|
||||
var dist = c_mio.distance_to(c_tuo)
|
||||
|
||||
if dist < miglior_distanza:
|
||||
miglior_distanza = dist
|
||||
miglior_vicino = chunk_vicino
|
||||
p_sx_mio_best = sx_nuovi[i_m]
|
||||
p_dx_mio_best = dx_nuovi[i_m]
|
||||
p_sx_tuo_best = sx_vicini[i_t]
|
||||
p_dx_tuo_best = dx_vicini[i_t]
|
||||
|
||||
# CREAZIONE DEL COLLEGAMENTO
|
||||
# Abbiamo allungato la tolleranza a 8 chunk (160 metri) per permettere fili lunghissimi se necessari!
|
||||
var max_dist = dimensione_chunk * 8.0
|
||||
|
||||
if miglior_vicino != null and miglior_distanza < max_dist:
|
||||
var dist_dritto = p_sx_mio_best.global_position.distance_to(p_sx_tuo_best.global_position) + p_dx_mio_best.global_position.distance_to(p_dx_tuo_best.global_position)
|
||||
var dist_incrocio = p_sx_mio_best.global_position.distance_to(p_dx_tuo_best.global_position) + p_dx_mio_best.global_position.distance_to(p_sx_tuo_best.global_position)
|
||||
|
||||
if dist_dritto <= dist_incrocio:
|
||||
_disegna_parabola(p_sx_mio_best.global_position, p_sx_tuo_best.global_position, chunk_nuovo)
|
||||
_disegna_parabola(p_dx_mio_best.global_position, p_dx_tuo_best.global_position, chunk_nuovo)
|
||||
else:
|
||||
_disegna_parabola(p_sx_mio_best.global_position, p_dx_tuo_best.global_position, chunk_nuovo)
|
||||
_disegna_parabola(p_dx_mio_best.global_position, p_sx_tuo_best.global_position, chunk_nuovo)
|
||||
|
||||
connessioni_pali[id_nuovo] += 1
|
||||
var id_vicino = miglior_vicino.get_instance_id()
|
||||
if not connessioni_pali.has(id_vicino): connessioni_pali[id_vicino] = 0
|
||||
connessioni_pali[id_vicino] += 1
|
||||
|
||||
func _disegna_parabola(p1: Vector3, p2: Vector3, genitore: Node3D) -> void:
|
||||
var segmenti = 15
|
||||
var abbassamento = 1.5
|
||||
var punti_curva = []
|
||||
var sag_factors = [] # Salva quanto è "al centro" ogni punto
|
||||
|
||||
for i in range(segmenti + 1):
|
||||
var t = float(i) / float(segmenti)
|
||||
var pos_globale = p1.lerp(p2, t)
|
||||
var gravita = abbassamento * (1.0 - pow(2.0 * t - 1.0, 2.0))
|
||||
pos_globale.y -= gravita
|
||||
|
||||
punti_curva.append(genitore.to_local(pos_globale))
|
||||
|
||||
# Curva del vento: 0 agli estremi, 1.0 al centro spaccato
|
||||
sag_factors.append(sin(t * PI))
|
||||
|
||||
var st = SurfaceTool.new()
|
||||
st.begin(Mesh.PRIMITIVE_TRIANGLES)
|
||||
|
||||
var lati = 4
|
||||
var raggio = spessore_filo / 2.0
|
||||
|
||||
for i in range(punti_curva.size() - 1):
|
||||
var p_corrente = punti_curva[i]
|
||||
var p_prossimo = punti_curva[i+1]
|
||||
var sag_corrente = sag_factors[i]
|
||||
var sag_prossimo = sag_factors[i+1]
|
||||
|
||||
var dir = (p_prossimo - p_corrente).normalized()
|
||||
var up = Vector3.UP
|
||||
var right = dir.cross(up).normalized()
|
||||
if right.length_squared() < 0.01:
|
||||
right = dir.cross(Vector3.RIGHT).normalized()
|
||||
up = right.cross(dir).normalized()
|
||||
|
||||
for s in range(lati):
|
||||
var ang1 = (float(s) / lati) * TAU
|
||||
var ang2 = (float((s + 1) % lati) / lati) * TAU
|
||||
var offset1 = (right * cos(ang1) + up * sin(ang1)) * raggio
|
||||
var offset2 = (right * cos(ang2) + up * sin(ang2)) * raggio
|
||||
|
||||
# Diciamo al colore del vertice quanto può muoversi con il vento!
|
||||
st.set_color(Color(sag_corrente, 0, 0, 1))
|
||||
st.add_vertex(p_corrente + offset1)
|
||||
st.set_color(Color(sag_corrente, 0, 0, 1))
|
||||
st.add_vertex(p_corrente + offset2)
|
||||
st.set_color(Color(sag_prossimo, 0, 0, 1))
|
||||
st.add_vertex(p_prossimo + offset1)
|
||||
|
||||
st.set_color(Color(sag_corrente, 0, 0, 1))
|
||||
st.add_vertex(p_corrente + offset2)
|
||||
st.set_color(Color(sag_prossimo, 0, 0, 1))
|
||||
st.add_vertex(p_prossimo + offset2)
|
||||
st.set_color(Color(sag_prossimo, 0, 0, 1))
|
||||
st.add_vertex(p_prossimo + offset1)
|
||||
|
||||
var nodo_filo = MeshInstance3D.new()
|
||||
nodo_filo.mesh = st.commit()
|
||||
if materiale_filo_palo: nodo_filo.material_override = materiale_filo_palo
|
||||
genitore.add_child(nodo_filo)
|
||||
|
||||
@@ -4,7 +4,7 @@ class_name InfoChunk
|
||||
@export_enum("Bioma", "Binario_Dritto", "Binario_Curva") var tipo_chunk: int = 0
|
||||
|
||||
@export_group("Regole Set Piece (Pezzi Unici)")
|
||||
@export var bioma_esclusivo: String = "" # Es: scrivi "Foresta"
|
||||
@export var bioma_esclusivo: String = ""
|
||||
|
||||
@export_group("Uscite Base (Senza Rotazione)")
|
||||
@export var nord: bool = false
|
||||
@@ -18,15 +18,16 @@ class_name InfoChunk
|
||||
@export var altezza_sud: int = 0
|
||||
@export var altezza_ovest: int = 0
|
||||
|
||||
# --- NUOVA AGGIUNTA AUTOMATICA ---
|
||||
|
||||
@export_group("Palo della Luce")
|
||||
@export var ha_palo_luce: bool = false
|
||||
@export var attacchi_sx: Array[Node3D] # Array di Marker3D per i fili sinistri
|
||||
@export var attacchi_dx: Array[Node3D] # Array di Marker3D per i fili destri
|
||||
|
||||
func _ready() -> void:
|
||||
# Se hai scritto un bioma nell'Inspector, il pezzo capisce di essere
|
||||
# un pezzo speciale e si aggiunge al gruppo dei fantasmi da solo!
|
||||
if bioma_esclusivo != "":
|
||||
add_to_group("set_pieces")
|
||||
|
||||
# ... qui sotto continua la tua normale funzione get_dati_ruotati() ...
|
||||
|
||||
func get_dati_ruotati(scatti_90_gradi: int) -> Dictionary:
|
||||
var uscite_originali = [nord, est, sud, ovest]
|
||||
var altezze_originali = [altezza_nord, altezza_est, altezza_sud, altezza_ovest]
|
||||
|
||||
Reference in New Issue
Block a user