online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/menus/sidebarright/sandisplay/SanDisplay.gd')
| -rw-r--r-- | ui/menus/sidebarright/sandisplay/SanDisplay.gd | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/ui/menus/sidebarright/sandisplay/SanDisplay.gd b/ui/menus/sidebarright/sandisplay/SanDisplay.gd index 504fb55..502d321 100644 --- a/ui/menus/sidebarright/sandisplay/SanDisplay.gd +++ b/ui/menus/sidebarright/sandisplay/SanDisplay.gd @@ -1,3 +1,4 @@ +# its really a PGNDisplay but im in no mood to change it extends PanelContainer var tween := Tween.new() @@ -8,12 +9,20 @@ onready var scroll_container := $Scroller onready var scroll_bar: VScrollBar = scroll_container.get_v_scrollbar() onready var sans := $Scroller/sanholder +var added_sans := 0 + func _ready() -> void: + scroll_bar.hide() scroll_bar.step = .15 #smoth add_child(tween) - Utils.connect("newmove", self, "on_new_move") - Utils.connect("pop_move", self, "reset_moves") + if Globals.grid: + Globals.grid.connect("add_to_pgn", self, "add_move") + Globals.grid.connect("clear_pgn", self, "clear") + Globals.grid.connect("remove_last", self, "pop") + else: + for i in "hello how do you do": + add_move(i) func create_number_label(num: int) -> void: @@ -24,23 +33,36 @@ func create_number_label(num: int) -> void: base.name = base.number.text -func add_move_to_label(move: String) -> void: - if !Globals.turn: - create_number_label(Globals.fullmove) +func add_move(move: String) -> void: + if added_sans % 2 == 0: + # warning-ignore:integer_division + create_number_label((added_sans / 2) + 1) + added_sans += 1 sans.get_children()[-1].add_move(move) + scroll_down() -func on_new_move(move: String) -> void: - add_move_to_label(move) +func scroll_down(): tween.interpolate_property(scroll_bar, "value", scroll_bar.value, scroll_bar.max_value, 0.5, 9) # bouncy tween.start() -func reset_moves() -> void: +func clear() -> void: + added_sans = 0 for i in sans.get_children(): - i.queue_free() + i.free() + + +func pop() -> void: + added_sans -= 1 + var cs = sans.get_children() + cs.invert() + for c in cs: + if !c.is_queued_for_deletion(): + c.pop_move() + return -func _gui_input(event: InputEvent) -> void: - if event is InputEventMouseButton: - OS.clipboard = Utils.get_pgn() +func _gui_input(_e: InputEvent) -> void: + if Input.is_action_just_pressed("click") and Globals.grid: + OS.clipboard = Globals.grid.chess.pgn() |