online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/account/Account.gd')
| -rw-r--r-- | ui/account/Account.gd | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/ui/account/Account.gd b/ui/account/Account.gd new file mode 100644 index 0000000..5ee24cf --- /dev/null +++ b/ui/account/Account.gd @@ -0,0 +1,75 @@ +extends Control + +onready var flags: PoolStringArray = ["rainbow"] +onready var flagchoice: OptionButton = $choose/signup/flag +onready var data: Dictionary = SaveLoad.files.id.data +onready var status: StatusLabel = $StatusLabel +onready var signup: UsernamePass = $choose/signup/usernamepass +onready var signin: UsernamePass = $choose/signin/usernamepass + +var autologin = false +var signed_in = false + + +func _ready(): + Globals.network.connect("signinresult", self, "_on_signin_result") + Globals.network.connect("signupresult", self, "_on_signup_result") + Globals.network.connect("connection_established", self, "attempt_autologin") + flags.append_array(Utils.walk_dir("res://assets/flags", false, "png", ["rainbow"])) + for i in flags: # add the items + flagchoice.add_icon_item(load("res://assets/flags/" + i + ".png"), i.replace("_", " ")) + + +func attempt_autologin(): + autologin = true + if data.name and data.password: + Globals.network.signin(data) + Log.info("Attempting autologin") + autologin = false + + +func _on_signin_result(result): + $choose/signin/signinbutton.disabled = false + if typeof(result) == TYPE_STRING: # ew, error, get it away from me + Log.err(result) + return + data.id = result.id + data.country = result.country + save_data() + status.set_text("Sign in sucessfull!") + signed_in = true # yay + + +func _on_signup_result(result: String): + $choose/signup/signupbutton.disabled = false + if "err:" in result: # ew error go awway + Log.err(result) + return + data.id = result + save_data() + status.set_text("Sign up sucessfull ( you are now logged in )!") + signed_in = true # yay + + +func _on_signup_pressed(): + $choose/signup/signupbutton.disabled = true + update_data(signup.username, signup.pw) + Globals.network.signup(data) + + +func update_data(username, pw): + username.text = username.get_text().strip_edges().strip_escapes() + data.name = username.get_text() + data.password = pw.get_text() + save_data() + + +func save_data(): + SaveLoad.files.id.data = data + SaveLoad.save("id") + + +func _on_signin_pressed(): + $choose/signin/signinbutton.disabled = true + update_data(signin.username, signin.pw) + Globals.network.signin(data) |