frame-of-mind/src/ui/prompter/prompt_button.gd

38 lines
676 B
GDScript3
Raw Normal View History

2026-01-23 12:39:47 +00:00
@tool
extends Button
## A button representing a specific action, and offering a default prompt that can be changed
class_name PromptButton
var _action : StringName
@export_custom(PROPERTY_HINT_INPUT_NAME, "show_builtin") var action : StringName = &"ui_accept":
set(value):
_action = value
2026-01-23 12:39:47 +00:00
if is_node_ready():
_update_action()
2026-01-23 12:39:47 +00:00
else:
_update_action.call_deferred()
2026-01-23 12:39:47 +00:00
get: return _action
func _update_action():
text = _action
2026-01-23 12:39:47 +00:00
$ActionPrompt.action = _action
func _override_prompt(prompt: String):
2026-01-23 12:39:47 +00:00
if prompt:
text = prompt
else:
text = action
func appear(prompt: String = "") -> void:
_override_prompt(prompt)
2026-01-23 12:39:47 +00:00
show()
2026-01-23 12:39:47 +00:00
func vanish() -> void:
hide()