@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