necra-prototypes/selectable.gd
Antonio Dell'Annunziata 5c785e24af
All checks were successful
/ test (push) Successful in 2s
Integrate map and ritual
2025-03-16 16:26:42 +01:00

31 lines
1,009 B
GDScript

class_name Selectable
extends Area2D
signal clicked
var selection_sprite: Sprite2D
func _ready():
if selection_sprite: return
var parent_sprite = get_parent() as Sprite2D
selection_sprite = Sprite2D.new()
selection_sprite.texture = parent_sprite.texture.duplicate(true)
var scale_x = ((selection_sprite.texture.get_size().x + 10) / selection_sprite.texture.get_size().x)
var scale_y = ((selection_sprite.texture.get_size().y + 10) / selection_sprite.texture.get_size().y)
selection_sprite.scale = Vector2(scale_x,scale_y)
selection_sprite.show_behind_parent = true
selection_sprite.modulate = Color.BLACK
selection_sprite.visible = false
parent_sprite.call_deferred("add_child", selection_sprite)
parent_sprite.call_deferred("move_child", selection_sprite, 0)
func _on_mouse_entered():
selection_sprite.show()
func _on_mouse_exited():
selection_sprite.hide()
func _on_input_event(viewport, event, shape_idx):
if event is InputEventMouseButton and event.is_pressed():
clicked.emit()