diff --git a/source/_development/ayuroo/levels/_experimental/CircusTent.glb.import b/source/_development/ayuroo/levels/_experimental/CircusTent.glb.import index af9d7e5..31119ac 100644 --- a/source/_development/ayuroo/levels/_experimental/CircusTent.glb.import +++ b/source/_development/ayuroo/levels/_experimental/CircusTent.glb.import @@ -37,6 +37,29 @@ import_script/path="" materials/extract=0 materials/extract_format=0 materials/extract_path="" -_subresources={} +_subresources={ +"materials": { +"Material": { +"use_external/enabled": false, +"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/Material.tres", +"use_external/path": "uid://bke0ojvbhqtnt" +}, +"prototype_grid_dark": { +"use_external/enabled": true, +"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/prototype_grid_dark.tres", +"use_external/path": "uid://bye8jd50tg7wl" +}, +"prototype_grid_orange": { +"use_external/enabled": true, +"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/prototype_grid_orange.tres", +"use_external/path": "uid://uejce7ra2gcy" +}, +"prototype_grid_red": { +"use_external/enabled": true, +"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/prototype_grid_red.tres", +"use_external/path": "uid://lvm62memxs5k" +} +} +} gltf/naming_version=2 -gltf/embedded_image_handling=1 +gltf/embedded_image_handling=0 diff --git a/source/_development/ayuroo/levels/_experimental/_layout_test.tscn b/source/_development/ayuroo/levels/_experimental/_layout_test.tscn index 18ddb8c..cc67b87 100644 --- a/source/_development/ayuroo/levels/_experimental/_layout_test.tscn +++ b/source/_development/ayuroo/levels/_experimental/_layout_test.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=3 uid="uid://srvm3v1grugk"] +[gd_scene load_steps=13 format=3 uid="uid://srvm3v1grugk"] [ext_resource type="Script" uid="uid://cigop0ivp5vvu" path="res://src/core/world/level/level.gd" id="1_0kdur"] [ext_resource type="Material" uid="uid://c38215ysnknyk" path="res://assets/materials/dev/dark/dark_01.tres" id="2_cxrf3"] @@ -9,12 +9,15 @@ [ext_resource type="PackedScene" uid="uid://do54no1h1pv8i" path="res://_development/ayuroo/models/circus_tent/circus_tent_inside.glb" id="6_kb2k5"] [ext_resource type="LightmapGIData" uid="uid://c0mcaeg0ikvmo" path="res://_development/ayuroo/levels/_experimental/_layout_test.lmbake" id="7_cv3fe"] [ext_resource type="Script" uid="uid://dbcy7qdq4hqlg" path="res://addons/lightmap_probe_grid/lightmap_probe_grid.gd" id="9_p8lkr"] +[ext_resource type="Material" uid="uid://c4uudb0m5p048" path="res://tools/lightbeam/lightbeam_material.tres" id="10_283a8"] [sub_resource type="Environment" id="Environment_cv3fe"] tonemap_mode = 2 glow_strength = 1.25 glow_bloom = 1.0 +[sub_resource type="PlaneMesh" id="PlaneMesh_vl7nw"] + [node name="LayoutTest" type="Node3D"] script = ExtResource("1_0kdur") metadata/_custom_type_script = "uid://cigop0ivp5vvu" @@ -353,23 +356,24 @@ omni_range = 83.0 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) [node name="ReflectionProbe" type="ReflectionProbe" parent="LightmapGI/ReflectionProbes"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 2.6, 3.35) -size = Vector3(14, 6.8, 5.3) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 2.6, 3.5) +size = Vector3(14, 6.8, 5) interior = true [node name="ReflectionProbe2" type="ReflectionProbe" parent="LightmapGI/ReflectionProbes"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.049999952, 4.2, -2.0000005) -size = Vector3(6.1, 10, 16) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.2, -2.0000005) +size = Vector3(6, 10, 16) interior = true [node name="ReflectionProbe3" type="ReflectionProbe" parent="LightmapGI/ReflectionProbes"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.3999996, 6.0999994, -13) -size = Vector3(15, 6.2000003, 10) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.8999996, 5.999999, -13.5) +size = Vector3(16.2, 6, 11) +origin_offset = Vector3(0, 0, -1.42) interior = true [node name="ReflectionProbe4" type="ReflectionProbe" parent="LightmapGI/ReflectionProbes"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.8999996, 6.2, -22.5) -size = Vector3(16, 6, 13) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 6.2, -23) +size = Vector3(16, 6, 12) interior = true [node name="LightmapProbeGrid" type="Node3D" parent="LightmapGI"] @@ -1079,3 +1083,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, -1.8584228, -4.24 [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_cv3fe") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +transform = Transform3D(44, 0, 0, 0, -4.371139e-08, -31, 0, 1, -1.3550531e-06, 0, 48, -51.4) +material_override = ExtResource("10_283a8") +mesh = SubResource("PlaneMesh_vl7nw") diff --git a/source/_development/ayuroo/levels/_experimental/_test_level.glb.import b/source/_development/ayuroo/levels/_experimental/_test_level.glb.import index 623a74e..446c1f4 100644 --- a/source/_development/ayuroo/levels/_experimental/_test_level.glb.import +++ b/source/_development/ayuroo/levels/_experimental/_test_level.glb.import @@ -38,15 +38,16 @@ materials/extract=0 materials/extract_format=0 materials/extract_path="" _subresources={ -"meshes": { -"Main_Cylinder": { -"generate/lightmap_uv": 2, -"generate/lods": 2, -"generate/shadow_meshes": 0, -"lods/normal_merge_angle": 20.0, -"save_to_file/enabled": false, -"save_to_file/fallback_path": "", -"save_to_file/path": "" +"materials": { +"prototype_grid_dark": { +"use_external/enabled": true, +"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/prototype_grid_dark.tres", +"use_external/path": "uid://bye8jd50tg7wl" +}, +"prototype_grid_orange": { +"use_external/enabled": true, +"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/prototype_grid_orange.tres", +"use_external/path": "uid://uejce7ra2gcy" } }, "nodes": { diff --git a/source/_development/ayuroo/levels/_experimental/_test_level_texture_02.png b/source/_development/ayuroo/levels/_experimental/_test_level_texture_02.png deleted file mode 100644 index dec5b59..0000000 Binary files a/source/_development/ayuroo/levels/_experimental/_test_level_texture_02.png and /dev/null differ diff --git a/source/_development/ayuroo/levels/_experimental/_test_level_texture_13.png b/source/_development/ayuroo/levels/_experimental/_test_level_texture_13.png deleted file mode 100644 index 13c4388..0000000 Binary files a/source/_development/ayuroo/levels/_experimental/_test_level_texture_13.png and /dev/null differ diff --git a/source/_development/ayuroo/levels/_experimental/_test_level_texture_13.png.import b/source/_development/ayuroo/levels/_experimental/_test_level_texture_13.png.import deleted file mode 100644 index 16303c3..0000000 --- a/source/_development/ayuroo/levels/_experimental/_test_level_texture_13.png.import +++ /dev/null @@ -1,44 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dputr5bj2tbgh" -path.s3tc="res://.godot/imported/_test_level_texture_13.png-a0514b44f564dc67d27b95473e4540f6.s3tc.ctex" -metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true -} -generator_parameters={ -"md5": "5220913b82328d262f5516be440341d3" -} - -[deps] - -source_file="res://_development/ayuroo/levels/_experimental/_test_level_texture_13.png" -dest_files=["res://.godot/imported/_test_level_texture_13.png-a0514b44f564dc67d27b95473e4540f6.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 diff --git a/source/_development/ayuroo/levels/_experimental/prototype_grid_dark.tres b/source/_development/ayuroo/levels/_experimental/prototype_grid_dark.tres new file mode 100644 index 0000000..02b5068 --- /dev/null +++ b/source/_development/ayuroo/levels/_experimental/prototype_grid_dark.tres @@ -0,0 +1,10 @@ +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bye8jd50tg7wl"] + +[ext_resource type="Texture2D" uid="uid://dw3af4ir446rk" path="res://assets/materials/dev/dark/texture_13.png" id="1_pfrvh"] + +[resource] +resource_name = "prototype_grid_dark" +albedo_texture = ExtResource("1_pfrvh") +roughness = 0.5 +uv1_scale = Vector3(2, 2, 1) +uv1_offset = Vector3(0, -1, 0) diff --git a/source/_development/ayuroo/levels/_experimental/prototype_grid_orange.tres b/source/_development/ayuroo/levels/_experimental/prototype_grid_orange.tres new file mode 100644 index 0000000..cfb13c2 --- /dev/null +++ b/source/_development/ayuroo/levels/_experimental/prototype_grid_orange.tres @@ -0,0 +1,10 @@ +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://uejce7ra2gcy"] + +[ext_resource type="Texture2D" uid="uid://12e0onm52r6b" path="res://assets/materials/dev/orange/texture_02.png" id="1_67eg5"] + +[resource] +resource_name = "prototype_grid_orange" +albedo_texture = ExtResource("1_67eg5") +roughness = 0.5 +uv1_scale = Vector3(2, 2, 1) +uv1_offset = Vector3(0, -1, 0) diff --git a/source/_development/ayuroo/levels/_experimental/prototype_grid_red.tres b/source/_development/ayuroo/levels/_experimental/prototype_grid_red.tres new file mode 100644 index 0000000..1ac9e53 --- /dev/null +++ b/source/_development/ayuroo/levels/_experimental/prototype_grid_red.tres @@ -0,0 +1,10 @@ +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://lvm62memxs5k"] + +[ext_resource type="Texture2D" uid="uid://bwo1s4wl34tyt" path="res://assets/materials/dev/red/texture_02.png" id="1_vv0ty"] + +[resource] +resource_name = "prototype_grid_red" +albedo_texture = ExtResource("1_vv0ty") +roughness = 0.5 +uv1_scale = Vector3(2, 2, 1) +uv1_offset = Vector3(0, -1, 0) diff --git a/source/_development/ayuroo/models/circus_tent/circus_tent_inside.glb.import b/source/_development/ayuroo/models/circus_tent/circus_tent_inside.glb.import index 56517f1..03e02c3 100644 --- a/source/_development/ayuroo/models/circus_tent/circus_tent_inside.glb.import +++ b/source/_development/ayuroo/models/circus_tent/circus_tent_inside.glb.import @@ -40,16 +40,21 @@ materials/extract_path="" _subresources={ "materials": { "prototype_grid_orange": { -"use_external/enabled": false, -"use_external/fallback_path": "", -"use_external/path": "" +"use_external/enabled": true, +"use_external/fallback_path": "res://_development/ayuroo/models/circus_tent/prototype_grid_orange.tres", +"use_external/path": "uid://dknefw4cwovq" }, "prototype_grid_red": { "use_external/enabled": true, "use_external/fallback_path": "res://assets/materials/cloth/red_cloth.tres", -"use_external/path": "uid://coc0q5sjnejkb" +"use_external/path": "uid://d2wd6sxagg32u" +}, +"skylight": { +"use_external/enabled": false, +"use_external/fallback_path": "res://_development/ayuroo/models/circus_tent/skylight.tres", +"use_external/path": "" } } } gltf/naming_version=0 -gltf/embedded_image_handling=1 +gltf/embedded_image_handling=0 diff --git a/source/_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02.png b/source/_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02.png deleted file mode 100644 index dec5b59..0000000 Binary files a/source/_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02.png and /dev/null differ diff --git a/source/_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02.png.import b/source/_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02.png.import deleted file mode 100644 index d6c4949..0000000 --- a/source/_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02.png.import +++ /dev/null @@ -1,44 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bxipfm03yci3a" -path.s3tc="res://.godot/imported/circus_tent_inside_texture_02.png-bf8619fb6ee6cd04a4b97816e89764fe.s3tc.ctex" -metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true -} -generator_parameters={ -"md5": "a4091b6db3fc67af97a848a98d5046da" -} - -[deps] - -source_file="res://_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02.png" -dest_files=["res://.godot/imported/circus_tent_inside_texture_02.png-bf8619fb6ee6cd04a4b97816e89764fe.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 diff --git a/source/_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02_1.png.import b/source/_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02_1.png.import deleted file mode 100644 index 32574b2..0000000 --- a/source/_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02_1.png.import +++ /dev/null @@ -1,44 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b1ap5aiudw4xe" -path.s3tc="res://.godot/imported/circus_tent_inside_texture_02_1.png-d0f41eb5896b9fac8cfbc4d5ec507d5f.s3tc.ctex" -metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true -} -generator_parameters={ -"md5": "671c567d75d6cffe7d16440771c026c5" -} - -[deps] - -source_file="res://_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02_1.png" -dest_files=["res://.godot/imported/circus_tent_inside_texture_02_1.png-d0f41eb5896b9fac8cfbc4d5ec507d5f.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 diff --git a/source/_development/ayuroo/models/circus_tent/circus_tent_outside.glb.import b/source/_development/ayuroo/models/circus_tent/circus_tent_outside.glb.import index 308e9e1..58151a2 100644 --- a/source/_development/ayuroo/models/circus_tent/circus_tent_outside.glb.import +++ b/source/_development/ayuroo/models/circus_tent/circus_tent_outside.glb.import @@ -52,4 +52,4 @@ _subresources={ } } gltf/naming_version=2 -gltf/embedded_image_handling=1 +gltf/embedded_image_handling=0 diff --git a/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02.png b/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02.png deleted file mode 100644 index dec5b59..0000000 Binary files a/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02.png and /dev/null differ diff --git a/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02.png.import b/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02.png.import deleted file mode 100644 index 785a89a..0000000 --- a/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02.png.import +++ /dev/null @@ -1,44 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bve8ckrjjnnl6" -path.s3tc="res://.godot/imported/circus_tent_outside_texture_02.png-a2700e20b834c39be78b89df01505add.s3tc.ctex" -metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true -} -generator_parameters={ -"md5": "a4091b6db3fc67af97a848a98d5046da" -} - -[deps] - -source_file="res://_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02.png" -dest_files=["res://.godot/imported/circus_tent_outside_texture_02.png-a2700e20b834c39be78b89df01505add.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 diff --git a/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02_1.png b/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02_1.png deleted file mode 100644 index bf1cb17..0000000 Binary files a/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02_1.png and /dev/null differ diff --git a/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02_1.png.import b/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02_1.png.import deleted file mode 100644 index a0298ac..0000000 --- a/source/_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02_1.png.import +++ /dev/null @@ -1,44 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://gfin457shn1d" -path.s3tc="res://.godot/imported/circus_tent_outside_texture_02_1.png-6cf227f1bd9069a72d323a69b9e2a746.s3tc.ctex" -metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true -} -generator_parameters={ -"md5": "671c567d75d6cffe7d16440771c026c5" -} - -[deps] - -source_file="res://_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02_1.png" -dest_files=["res://.godot/imported/circus_tent_outside_texture_02_1.png-6cf227f1bd9069a72d323a69b9e2a746.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 diff --git a/source/_development/ayuroo/models/circus_tent/prototype_grid_orange.tres b/source/_development/ayuroo/models/circus_tent/prototype_grid_orange.tres index 74da8f1..c9f45b1 100644 --- a/source/_development/ayuroo/models/circus_tent/prototype_grid_orange.tres +++ b/source/_development/ayuroo/models/circus_tent/prototype_grid_orange.tres @@ -1,10 +1,10 @@ [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dknefw4cwovq"] -[ext_resource type="Texture2D" uid="uid://bve8ckrjjnnl6" path="res://_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02.png" id="1_52pi3"] +[ext_resource type="Texture2D" uid="uid://12e0onm52r6b" path="res://assets/materials/dev/orange/texture_02.png" id="1_8tkn2"] [resource] resource_name = "prototype_grid_orange" -albedo_texture = ExtResource("1_52pi3") +albedo_texture = ExtResource("1_8tkn2") roughness = 0.97 uv1_scale = Vector3(2, 2, 1) uv1_offset = Vector3(0, -1, 0) diff --git a/source/_development/ayuroo/models/circus_tent/prototype_grid_red.tres b/source/_development/ayuroo/models/circus_tent/prototype_grid_red.tres index 1d2950d..89b3329 100644 --- a/source/_development/ayuroo/models/circus_tent/prototype_grid_red.tres +++ b/source/_development/ayuroo/models/circus_tent/prototype_grid_red.tres @@ -1,10 +1,10 @@ [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dictg13b71nlf"] -[ext_resource type="Texture2D" uid="uid://gfin457shn1d" path="res://_development/ayuroo/models/circus_tent/circus_tent_outside_texture_02_1.png" id="1_g6aqn"] +[ext_resource type="Texture2D" uid="uid://bwo1s4wl34tyt" path="res://assets/materials/dev/red/texture_02.png" id="1_gjyc6"] [resource] resource_name = "prototype_grid_red" -albedo_texture = ExtResource("1_g6aqn") +albedo_texture = ExtResource("1_gjyc6") roughness = 0.97 uv1_scale = Vector3(2, 2, 1) uv1_offset = Vector3(0, -1, 0) diff --git a/source/addons/accelerator_keys/accelerator_keys.gd b/source/addons/accelerator_keys/accelerator_keys.gd new file mode 100644 index 0000000..055e526 --- /dev/null +++ b/source/addons/accelerator_keys/accelerator_keys.gd @@ -0,0 +1,83 @@ +@tool +extends EditorPlugin + +var _popup_data: Dictionary[PopupMenu, Dictionary] = {} +var _opened_popups: Array[PopupMenu] = [] + +func _enter_tree() -> void: + get_tree().node_added.connect(_on_node_added) + for popup in get_tree().root.find_children("", "PopupMenu", true, false): + _setup_popup(popup) + +func _exit_tree() -> void: + get_tree().node_added.disconnect(_on_node_added) + for popup in get_tree().root.find_children("", "PopupMenu", true, false): + _cleanup_popup(popup) + +func _on_node_added(node: Node) -> void: + if node is PopupMenu and not (node in _popup_data): + _setup_popup(node) + +func _setup_popup(popup: PopupMenu) -> void: + var data := { + "popup_callable": _on_popup.bind(popup), + "input_callable": _on_input.bind(popup), + "letter_indices": {}, + "number_indices": [] + } + popup.about_to_popup.connect(data.popup_callable) + popup.window_input.connect(data.input_callable) + popup.allow_search = false + _popup_data[popup] = data + +func _cleanup_popup(popup: PopupMenu) -> void: + var data = _popup_data.get(popup, null) + if data: + popup.about_to_popup.disconnect(data.popup_callable) + popup.window_input.disconnect(data.input_callable) + popup.allow_search = true + _popup_data.erase(popup) + +func _on_popup(popup: PopupMenu) -> void: + var data = _popup_data[popup] + data.letter_indices.clear() + data.number_indices.clear() + + for i in popup.get_item_count(): + if popup.is_item_separator(i): + continue + var text := popup.get_item_text(i).remove_char(0x0332) + for j in text.length(): + var char := text[j].to_lower() + if char >= "a" and char <= "z" and not char in data.letter_indices: + data.letter_indices[char] = i + popup.set_item_text(i, text.insert(j + 1, "\u0332")) + break + data.number_indices.append(i) + +func _on_input(event: InputEvent, popup: PopupMenu) -> void: + if not (event is InputEventKey and event.is_pressed()): + return + + var data = _popup_data[popup] + var idx := -1 + if event.keycode >= KEY_0 and event.keycode <= KEY_9: + var num = (event.keycode - KEY_1) % 10 + (10 if event.shift_pressed else 0) + if num >= 0 and num < data.number_indices.size(): + idx = data.number_indices[num] + elif event.keycode >= KEY_A and event.keycode <= KEY_Z: + idx = data.letter_indices.get(char(event.keycode).to_lower(), -1) + if idx < 0: + return + + popup.index_pressed.emit(idx) + popup.id_pressed.emit(popup.get_item_id(idx)) + + _opened_popups.append(popup) + var submenu = popup.get_item_submenu_node(idx) + if submenu: + submenu.popup(Rect2(popup.position + Vector2i(popup.size.x, 0), Vector2.ZERO)) + else: + for opened_popup in _opened_popups: + opened_popup.hide() + _opened_popups.clear() \ No newline at end of file diff --git a/source/addons/accelerator_keys/accelerator_keys.gd.uid b/source/addons/accelerator_keys/accelerator_keys.gd.uid new file mode 100644 index 0000000..69fec6c --- /dev/null +++ b/source/addons/accelerator_keys/accelerator_keys.gd.uid @@ -0,0 +1 @@ +uid://dov6u0npmv86o diff --git a/source/addons/accelerator_keys/plugin.cfg b/source/addons/accelerator_keys/plugin.cfg new file mode 100644 index 0000000..163e9d3 --- /dev/null +++ b/source/addons/accelerator_keys/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Accelerator Keys" +description="Adds support for accelerator keys (digits and letters) for all Godot menus with visual highlighting" +author="" +version="" +script="accelerator_keys.gd" diff --git a/source/addons/debug_draw_3d/libs/~libdd3d.windows.editor.x86_64.dll b/source/addons/debug_draw_3d/libs/~libdd3d.windows.editor.x86_64.dll new file mode 100644 index 0000000..e733469 Binary files /dev/null and b/source/addons/debug_draw_3d/libs/~libdd3d.windows.editor.x86_64.dll differ diff --git a/source/addons/reflection_probe_preview/plugin.cfg b/source/addons/reflection_probe_preview/plugin.cfg new file mode 100644 index 0000000..37f87ff --- /dev/null +++ b/source/addons/reflection_probe_preview/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Reflection Probe Preview" +description="Draws a preview of the selected reflection probe in the 3D viewport" +author="" +version="" +script="reflection_probe_preview.gd" diff --git a/source/addons/reflection_probe_preview/reflection_probe_preview.gd b/source/addons/reflection_probe_preview/reflection_probe_preview.gd new file mode 100644 index 0000000..25f62b6 --- /dev/null +++ b/source/addons/reflection_probe_preview/reflection_probe_preview.gd @@ -0,0 +1,56 @@ +@tool +extends EditorPlugin + +var _instance: RID +var _mesh: Mesh +var _probe: ReflectionProbe + +func _enter_tree() -> void: + EditorInterface.get_selection().selection_changed.connect(_update_preview) + _create_instance() + +func _exit_tree() -> void: + EditorInterface.get_selection().selection_changed.disconnect(_update_preview) + _clear_instance() + +func _create_instance() -> void: + _instance = RenderingServer.instance_create() + + _mesh = SphereMesh.new() + _mesh.radius = 0.5 + _mesh.height = _mesh.radius * 2.0 + + var material = StandardMaterial3D.new() + material.roughness = 0 + material.metallic = 1 + _mesh.surface_set_material(0, material) + + RenderingServer.instance_geometry_set_cast_shadows_setting(_instance, RenderingServer.SHADOW_CASTING_SETTING_OFF) + RenderingServer.instance_set_base(_instance, _mesh) + +func _clear_instance() -> void: + if _instance: + RenderingServer.free_rid(_instance) + if _mesh: + RenderingServer.free_rid(_mesh) + +func _update_preview() -> void: + var selection = EditorInterface.get_selection().get_selected_nodes() + if selection.size() == 1 and selection[0] is ReflectionProbe: + _probe = selection[0] + var scenario: RID = EditorInterface.get_edited_scene_root().get_world_3d().scenario + RenderingServer.instance_set_scenario(_instance, scenario) + RenderingServer.instance_set_visible(_instance, true) + return + + RenderingServer.instance_set_visible(_instance, false) + _probe = null + +func _process(_delta: float) -> void: + if not _instance.is_valid() or not _probe: + return + + var probe_transform = _probe.global_transform + var origin_offset = _probe.origin_offset + var instance_transform = probe_transform * Transform3D(Basis(), origin_offset) + RenderingServer.instance_set_transform(_instance, instance_transform) \ No newline at end of file diff --git a/source/addons/reflection_probe_preview/reflection_probe_preview.gd.uid b/source/addons/reflection_probe_preview/reflection_probe_preview.gd.uid new file mode 100644 index 0000000..ad4212a --- /dev/null +++ b/source/addons/reflection_probe_preview/reflection_probe_preview.gd.uid @@ -0,0 +1 @@ +uid://s872hv3tf78c diff --git a/source/assets/materials/dev/dark/texture_13.png.import b/source/assets/materials/dev/dark/texture_13.png.import index c10edcb..a2e5be8 100644 --- a/source/assets/materials/dev/dark/texture_13.png.import +++ b/source/assets/materials/dev/dark/texture_13.png.import @@ -3,19 +3,20 @@ importer="texture" type="CompressedTexture2D" uid="uid://dw3af4ir446rk" -path="res://.godot/imported/texture_13.png-0710b1716fe2c46a85d4d21fb66c969c.ctex" +path.s3tc="res://.godot/imported/texture_13.png-0710b1716fe2c46a85d4d21fb66c969c.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://assets/materials/dev/dark/texture_13.png" -dest_files=["res://.godot/imported/texture_13.png-0710b1716fe2c46a85d4d21fb66c969c.ctex"] +dest_files=["res://.godot/imported/texture_13.png-0710b1716fe2c46a85d4d21fb66c969c.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -37,4 +38,4 @@ process/normal_map_invert_y=false process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 -detect_3d/compress_to=1 +detect_3d/compress_to=0 diff --git a/source/_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02_1.png b/source/assets/materials/dev/red/texture_02.png similarity index 100% rename from source/_development/ayuroo/models/circus_tent/circus_tent_inside_texture_02_1.png rename to source/assets/materials/dev/red/texture_02.png diff --git a/source/_development/ayuroo/levels/_experimental/_test_level_texture_02.png.import b/source/assets/materials/dev/red/texture_02.png.import similarity index 65% rename from source/_development/ayuroo/levels/_experimental/_test_level_texture_02.png.import rename to source/assets/materials/dev/red/texture_02.png.import index 7cf8d3a..05073ce 100644 --- a/source/_development/ayuroo/levels/_experimental/_test_level_texture_02.png.import +++ b/source/assets/materials/dev/red/texture_02.png.import @@ -2,20 +2,17 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cno3emivftt23" -path.s3tc="res://.godot/imported/_test_level_texture_02.png-229502b47aa79be08819e18707cdd050.s3tc.ctex" +uid="uid://bwo1s4wl34tyt" +path.s3tc="res://.godot/imported/texture_02.png-a575a005feaf2109519dd64e306c6d0b.s3tc.ctex" metadata={ "imported_formats": ["s3tc_bptc"], "vram_texture": true } -generator_parameters={ -"md5": "a4091b6db3fc67af97a848a98d5046da" -} [deps] -source_file="res://_development/ayuroo/levels/_experimental/_test_level_texture_02.png" -dest_files=["res://.godot/imported/_test_level_texture_02.png-229502b47aa79be08819e18707cdd050.s3tc.ctex"] +source_file="res://assets/materials/dev/red/texture_02.png" +dest_files=["res://.godot/imported/texture_02.png-a575a005feaf2109519dd64e306c6d0b.s3tc.ctex"] [params] diff --git a/source/project.godot b/source/project.godot index 132e135..6f3f8e2 100644 --- a/source/project.godot +++ b/source/project.godot @@ -42,7 +42,7 @@ settings/addon_root_folder="res://addons/debug_draw_3d" [editor_plugins] -enabled=PackedStringArray("res://addons/Todo_Manager/plugin.cfg", "res://addons/bbcode_edit.editor/plugin.cfg", "res://addons/boxconstructor/plugin.cfg", "res://addons/controller_icons/plugin.cfg", "res://addons/godot_3d_cursor/plugin.cfg", "res://addons/lightmap_probe_grid/plugin.cfg", "res://addons/logger/plugin.cfg", "res://addons/panku_console/plugin.cfg", "res://addons/proto_shape/plugin.cfg", "res://addons/run-configs/plugin.cfg", "res://addons/version_display/plugin.cfg") +enabled=PackedStringArray("res://addons/Todo_Manager/plugin.cfg", "res://addons/accelerator_keys/plugin.cfg", "res://addons/bbcode_edit.editor/plugin.cfg", "res://addons/boxconstructor/plugin.cfg", "res://addons/controller_icons/plugin.cfg", "res://addons/godot_3d_cursor/plugin.cfg", "res://addons/lightmap_probe_grid/plugin.cfg", "res://addons/logger/plugin.cfg", "res://addons/panku_console/plugin.cfg", "res://addons/proto_shape/plugin.cfg", "res://addons/reflection_probe_preview/plugin.cfg", "res://addons/run-configs/plugin.cfg", "res://addons/version_display/plugin.cfg") [file_customization] diff --git a/source/src/core/camera/camera_shaker/camera_trauma_causer.gd b/source/src/core/camera/camera_shaker/camera_trauma_causer.gd index fb583aa..2b22deb 100644 --- a/source/src/core/camera/camera_shaker/camera_trauma_causer.gd +++ b/source/src/core/camera/camera_shaker/camera_trauma_causer.gd @@ -28,11 +28,11 @@ extends Marker3D func _process(_delta: float) -> void: if Engine.is_editor_hint(): # For some reason, Godot doesn't like this when exporting the game... - #var editor_selection: EditorSelection = EditorInterface.get_selection() - # - #if editor_selection.get_selected_nodes().has(self): - DebugDraw3D.draw_sphere(global_position, min_radius, Color.RED) - DebugDraw3D.draw_sphere(global_position, max_radius, Color.SKY_BLUE) + var editor_selection: Object = Engine.get_singleton(&"EditorInterface").get_selection()#EditorInterface.get_selection() + + if editor_selection.get_selected_nodes().has(self): + DebugDraw3D.draw_sphere(global_position, min_radius, Color.RED) + DebugDraw3D.draw_sphere(global_position, max_radius, Color.SKY_BLUE) elif continues_shake: cause_trauma() diff --git a/source/tools/lightbeam/lightbeam.gdshader b/source/tools/lightbeam/lightbeam.gdshader new file mode 100644 index 0000000..3de1600 --- /dev/null +++ b/source/tools/lightbeam/lightbeam.gdshader @@ -0,0 +1,104 @@ +shader_type spatial; +render_mode unshaded, blend_add; + +uniform vec4 color : source_color = vec4(1.0, 1.0, 1.0, 1.0); +uniform bool use_second_color = false; +uniform vec4 second_color : source_color = vec4(1.0, 1.0, 1.0, 1.0); +uniform float cone_start_width : hint_range(0.0, 1.0, 0.01) = 0.02; +uniform float cone_curve : hint_range(0, 1.0, 0.01) = 0.3; +uniform float beam_sharpness : hint_range(0.01, 1.0, 0.01) = 0.25; +uniform float beam_fade : hint_range(0.1, 10.0, 0.1) = 4.0; +uniform bool use_gradient = false; +uniform sampler2D gradient: source_color, repeat_disable; +uniform float proximity_fade_distance : hint_range(0.0, 4096.0, 0.01) = 0.75; +uniform sampler2D depth_texture : hint_depth_texture, repeat_disable, filter_nearest; + +uniform float z_fade_start : hint_range(0.0, 1.0, 0.01) = 0.5; +uniform float z_fade_end : hint_range(0.0, 1.0, 0.01) = 0.8; + +uniform bool use_noise = false; +uniform sampler2D noise_texture : source_color, filter_linear_mipmap, repeat_enable; +uniform float noise_scale : hint_range(0.1, 10.0, 0.1) = 1.0; +uniform float noise_intensity : hint_range(0.0, 1.0, 0.01) = 0.5; +uniform vec2 noise_scroll_speed = vec2(0.01, 0.01); +uniform float noise_distortion_intensity : hint_range(0.0, 0.1, 0.001) = 0.01; +uniform vec2 noise_distortion_scroll_speed = vec2(-0.02, -0.01); + +varying float z_axis_fade; + +void vertex() { + vec3 local_z = normalize(MODEL_MATRIX[2].xyz); + vec3 to_camera = normalize(CAMERA_POSITION_WORLD - NODE_POSITION_WORLD); + vec3 local_x = normalize(cross(to_camera, local_z)); + vec3 local_y = normalize(cross(local_z, local_x)); + + MODELVIEW_MATRIX = VIEW_MATRIX * mat4( + vec4(local_x * length(MODEL_MATRIX[0].xyz), 0.0), + vec4(local_y * length(MODEL_MATRIX[1].xyz), 0.0), + MODEL_MATRIX[2], + MODEL_MATRIX[3] + ); + + z_axis_fade = smoothstep(z_fade_end, z_fade_start, abs(dot(to_camera, local_z))); +} + +void fragment() { + vec2 uv = UV; + + vec3 input_color; + float input_alpha; + if (use_second_color) { + input_color = mix(color.rgb, second_color.rgb, uv.y); + input_alpha = mix(color.a, second_color.a, uv.y); + } else { + input_color = color.rgb; + input_alpha = color.a; + } + + // Calculate cone width at current position along the cone length + float cone_progress_y = pow(uv.y, 1.0 - cone_curve); + float width = mix(cone_start_width, 1.0, cone_progress_y); + float half_width = width * 0.5; + + // Create horizontal mask + float distance_from_center_x = abs(uv.x - 0.5); + float beam_edge_start = half_width - (half_width * (1.0 - beam_sharpness)); + float horizontal_mask = 1.0 - smoothstep(beam_edge_start, half_width, distance_from_center_x); + + // Create vertical mask + float vertical_mask = pow(max(1.0 - uv.y, 0.001), beam_fade); + vertical_mask *= smoothstep(0.0, cone_start_width * 0.5, uv.y); + + // Overlay gradient + if (use_gradient) { + float gradient_coord = distance_from_center_x / half_width; + float gradient_value = texture(gradient, vec2(gradient_coord, 0.5)).r; + horizontal_mask *= mix(1.0, gradient_value, 1.0 - (vertical_mask * vertical_mask)); + } + + // Overlay noise + if (use_noise) { + vec2 distortion_offset = noise_distortion_scroll_speed * TIME + NODE_POSITION_WORLD.xz; + vec2 distortion_sample = texture(noise_texture, uv * noise_scale + distortion_offset).rg; + vec2 distortion_uv = uv + (distortion_sample - 0.5) * 2.0 * noise_distortion_intensity; + + vec2 scroll_offset1 = noise_scroll_speed * TIME + NODE_POSITION_WORLD.xz; + vec2 scroll_offset2 = vec2(-noise_scroll_speed.x * 0.7, noise_scroll_speed.y * 1.3) * TIME + NODE_POSITION_WORLD.xz; + + float noise_sample1 = texture(noise_texture, distortion_uv * noise_scale + scroll_offset1).r; + float noise_sample2 = texture(noise_texture, distortion_uv * noise_scale + scroll_offset2).r; + float combined_noise = mix(1.0, noise_sample1 * noise_sample2, 1.0 - vertical_mask); + + horizontal_mask *= mix(1.0, combined_noise, noise_intensity); + } + + ALBEDO = input_color; + + ALPHA = horizontal_mask * vertical_mask * input_alpha * z_axis_fade; + + // Proximity Fade + float proximity_depth_tex = textureLod(depth_texture, SCREEN_UV, 0.0).r; + vec4 proximity_view_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, proximity_depth_tex, 1.0); + proximity_view_pos.xyz /= proximity_view_pos.w; + ALPHA *= clamp(1.0 - smoothstep(proximity_view_pos.z + proximity_fade_distance, proximity_view_pos.z, VERTEX.z), 0.0, 1.0); +} \ No newline at end of file diff --git a/source/tools/lightbeam/lightbeam.gdshader.uid b/source/tools/lightbeam/lightbeam.gdshader.uid new file mode 100644 index 0000000..5a1febe --- /dev/null +++ b/source/tools/lightbeam/lightbeam.gdshader.uid @@ -0,0 +1 @@ +uid://c77hfyht2fpxt diff --git a/source/tools/lightbeam/lightbeam_material.tres b/source/tools/lightbeam/lightbeam_material.tres new file mode 100644 index 0000000..1712e8a --- /dev/null +++ b/source/tools/lightbeam/lightbeam_material.tres @@ -0,0 +1,44 @@ +[gd_resource type="ShaderMaterial" load_steps=6 format=3 uid="uid://c4uudb0m5p048"] + +[ext_resource type="Shader" uid="uid://c77hfyht2fpxt" path="res://tools/lightbeam/lightbeam.gdshader" id="1_4nd3r"] + +[sub_resource type="Gradient" id="Gradient_h2jn1"] +interpolation_mode = 2 +offsets = PackedFloat32Array(0.004115226, 0.11728395, 0.18724279, 0.28189301, 0.38477367, 0.4341564, 0.63786006, 1) +colors = PackedColorArray(1, 1, 1, 1, 0.923899, 0.9239001, 0.9238985, 1, 0.90349716, 0.90349704, 0.90349674, 1, 0.8460438, 0.846044, 0.84604335, 1, 0.696885, 0.6968867, 0.6968853, 1, 0.6556004, 0.6556013, 0.65559965, 1, 0.6364806, 0.63648057, 0.6364794, 1, 0.061926693, 0.061926708, 0.061926648, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_0fp8q"] +gradient = SubResource("Gradient_h2jn1") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_h2jn1"] +noise_type = 0 +fractal_weighted_strength = 0.3 +domain_warp_enabled = true +domain_warp_frequency = 0.01 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_0fp8q"] +noise = SubResource("FastNoiseLite_h2jn1") +seamless = true + +[resource] +render_priority = 0 +shader = ExtResource("1_4nd3r") +shader_parameter/color = Color(0.8084624, 0.97797644, 1.0627335, 1) +shader_parameter/use_second_color = true +shader_parameter/second_color = Color(0.637, 0.6734, 0.91, 1) +shader_parameter/cone_start_width = 0.02 +shader_parameter/cone_curve = 0.0999999977648 +shader_parameter/beam_sharpness = 0.00999999977648 +shader_parameter/beam_fade = 3.0000000447036004 +shader_parameter/use_gradient = true +shader_parameter/gradient = SubResource("GradientTexture1D_0fp8q") +shader_parameter/proximity_fade_distance = 1.499999966472 +shader_parameter/z_fade_start = 0.499999988824 +shader_parameter/z_fade_end = 0.8 +shader_parameter/use_noise = true +shader_parameter/noise_texture = SubResource("NoiseTexture2D_0fp8q") +shader_parameter/noise_scale = 1.0000000149012 +shader_parameter/noise_intensity = 0.5 +shader_parameter/noise_scroll_speed = Vector2(0.01, 0.01) +shader_parameter/noise_distortion_intensity = 0.01 +shader_parameter/noise_distortion_scroll_speed = Vector2(-0.02, -0.01)