online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/menus/sidebarright/confirmbutton.gd')
-rw-r--r--ui/menus/sidebarright/confirmbutton.gd42
1 files changed, 42 insertions, 0 deletions
diff --git a/ui/menus/sidebarright/confirmbutton.gd b/ui/menus/sidebarright/confirmbutton.gd
new file mode 100644
index 0000000..62d8a60
--- /dev/null
+++ b/ui/menus/sidebarright/confirmbutton.gd
@@ -0,0 +1,42 @@
+extends Button
+class_name ConfirmButton
+
+const Confirm = preload("res://ui/confirm/Confirm.tscn")
+var waiting_on_answer: Confirm = null
+export(String) var confirm_text = ""
+
+
+func _ready() -> void:
+ PacketHandler.connect("game_over", self, "set_disabled", [true])
+ if PacketHandler:
+ PacketHandler.connect("signal_recieved", self, "_signal_recieved")
+
+
+func _signal_recieved(_signal: Dictionary) -> void:
+ pass
+
+
+func confirm() -> void:
+ if !waiting_on_answer:
+ var confirm = Confirm.instance()
+ add_child(confirm)
+ confirm.confirm(self, confirm_text, 20)
+ waiting_on_answer = confirm
+
+
+func set_disabled(new: bool) -> void:
+ disabled = new
+ mouse_default_cursor_shape = CURSOR_FORBIDDEN if new else CURSOR_POINTING_HAND
+
+
+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