2022-10-20 23:16:48 +00:00
|
|
|
@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()
|
2022-10-23 22:50:48 +00:00
|
|
|
|
|
|
|
@export var color: Color:
|
|
|
|
set(val):
|
|
|
|
if val is Color:
|
|
|
|
color = val
|
|
|
|
else:
|
|
|
|
color = Color.BLACK
|
|
|
|
_check_compose()
|
2022-10-20 23:16:48 +00:00
|
|
|
|
|
|
|
@export var code: String
|
|
|
|
|
|
|
|
func _compose():
|
2022-10-23 23:09:57 +00:00
|
|
|
%icon.texture = icon
|
|
|
|
%badge.self_modulate = color
|
2022-10-20 23:16:48 +00:00
|
|
|
super._compose()
|
2022-10-23 23:09:57 +00:00
|
|
|
|
2022-10-20 23:16:48 +00:00
|
|
|
func apply(container: Node2D, pos: Vector2):
|
|
|
|
if get_parent() != container:
|
|
|
|
if get_parent():
|
|
|
|
get_parent().remove_child(self)
|
|
|
|
container.add_child(self)
|
|
|
|
position = pos
|
2022-10-23 23:09:57 +00:00
|
|
|
|
|
|
|
func _on_badge_pressed():
|
|
|
|
clicked.emit()
|