online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/MovesList.gd')
| -rw-r--r-- | ui/MovesList.gd | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/ui/MovesList.gd b/ui/MovesList.gd index 9af2cd9..1cf697d 100644 --- a/ui/MovesList.gd +++ b/ui/MovesList.gd @@ -1,7 +1,12 @@ -extends ItemList +extends ScrollContainer + var tween: Tween -onready var scrollbar = get_v_scroll() +var number = 1 + +onready var scroll_container = self +onready var scroll_bar = get_v_scrollbar() +onready var sans = $sans func _ready(): @@ -10,10 +15,36 @@ func _ready(): Utils.connect("newmove", self, "on_new_move") +func create_number_label(num): + var clr = ColorRect.new() + clr.color = Color(1, 1, 1, 0.13) + clr.rect_min_size = Vector2(70, 30) + var label = Label.new() + label.text = str(num) + ". " + label.align = Label.ALIGN_RIGHT + label.valign = Label.VALIGN_CENTER + label.rect_min_size = clr.rect_min_size + clr.add_child(label) + sans.add_child(clr) + + +func create_san_label(text, alignment = Label.ALIGN_RIGHT): + var label = Label.new() + label.text = text + label.valign = Label.VALIGN_CENTER + label.align = alignment + label.rect_min_size = Vector2(115, 0) + sans.add_child(label) + + func on_new_move(move): - add_item(move) + var alignment = Label.ALIGN_RIGHT + if Globals.turn: # white just moved + alignment = Label.ALIGN_LEFT + create_number_label(Globals.white_turns + 1) + number = 0 + create_san_label(move, alignment) tween.interpolate_property( # scrolldown - scrollbar, "value", scrollbar.value, scrollbar.max_value, 0.5, Tween.TRANS_BOUNCE, Tween.EASE_IN_OUT + scroll_bar, "value", scroll_bar.value, scroll_bar.max_value, 0.5, Tween.TRANS_BOUNCE, Tween.EASE_IN_OUT ) tween.start() - scrollbar.value = scrollbar.max_value |