aboutsummaryrefslogtreecommitdiff
path: root/game/src/Game/GameSession/Topbar.gd
diff options
context:
space:
mode:
author hop311 <hop3114@gmail.com>2023-12-07 23:45:19 +0100
committer hop311 <hop3114@gmail.com>2023-12-11 10:51:01 +0100
commitfd375bdb35d8a7b2ac9cf3dd02cdb0f197451a0b (patch)
treeb22d464dbf8e0e2569b9be5aa130e4def2e51207 /game/src/Game/GameSession/Topbar.gd
parenta6952efba078e49d6555b0586230986a2cb7ed40 (diff)
Big UI commit - GUINode, MaskedFlag, PieChart, etc
Diffstat (limited to 'game/src/Game/GameSession/Topbar.gd')
-rw-r--r--game/src/Game/GameSession/Topbar.gd84
1 files changed, 84 insertions, 0 deletions
diff --git a/game/src/Game/GameSession/Topbar.gd b/game/src/Game/GameSession/Topbar.gd
new file mode 100644
index 0000000..6cc710f
--- /dev/null
+++ b/game/src/Game/GameSession/Topbar.gd
@@ -0,0 +1,84 @@
+extends GUINode
+
+var _speed_up_button : Button
+var _speed_down_button : Button
+var _speed_indicator_button : Button
+var _speed_indicator_texture : GFXIconTexture
+var _date_label : Label
+var _country_name_label : Label
+
+func _ready():
+ GameSingleton.state_updated.connect(_update_info)
+
+ add_gui_element("topbar.gui", "topbar")
+
+ hide_nodes([
+ ^"./topbar/topbar_outlinerbutton_bg",
+ ^"./topbar/topbar_outlinerbutton"
+ ])
+
+ const player_country : String = "SLV"
+
+ var player_flag_texture : GFXMaskedFlagTexture = get_gfx_masked_flag_texture_from_node(^"./topbar/player_flag")
+ if player_flag_texture:
+ player_flag_texture.set_flag_country_name_and_type(player_country, &"")
+
+ _speed_up_button = get_button_node(^"./topbar/button_speedup")
+ if _speed_up_button:
+ _speed_up_button.pressed.connect(_on_increase_speed_button_pressed)
+
+ _speed_down_button = get_button_node(^"./topbar/button_speeddown")
+ if _speed_down_button:
+ _speed_down_button.pressed.connect(_on_decrease_speed_button_pressed)
+
+ var pause_bg_button : Button = get_button_node(^"./topbar/pause_bg")
+ if pause_bg_button:
+ pause_bg_button.pressed.connect(_on_play_pause_button_pressed)
+
+ _date_label = get_label_node(^"./topbar/DateText")
+
+ _country_name_label = get_label_node(^"./topbar/CountryName")
+ if _country_name_label:
+ _country_name_label.text = player_country
+
+ _speed_indicator_button = get_button_node(^"./topbar/speed_indicator")
+ _speed_indicator_texture = get_gfx_icon_texture_from_node(^"./topbar/speed_indicator")
+
+func _update_info() -> void:
+ if _date_label:
+ _date_label.text = GameSingleton.get_longform_date()
+
+ # TODO - add disabled state textures so this doesn't hide the buttons
+ #if _speed_up_button:
+ # _speed_up_button.disabled = not GameSingleton.can_increase_speed()
+
+ #if _speed_down_button:
+ # _speed_down_button.disabled = not GameSingleton.can_decrease_speed()
+
+ if _speed_indicator_button and _speed_indicator_texture:
+ var index : int = 1
+ if not GameSingleton.is_paused():
+ index += GameSingleton.get_speed() + 1
+ _speed_indicator_texture.set_icon_index(index)
+ _speed_indicator_button.queue_redraw()
+
+# REQUIREMENTS:
+# * UIFUN-71
+func _on_play_pause_button_pressed():
+ print("Toggling pause!")
+ GameSingleton.toggle_paused()
+ _update_info()
+
+# REQUIREMENTS:
+# * UIFUN-72
+func _on_increase_speed_button_pressed():
+ print("Speed up!")
+ GameSingleton.increase_speed()
+ _update_info()
+
+# REQUIREMENTS:
+# * UIFUN-73
+func _on_decrease_speed_button_pressed():
+ print("Speed down!")
+ GameSingleton.decrease_speed()
+ _update_info()