All checks were successful
Quality Check / Linting (push) Successful in 5s
Build Application / generate (push) Successful in 23s
Build Application / build (tower_defence_web, build/*, build, build/index.html, Web) (push) Successful in 14s
Build Application / build (tower_defence.elf, tower_defence.elf, tower_defence.elf, Linux) (push) Successful in 17s
Build Application / build (tower_defence.exe, tower_defence.exe, tower_defence.exe, Windows) (push) Successful in 19s
Build Application / build-docker (push) Successful in 10s
Build Application / release (push) Successful in 9s
43 lines
1 KiB
GDScript
43 lines
1 KiB
GDScript
extends Button
|
|
|
|
@export var username_field: LineEdit
|
|
@export var password_field: LineEdit
|
|
@export var api_config: ApiConfig
|
|
var api: ServerApi
|
|
|
|
|
|
func _ready() -> void:
|
|
if not username_field:
|
|
push_error("No Username Field set")
|
|
return
|
|
if not password_field:
|
|
push_error("No Password Field set")
|
|
return
|
|
if not api_config:
|
|
push_error("No API Configuration provided")
|
|
return
|
|
api = ServerApi.new(api_config)
|
|
connect("pressed", login)
|
|
username_field.connect("text_submitted", login_wrapper)
|
|
password_field.connect("text_submitted", login_wrapper)
|
|
|
|
|
|
func login_wrapper(_text) -> void:
|
|
login()
|
|
|
|
|
|
func login() -> void:
|
|
var login_data = PlayerLoginData.new()
|
|
login_data.username = username_field.text
|
|
login_data.password = password_field.text
|
|
api.player_login(login_data, on_success, on_error)
|
|
|
|
|
|
func on_success(response: ApiResponse) -> void:
|
|
var session: PlayerLoginSession = response.data
|
|
print("username: ", session.username)
|
|
print("token: ", session.token.to_utf8_buffer())
|
|
|
|
|
|
func on_error(error: ApiError) -> void:
|
|
print("Error: ", error.message)
|