27 lines
706 B
GDScript
27 lines
706 B
GDScript
extends Light2D
|
|
|
|
|
|
onready var viewport: Viewport = $Viewport
|
|
|
|
|
|
func _ready() -> void:
|
|
texture = viewport.get_texture()
|
|
|
|
|
|
func _process(delta: float) -> void:
|
|
var main_viewport = get_viewport()
|
|
if viewport.canvas_transform != main_viewport.canvas_transform:
|
|
viewport.canvas_transform = main_viewport.canvas_transform
|
|
transform = main_viewport.canvas_transform.inverse()
|
|
viewport.render_target_update_mode = Viewport.UPDATE_ONCE
|
|
|
|
|
|
func add_stain(stain: Node2D) -> void:
|
|
viewport.add_child(stain)
|
|
viewport.render_target_update_mode = Viewport.UPDATE_ONCE
|
|
|
|
|
|
func reset() -> void:
|
|
for child in viewport.get_children():
|
|
child.queue_free()
|
|
viewport.render_target_update_mode = Viewport.UPDATE_ONCE
|