1
0
Fork 0
spacetac/core/ui/command.gd
2022-10-24 00:50:48 +02:00

42 lines
822 B
GDScript

@tool
extends Composer
class_name Command
signal clicked
@export var icon: Texture2D:
set(val):
if val is Texture2D:
icon = val
else:
icon = PlaceholderTexture2D.new()
_check_compose()
@export var color: Color:
set(val):
if val is Color:
color = val
else:
color = Color.BLACK
_check_compose()
@export var code: String
func _compose():
$badge/icon.texture = icon
$badge.self_modulate = color
super._compose()
func _on_click_input_event(viewport, event, shape_idx):
if event is InputEventMouseButton:
if event.button_index == MOUSE_BUTTON_LEFT:
get_viewport().set_input_as_handled()
clicked.emit()
func apply(container: Node2D, pos: Vector2):
if get_parent() != container:
if get_parent():
get_parent().remove_child(self)
container.add_child(self)
position = pos