xiandie/scene/entity/ambient/light.gd

44 lines
1.0 KiB
GDScript

@tool
extends Sprite2D
@export var mode: Light2D.BlendMode = Light2D.BlendMode.BLEND_MODE_ADD:
set(new_val):
mode = new_val
if not is_node_ready():
return
_setup()
@export_group("Ambient Light", "ambient_light_")
@export var ambient_light_scale := 1.0:
set(new_val):
ambient_light_scale = new_val
if not is_node_ready():
return
_setup()
@export var ambient_light_energy := 1.0:
set(new_val):
ambient_light_energy = new_val
if not is_node_ready():
return
_setup()
@export var ambient_light_color := Color8(0xff, 0xff, 0xff, 0xff):
set(new_val):
ambient_light_color = new_val
if not is_node_ready():
return
_setup()
@onready var texture_light = %TexturePointLight2D as PointLight2D
@onready var natural_light = %NaturalPointLight2D as PointLight2D
func _ready() -> void:
_setup()
func _setup() -> void:
texture_light.texture = texture
natural_light.scale = Vector2(ambient_light_scale, ambient_light_scale)
natural_light.energy = ambient_light_energy
natural_light.color = ambient_light_color
natural_light.blend_mode = mode