| source_md5="aa6613a60574ba16e3c57d0d38468fbf" | |||||
| dest_md5="ef4be6197f867fce1ae832148d814786" | |||||
| source_md5="0965d095ec6dc5f38b478078d7dc2184" | |||||
| dest_md5="40e931f300ed189e4918619ee139c8d8" | |||||
| source_md5="01869c3604b99aea38eb6b597f15f8d7" | |||||
| dest_md5="b07fcc1de681e1e4fc0cc651a43f6d23" | |||||
| source_md5="4fb5fa659e9c6e1ece480e0b8a6b18d5" | |||||
| dest_md5="d93bef64b511746d542505099d164ec2" | |||||
| [remap] | |||||
| importer="texture" | |||||
| type="StreamTexture" | |||||
| path="res://.import/marm.png-129e7630465431c74aeee9f2cda65caa.stex" | |||||
| metadata={ | |||||
| "vram_texture": false | |||||
| } | |||||
| [deps] | |||||
| source_file="res://Data/Graphics/marm.png" | |||||
| dest_files=[ "res://.import/marm.png-129e7630465431c74aeee9f2cda65caa.stex" ] | |||||
| [params] | |||||
| compress/mode=0 | |||||
| compress/lossy_quality=0.7 | |||||
| compress/hdr_mode=0 | |||||
| compress/bptc_ldr=0 | |||||
| compress/normal_map=0 | |||||
| flags/repeat=0 | |||||
| flags/filter=true | |||||
| flags/mipmaps=false | |||||
| flags/anisotropic=false | |||||
| flags/srgb=2 | |||||
| process/fix_alpha_border=true | |||||
| process/premult_alpha=false | |||||
| process/HDR_as_SRGB=false | |||||
| process/invert_color=false | |||||
| stream=false | |||||
| size_limit=0 | |||||
| detect_3d=true | |||||
| svg/scale=1.0 |
| [remap] | |||||
| importer="texture" | |||||
| type="StreamTexture" | |||||
| path="res://.import/nstar.png-279148b53e5add0a2272421ac913ac94.stex" | |||||
| metadata={ | |||||
| "vram_texture": false | |||||
| } | |||||
| [deps] | |||||
| source_file="res://Data/Graphics/nstar.png" | |||||
| dest_files=[ "res://.import/nstar.png-279148b53e5add0a2272421ac913ac94.stex" ] | |||||
| [params] | |||||
| compress/mode=0 | |||||
| compress/lossy_quality=0.7 | |||||
| compress/hdr_mode=0 | |||||
| compress/bptc_ldr=0 | |||||
| compress/normal_map=0 | |||||
| flags/repeat=0 | |||||
| flags/filter=true | |||||
| flags/mipmaps=false | |||||
| flags/anisotropic=false | |||||
| flags/srgb=2 | |||||
| process/fix_alpha_border=true | |||||
| process/premult_alpha=false | |||||
| process/HDR_as_SRGB=false | |||||
| process/invert_color=false | |||||
| stream=false | |||||
| size_limit=0 | |||||
| detect_3d=true | |||||
| svg/scale=1.0 |
| [gd_scene load_steps=5 format=2] | |||||
| [ext_resource path="res://Data/Graphics/placeholder.png" type="Texture" id=1] | |||||
| [ext_resource path="res://Data/Scripts/Glowdot.gd" type="Script" id=2] | |||||
| [ext_resource path="res://Data/Shaders/Glowdot.shader" type="Shader" id=3] | |||||
| [sub_resource type="ShaderMaterial" id=2] | |||||
| shader = ExtResource( 3 ) | |||||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||||
| shader_param/fade_offset = 0.15 | |||||
| [node name="Glowdot" type="Sprite"] | |||||
| material = SubResource( 2 ) | |||||
| texture = ExtResource( 1 ) | |||||
| script = ExtResource( 2 ) | |||||
| [node name="Pulse" type="Tween" parent="."] | |||||
| [node name="PulseIn" type="Timer" parent="."] | |||||
| [node name="PulseOut" type="Timer" parent="."] | |||||
| [connection signal="timeout" from="PulseIn" to="." method="_on_PulseIn_timeout"] | |||||
| [connection signal="timeout" from="PulseOut" to="." method="_on_PulseOut_timeout"] |
| [sub_resource type="ShaderMaterial" id=1] | [sub_resource type="ShaderMaterial" id=1] | ||||
| shader = ExtResource( 3 ) | shader = ExtResource( 3 ) | ||||
| shader_param/sprite_scale = Vector2( 1, 1 ) | |||||
| shader_param/sprite_scale = Vector2( 2.96, 1 ) | |||||
| shader_param/distortion = 16.265 | shader_param/distortion = 16.265 | ||||
| shader_param/liquid_color_main = Color( 0, 0.0862745, 0.603922, 1 ) | |||||
| shader_param/liquid_color_surface = Color( 0.517647, 0.572549, 1, 1 ) | |||||
| shader_param/liquid_color_main = Color( 0.180908, 0.250748, 0.8125, 1 ) | |||||
| shader_param/liquid_color_surface = Color( 0.576471, 0.760784, 0.996078, 1 ) | |||||
| shader_param/liquid_surface_thickness = 0.12 | shader_param/liquid_surface_thickness = 0.12 | ||||
| shader_param/wave_amp = 0.25 | shader_param/wave_amp = 0.25 | ||||
| shader_param/wave_freq = 1.0 | shader_param/wave_freq = 1.0 | ||||
| orbit_velocity_random = 0.0 | orbit_velocity_random = 0.0 | ||||
| scale = 2.0 | scale = 2.0 | ||||
| scale_curve = SubResource( 4 ) | scale_curve = SubResource( 4 ) | ||||
| color = Color( 0.576471, 0.760784, 0.996078, 1 ) | |||||
| [node name="Liquid" type="Sprite"] | [node name="Liquid" type="Sprite"] | ||||
| material = SubResource( 1 ) | material = SubResource( 1 ) |
| [gd_scene load_steps=9 format=2] | |||||
| [ext_resource path="res://Data/Scripts/PulseArrow.gd" type="Script" id=1] | |||||
| [ext_resource path="res://Data/Objects/Glowdot.tscn" type="PackedScene" id=3] | |||||
| [sub_resource type="Shader" id=1] | |||||
| code = "shader_type canvas_item; | |||||
| uniform vec4 primary_color:hint_color = vec4(1.0, 0.8, 0.0, 1.0); | |||||
| uniform float fade_offset:hint_range(0.0, 0.5) = 0.1; | |||||
| float ramp(float v, float f_min, float f_max){ | |||||
| float res = (v - f_min) / (f_max - f_min); | |||||
| return max(0.0, min(res, 1.0)); | |||||
| } | |||||
| void fragment(){ | |||||
| float mask = length(vec2(0.5, 0.5) - (UV.xy)); | |||||
| float fade = 1.0 - ramp(mask, fade_offset, 0.5); | |||||
| if (mask > 0.5){ | |||||
| mask = 0.0; | |||||
| } else {mask = 1.0;} | |||||
| if (mask == 1.0){ | |||||
| COLOR = vec4(primary_color.rgb, fade); | |||||
| } else { | |||||
| COLOR = vec4(primary_color.rgb, mask); | |||||
| } | |||||
| }" | |||||
| [sub_resource type="ShaderMaterial" id=2] | |||||
| shader = SubResource( 1 ) | |||||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||||
| shader_param/fade_offset = 0.15 | |||||
| [sub_resource type="ShaderMaterial" id=3] | |||||
| shader = SubResource( 1 ) | |||||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||||
| shader_param/fade_offset = 0.15 | |||||
| [sub_resource type="ShaderMaterial" id=4] | |||||
| shader = SubResource( 1 ) | |||||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||||
| shader_param/fade_offset = 0.15 | |||||
| [sub_resource type="ShaderMaterial" id=5] | |||||
| shader = SubResource( 1 ) | |||||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||||
| shader_param/fade_offset = 0.15 | |||||
| [sub_resource type="ShaderMaterial" id=6] | |||||
| shader = SubResource( 1 ) | |||||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||||
| shader_param/fade_offset = 0.15 | |||||
| [node name="PulseArrow" type="Node2D"] | |||||
| script = ExtResource( 1 ) | |||||
| [node name="Dot" parent="." instance=ExtResource( 3 )] | |||||
| material = SubResource( 2 ) | |||||
| position = Vector2( 0, -0.698334 ) | |||||
| pulse_in_time = 0.5 | |||||
| pulse_out_time = 0.5 | |||||
| pulse_out = 0.75 | |||||
| [node name="Dot21" parent="." instance=ExtResource( 3 )] | |||||
| material = SubResource( 3 ) | |||||
| position = Vector2( -53.772, 35.6152 ) | |||||
| pulse_in_time = 0.5 | |||||
| pulse_out_time = 0.5 | |||||
| pulse_out = 0.75 | |||||
| pulse_offset = 0.35 | |||||
| [node name="Dot31" parent="." instance=ExtResource( 3 )] | |||||
| material = SubResource( 4 ) | |||||
| position = Vector2( -110.337, 66.3421 ) | |||||
| pulse_in_time = 0.5 | |||||
| pulse_out_time = 0.5 | |||||
| pulse_out = 0.75 | |||||
| pulse_offset = 0.6 | |||||
| [node name="Dot22" parent="." instance=ExtResource( 3 )] | |||||
| material = SubResource( 5 ) | |||||
| position = Vector2( 52.3753, 35.6152 ) | |||||
| pulse_in_time = 0.5 | |||||
| pulse_out_time = 0.5 | |||||
| pulse_out = 0.75 | |||||
| pulse_offset = 0.35 | |||||
| [node name="Dot32" parent="." instance=ExtResource( 3 )] | |||||
| material = SubResource( 6 ) | |||||
| position = Vector2( 106.147, 66.3421 ) | |||||
| pulse_in_time = 0.5 | |||||
| pulse_out_time = 0.5 | |||||
| pulse_out = 0.75 | |||||
| pulse_offset = 0.6 |
| [gd_scene load_steps=5 format=2] | |||||
| [gd_scene load_steps=8 format=2] | |||||
| [ext_resource path="res://icon.png" type="Texture" id=1] | |||||
| [ext_resource path="res://Data/Objects/PulseArrow.tscn" type="PackedScene" id=1] | |||||
| [ext_resource path="res://Data/Objects/Player.tscn" type="PackedScene" id=2] | [ext_resource path="res://Data/Objects/Player.tscn" type="PackedScene" id=2] | ||||
| [ext_resource path="res://Data/Objects/Liquid.tscn" type="PackedScene" id=3] | [ext_resource path="res://Data/Objects/Liquid.tscn" type="PackedScene" id=3] | ||||
| [ext_resource path="res://Data/Graphics/placeholder.png" type="Texture" id=4] | |||||
| [ext_resource path="res://Data/Scripts/BladeSaw.gd" type="Script" id=5] | |||||
| [ext_resource path="res://Data/Graphics/nstar.png" type="Texture" id=6] | |||||
| [sub_resource type="RectangleShape2D" id=1] | [sub_resource type="RectangleShape2D" id=1] | ||||
| extents = Vector2( 32, 32 ) | extents = Vector2( 32, 32 ) | ||||
| [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D"] | [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D"] | ||||
| self_modulate = Color( 0, 0, 0, 1 ) | self_modulate = Color( 0, 0, 0, 1 ) | ||||
| texture = ExtResource( 1 ) | |||||
| texture = ExtResource( 4 ) | |||||
| [node name="StaticBody2D2" type="StaticBody2D" parent="Ground"] | [node name="StaticBody2D2" type="StaticBody2D" parent="Ground"] | ||||
| position = Vector2( 117.555, 225.357 ) | position = Vector2( 117.555, 225.357 ) | ||||
| [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D2"] | [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D2"] | ||||
| self_modulate = Color( 0, 0, 0, 1 ) | self_modulate = Color( 0, 0, 0, 1 ) | ||||
| texture = ExtResource( 1 ) | |||||
| texture = ExtResource( 4 ) | |||||
| [node name="StaticBody2D3" type="StaticBody2D" parent="Ground"] | [node name="StaticBody2D3" type="StaticBody2D" parent="Ground"] | ||||
| position = Vector2( 165.809, 209.444 ) | position = Vector2( 165.809, 209.444 ) | ||||
| [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D3"] | [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D3"] | ||||
| self_modulate = Color( 0, 0, 0, 1 ) | self_modulate = Color( 0, 0, 0, 1 ) | ||||
| texture = ExtResource( 1 ) | |||||
| texture = ExtResource( 4 ) | |||||
| [node name="StaticBody2D4" type="StaticBody2D" parent="Ground"] | [node name="StaticBody2D4" type="StaticBody2D" parent="Ground"] | ||||
| position = Vector2( 352.586, 167.485 ) | position = Vector2( 352.586, 167.485 ) | ||||
| [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D4"] | [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D4"] | ||||
| self_modulate = Color( 0, 0, 0, 1 ) | self_modulate = Color( 0, 0, 0, 1 ) | ||||
| texture = ExtResource( 1 ) | |||||
| texture = ExtResource( 4 ) | |||||
| [node name="Blue Barrier" type="StaticBody2D" parent="Ground"] | [node name="Blue Barrier" type="StaticBody2D" parent="Ground"] | ||||
| position = Vector2( 258.724, 168.376 ) | position = Vector2( 258.724, 168.376 ) | ||||
| shape = SubResource( 1 ) | shape = SubResource( 1 ) | ||||
| [node name="Sprite" type="Sprite" parent="Ground/Blue Barrier"] | [node name="Sprite" type="Sprite" parent="Ground/Blue Barrier"] | ||||
| self_modulate = Color( 0, 0.180392, 1, 1 ) | |||||
| texture = ExtResource( 1 ) | |||||
| modulate = Color( 0.380392, 0.54902, 1, 1 ) | |||||
| texture = ExtResource( 4 ) | |||||
| [node name="Liquid" parent="." instance=ExtResource( 3 )] | [node name="Liquid" parent="." instance=ExtResource( 3 )] | ||||
| position = Vector2( 109.92, 197.289 ) | position = Vector2( 109.92, 197.289 ) | ||||
| scale = Vector2( 2.96, 1 ) | scale = Vector2( 2.96, 1 ) | ||||
| liquid_body_color = Color( 0, 0.0901961, 0.815686, 1 ) | |||||
| liquid_body_color = Color( 0.180908, 0.250748, 0.8125, 1 ) | |||||
| liquid_surface_color = Color( 0.576471, 0.760784, 0.996078, 1 ) | liquid_surface_color = Color( 0.576471, 0.760784, 0.996078, 1 ) | ||||
| [node name="PulseArrow" parent="." instance=ExtResource( 1 )] | |||||
| position = Vector2( 250.511, 119.095 ) | |||||
| scale = Vector2( 0.1, 0.1 ) | |||||
| pulse_color = Color( 0.356863, 0.960784, 0.211765, 1 ) | |||||
| [node name="BladeSaw" type="KinematicBody2D" parent="."] | |||||
| position = Vector2( 252.7, 41.8 ) | |||||
| collision_layer = 2 | |||||
| script = ExtResource( 5 ) | |||||
| degrees_per_second = 180.0 | |||||
| active = false | |||||
| [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="BladeSaw"] | |||||
| position = Vector2( 0.291977, -0.407814 ) | |||||
| polygon = PoolVector2Array( -0.190857, -62.8828, 15.1022, -32.9085, 45.8921, -43.1038, 35.9007, -11.7022, 63.632, 2.77521, 33.6577, 17.4565, 43.2413, 46.2074, 13.4709, 37.2355, 0.0130463, 63.9473, -13.8526, 37.4394, -43.623, 46.6152, -34.0394, 17.8643, -64.0137, 2.5713, -36.0785, -11.4983, -47.0894, -43.3077, -15.4839, -32.9085 ) | |||||
| [node name="Sprite" type="Sprite" parent="BladeSaw"] | |||||
| texture = ExtResource( 6 ) |
| extends KinematicBody2D | |||||
| export var degrees_per_second:float = 180.0 | |||||
| export var ease_in:float = 0.2 | |||||
| export var ease_out:float = 0.4 | |||||
| export var active:bool = true setget _set_active | |||||
| var _easing_in = false | |||||
| var _easing_out = false | |||||
| var _easing = 0.0 | |||||
| var _running = false | |||||
| func _set_active(b): | |||||
| if active != b: | |||||
| if active: | |||||
| _easing_out = true | |||||
| _easing = ease_out | |||||
| else: | |||||
| _easing_in = true | |||||
| _easing = ease_in | |||||
| active = b | |||||
| # Called when the node enters the scene tree for the first time. | |||||
| func _ready(): | |||||
| set_physics_process(true) | |||||
| if active and _easing == 0.0: | |||||
| _running = true | |||||
| func _physics_process(delta): | |||||
| if _easing_in or _easing_out: | |||||
| _easing -= delta | |||||
| if _easing <= 0.0: | |||||
| _running = _easing_in | |||||
| _easing_in = false | |||||
| _easing_out = false | |||||
| _easing = 0.0 | |||||
| else: | |||||
| var adj | |||||
| if _easing_in: | |||||
| adj = 1.0 - (_easing / ease_in) | |||||
| else: | |||||
| adj = 1.0 - (_easing / ease_out) | |||||
| rotate(deg2rad(degrees_per_second * adj * delta)) | |||||
| if _running: | |||||
| rotate(deg2rad(degrees_per_second * delta)) | |||||
| export var base_tangential_accel = 32 setget _set_base_tangential_accel | export var base_tangential_accel = 32 setget _set_base_tangential_accel | ||||
| # The base force applied when being pushed. | # The base force applied when being pushed. | ||||
| export var base_push_force = 128 setget _set_base_push_force | |||||
| export var base_push_force = 64 setget _set_base_push_force | |||||
| # Mood = r: <aggression>, g: <neediness>, b: <contentment> | # Mood = r: <aggression>, g: <neediness>, b: <contentment> |
| extends Sprite | |||||
| const TRANS = Tween.TRANS_LINEAR | |||||
| const EASE = Tween.EASE_IN_OUT | |||||
| export var pulse_color:Color setget _set_pulse_color, _get_pulse_color | |||||
| export var pulse_in_time:float = 0.5 | |||||
| export var pulse_out_time:float = 0.5 | |||||
| export var pulse_in:float = 0.1 | |||||
| export var pulse_out:float = 0.9 | |||||
| export var pulse_offset:float = 0.1 setget _set_pulse_offset, _get_pulse_offset | |||||
| var _running = false | |||||
| func _camp(v, o_min, o_max): | |||||
| # Reduces v (clamped to 0 and 1) to the values between o_min and o_max | |||||
| return o_min + ((o_max - o_min) * clamp(v, 0.0, 1.0)) | |||||
| func _ramp(v, f_min, f_max): | |||||
| # Expands v, spreading the values between f_min and f_max to be between 0 and 1. | |||||
| if f_min == f_max: | |||||
| return f_min | |||||
| return clamp((v - f_min) / (f_max - f_min), 0.0, 1.0) | |||||
| func _set_pulse_offset(v): | |||||
| material.set_shader_param("fade_offset", _camp(v, 0.1, 0.5)) | |||||
| func _get_pulse_offset(): | |||||
| if self.get_name() == "Dot21": | |||||
| print("PING") | |||||
| return _ramp(material.get_shader_param("fade_offset"), 0.1, 0.5) | |||||
| func _set_pulse_color(c): | |||||
| material.set_shader_param("primary_color", c) | |||||
| func _get_pulse_color(): | |||||
| return material.get_shader_param("primary_color") | |||||
| func _ready(): | |||||
| material.set_shader_param("primary_color", pulse_color) | |||||
| func start(): | |||||
| _running = true | |||||
| _on_PulseOut_timeout() | |||||
| func stop(): | |||||
| $PulseOut.stop() | |||||
| $PulseIn.stop() | |||||
| _running = false | |||||
| func _interpolate_to(v, t): | |||||
| $Pulse.interpolate_property(self, "pulse_offset", self.pulse_offset, v, t, TRANS, EASE) | |||||
| $Pulse.start() | |||||
| func _on_PulseIn_timeout(): | |||||
| if _running: | |||||
| #print(self.get_name(), " Pulse Out Time: ", $PulseOut.wait_time) | |||||
| $PulseIn.stop() | |||||
| if _get_pulse_offset() == pulse_in: | |||||
| $PulseOut.wait_time = pulse_out_time | |||||
| else: | |||||
| $PulseOut.wait_time = (1.0 - ((_get_pulse_offset() - pulse_in) / (pulse_out / pulse_in))) * pulse_out_time | |||||
| _interpolate_to(pulse_out, $PulseOut.wait_time) | |||||
| $PulseOut.start() | |||||
| func _on_PulseOut_timeout(): | |||||
| if _running: | |||||
| #print(self.get_name(), " Pulse In Time: ", $PulseOut.wait_time) | |||||
| $PulseOut.stop() | |||||
| if _get_pulse_offset() == pulse_out: | |||||
| $PulseIn.wait_time = pulse_in_time | |||||
| else: | |||||
| # Adjust time due to current offset. | |||||
| $PulseIn.wait_time = (_get_pulse_offset() - pulse_in) / (pulse_out / pulse_in) * pulse_in_time | |||||
| _interpolate_to(pulse_in, $PulseIn.wait_time) | |||||
| $PulseIn.start() |
| #tool | |||||
| extends Sprite | extends Sprite | ||||
| export var liquid_body_color:Color setget _set_liquid_body_color, _get_liquid_body_color | export var liquid_body_color:Color setget _set_liquid_body_color, _get_liquid_body_color |
| extends Node2D | |||||
| export var pulse_color:Color = Color(1.0, 0.8, 0.0, 1.0) | |||||
| func _ready(): | |||||
| $Dot.pulse_color = pulse_color | |||||
| $Dot.start() | |||||
| $Dot21.pulse_color = pulse_color | |||||
| $Dot21.start() | |||||
| $Dot22.pulse_color = pulse_color | |||||
| $Dot22.start() | |||||
| $Dot31.pulse_color = pulse_color | |||||
| $Dot31.start() | |||||
| $Dot32.pulse_color = pulse_color | |||||
| $Dot32.start() | |||||
| shader_type canvas_item; | |||||
| uniform vec4 primary_color:hint_color = vec4(1.0, 0.8, 0.0, 1.0); | |||||
| uniform float fade_offset:hint_range(0.0, 0.5) = 0.1; | |||||
| float ramp(float v, float f_min, float f_max){ | |||||
| float res = (v - f_min) / (f_max - f_min); | |||||
| return max(0.0, min(res, 1.0)); | |||||
| } | |||||
| void fragment(){ | |||||
| float mask = length(vec2(0.5, 0.5) - (UV.xy)); | |||||
| float fade = 1.0 - ramp(mask, fade_offset, 0.5); | |||||
| if (mask > 0.5){ | |||||
| mask = 0.0; | |||||
| } else {mask = 1.0;} | |||||
| if (mask == 1.0){ | |||||
| COLOR = vec4(primary_color.rgb, fade); | |||||
| } else { | |||||
| COLOR = vec4(primary_color.rgb, mask); | |||||
| } | |||||
| } |
| window/size/width=1366 | window/size/width=1366 | ||||
| window/size/height=768 | window/size/height=768 | ||||
| window/stretch/mode="viewport" | |||||
| window/stretch/mode="2d" | |||||
| window/stretch/aspect="expand" | window/stretch/aspect="expand" | ||||
| [input] | [input] | ||||
| [rendering] | [rendering] | ||||
| quality/intended_usage/framebuffer_allocation=0 | |||||
| quality/intended_usage/framebuffer_allocation.mobile=1 | |||||
| environment/default_clear_color=Color( 0.207843, 0.164706, 0.215686, 1 ) | environment/default_clear_color=Color( 0.207843, 0.164706, 0.215686, 1 ) | ||||
| environment/default_environment="res://default_env.tres" | environment/default_environment="res://default_env.tres" |