DropShadowRenderer.gd 923 B

12345678910111213141516171819202122232425
  1. extends Node2D
  2. var shadow_colour := Color.BLACK
  3. @export var offset := Vector2(0, 0)
  4. var shadow_texture: Texture2D = null
  5. func _process(_delta: float) -> void:
  6. hide()
  7. if Settings.file.video.drop_shadows == 0:
  8. return
  9. show()
  10. if is_instance_valid(get_tree().current_scene):
  11. if is_instance_valid(get_tree().current_scene.get_viewport().get_camera_2d()):
  12. $SubViewportContainer/SubViewport.world_2d = get_tree().current_scene.get_viewport().get_camera_2d().get_world_2d()
  13. else:
  14. return
  15. else:
  16. return#
  17. $SubViewportContainer.material.set_shader_parameter("shadow_colour", shadow_colour)
  18. $SubViewportContainer/SubViewport.size = get_viewport().get_visible_rect().size + Vector2(9, 2)
  19. global_position = get_viewport().get_camera_2d().get_screen_center_position() + offset
  20. $SubViewportContainer/SubViewport/Camera2D.global_position = get_viewport().get_camera_2d().get_screen_center_position()
  21. queue_redraw()