DropShadowRendererSmooth.gd 801 B

1234567891011121314151617181920212223242526
  1. extends Node
  2. @onready var sub_viewport: SubViewport = %SubViewport
  3. @onready var camera: Camera2D = %Camera
  4. @onready var point: Node2D = %Point
  5. var enabled := true
  6. const day_colour := Color("000000")
  7. const night_colour := Color("5e5e5e")
  8. func _ready() -> void:
  9. await get_tree().physics_frame
  10. sub_viewport.set_world_2d(get_viewport().get_world_2d())
  11. func _physics_process(_delta: float) -> void:
  12. if get_viewport().get_camera_2d() != null:
  13. camera.global_position = get_viewport().get_camera_2d().get_screen_center_position()
  14. camera.zoom = Vector2i(Vector2.ONE / $"%Container".scale)
  15. point.global_position = camera.global_position
  16. var colour := day_colour
  17. $%Container.material.set_shader_parameter("shadow_colour", colour)
  18. func _exit_tree() -> void:
  19. pass
  20. #sub_viewport.set_world_2d(null)