online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/barbutton/confirmbutton.gd')
-rw-r--r--ui/barbutton/confirmbutton.gd38
1 files changed, 38 insertions, 0 deletions
diff --git a/ui/barbutton/confirmbutton.gd b/ui/barbutton/confirmbutton.gd
new file mode 100644
index 0000000..d04e2ce
--- /dev/null
+++ b/ui/barbutton/confirmbutton.gd
@@ -0,0 +1,38 @@
+extends BarTextureButton
+class_name ConfirmButton
+
+const Confirm = preload("res://ui/confirm/Confirm.tscn")
+var waiting_on_answer: Confirm = null
+export(String) var confirm_text = ""
+
+export(NodePath) onready var status = get_node(status) as StatusLabel
+
+
+func _ready() -> void:
+ PacketHandler.connect("game_over", self, "set_disabled", [true])
+ if Globals.network:
+ Globals.network.connect("signal_recieved", self, "_signal_recieved")
+
+
+func confirm() -> void:
+ var confirm = Confirm.instance()
+ add_child(confirm)
+ confirm.confirm(self, confirm_text, 20)
+ waiting_on_answer = confirm
+
+
+func _signal_recieved(_signal: Dictionary) -> void:
+ pass
+
+
+func _confirmed(what: bool) -> void:
+ if waiting_on_answer:
+ if !waiting_on_answer.is_queued_for_deletion():
+ waiting_on_answer.queue_free()
+ waiting_on_answer = null
+ if what:
+ after_confirmed()
+
+
+func after_confirmed() -> void:
+ pass