online multiplayer chess game (note server currently down)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
extends MarginContainer
class_name UserPanel
onready var flag_display = $"%Flag"
onready var name_display = $"%Name"
onready var nps_display = $"%Nps"
onready var thinking_display = $"%ThinkingProgress"
onready var loading_display = $"%LoadingAnimation"
var flag := "rainbow" setget set_flag
var _name := "name" setget set_name
var nps := 0 setget set_nps
var thinking := 0 setget set_thinking
var loading := false setget set_loading, get_loading # reference to loading_display.visible
func set_flag(newflag: String) -> void:
flag = newflag
flag_display.texture = load("res://assets/flags/%s.png" % flag)
func set_name(newname: String) -> void:
_name = newname
name_display.text = _name
func set_nps(new_nps: int) -> void:
if nps == new_nps:
return
if new_nps == 0:
nps_display.hide()
else:
nps_display.show()
if OS.has_feature("JavaScript"):
var localized = JavaScript.eval("(%d).toLocaleString(document.documentElement.lang || 'en')" % new_nps)
nps_display.text = "%sn/s" % (localized if localized else format_n(new_nps)) # fallback
else:
nps_display.text = "%sn/s" % format_n(new_nps)
nps = new_nps
func format_n(n: int) -> String:
var strn := str(n)
if n == 0:
return strn
var lenn := len(strn)
var i := 1
while (3 * i) < lenn:
i += 1
strn = strn.insert(i, ",")
return strn
func set_thinking(new_thinking: int) -> void:
if new_thinking == thinking:
return
if new_thinking == 0:
thinking_display.hide()
thinking_display.value = 0
else:
thinking_display.show()
create_tween().tween_property(thinking_display, "value", float(new_thinking), .25)
thinking = new_thinking
func set_loading(new_loading: bool) -> void:
loading_display.visible = new_loading
func get_loading() -> bool:
return loading_display.visible
|