1
0
Fork 0
spacetac/core/ui/command.gd

39 lines
688 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 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()