[gd_scene load_steps=5 format=3 uid="uid://d2c5ut4rtjf3p"]

[ext_resource type="Script" uid="uid://cit6racuc8c60" path="res://Scripts/Parts/DropShadowRendererSmooth.gd" id="1_sh8t5"]

[sub_resource type="Shader" id="Shader_xx2dm"]
code = "shader_type canvas_item;

uniform vec3 shadow_colour: source_color;
uniform float transparency = 0.0;

void fragment() {
	if (COLOR.a >= 0.025)
	{
		COLOR = vec4(shadow_colour.r, shadow_colour.g, shadow_colour.b, transparency * COLOR.a);
	}
}

//void light() {
	// Called for every pixel for every light affecting the CanvasItem.
	// Uncomment to replace the default light processing function with this one.
//}
"

[sub_resource type="ShaderMaterial" id="ShaderMaterial_o48cx"]
shader = SubResource("Shader_xx2dm")
shader_parameter/shadow_colour = Color(0.368102, 0.368102, 0.368102, 1)
shader_parameter/transparency = 0.25

[sub_resource type="GDScript" id="GDScript_tdilq"]
script/source = "# https://github.com/godotengine/godot/issues/77149
class_name SubViewportContainerBug77149
extends SubViewportContainer

@export var stretch_without_bug_77149 : bool

func _ready() -> void:
	_on_resized()
	get_window().size_changed.connect(_on_resized)

var _dont_recurse : bool

func _on_resized() -> void:
	assert(not stretch)
	if not stretch_without_bug_77149 or _dont_recurse:
		return

	var window := get_window()
	var viewport_size := Vector2(window.size)
	var reference_size := Vector2(window.content_scale_size)
	var viewport_scale := viewport_size / reference_size
	var size_scale := minf(viewport_scale.x, viewport_scale.y)

	var scaled_size := Vector2i((size * scale * size_scale).round()) / stretch_shrink
	if Vector2i(size.round()) == scaled_size:
		return

	_dont_recurse = true
	# we need to set the container's size first or it'll get resized by the viewport resize (ugh)
	scale = Vector2(1.0 / size_scale, 1.0 / size_scale)
	size = scaled_size

	for subviewport : SubViewport in find_children(\"*\", \"SubViewport\", false, false):
		# avoid reallocating textures we don't need to reallocate
		if subviewport.size != scaled_size:
			subviewport.size = scaled_size

	_dont_recurse = false
"

[node name="DropShadowRenderer" type="Node"]
physics_interpolation_mode = 1
script = ExtResource("1_sh8t5")

[node name="Point" type="Node2D" parent="."]
unique_name_in_owner = true
physics_interpolation_mode = 1
visibility_layer = 2
z_index = -45
position = Vector2(4, 0)

[node name="Container" type="SubViewportContainer" parent="Point"]
unique_name_in_owner = true
physics_interpolation_mode = 1
visibility_layer = 2
material = SubResource("ShaderMaterial_o48cx")
offset_left = -240.0
offset_top = -135.0
offset_right = 240.0
offset_bottom = 135.0
localize_numeral_system = false
mouse_filter = 2
script = SubResource("GDScript_tdilq")
stretch_without_bug_77149 = true
metadata/_edit_use_anchors_ = true

[node name="SubViewport" type="SubViewport" parent="Point/Container"]
unique_name_in_owner = true
transparent_bg = true
handle_input_locally = false
canvas_item_default_texture_filter = 0
canvas_cull_mask = 4293918721
size = Vector2i(480, 270)
size_2d_override = Vector2i(1440, 810)
render_target_update_mode = 4

[node name="Camera" type="Camera2D" parent="Point/Container/SubViewport"]
unique_name_in_owner = true
offset = Vector2(-3, -3)
zoom = Vector2(3, 3)
process_callback = 0
