mirror of
				https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
				synced 2025-10-26 09:20:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			111 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| [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
 | 
