@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 player: Node: set(val): if val is Player: player = val else: player = null _check_compose() @export var code: String func _compose(): %icon.texture = icon %badge.self_modulate = player.color if player else Color.GRAY super._compose() func apply(container: Node2D, pos: Vector2): if get_parent() != container: if get_parent(): get_parent().remove_child(self) container.add_child(self) position = pos func _on_badge_pressed(): clicked.emit()