aboutsummaryrefslogtreecommitdiff
path: root/game/src/Game/GameSession/Topbar.gd
blob: 4de94748991112ab065a56164410b47a86b4af70 (plain) (blame)
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
73
74
75
76
77
78
79
80
81
82
83
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() -> void:
   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_nodepath(^"./topbar/player_flag")
   if player_flag_texture:
      player_flag_texture.set_flag_country_name(player_country)

   _speed_up_button = get_button_from_nodepath(^"./topbar/button_speedup")
   if _speed_up_button:
      _speed_up_button.pressed.connect(_on_increase_speed_button_pressed)

   _speed_down_button = get_button_from_nodepath(^"./topbar/button_speeddown")
   if _speed_down_button:
      _speed_down_button.pressed.connect(_on_decrease_speed_button_pressed)

   var pause_bg_button : Button = get_button_from_nodepath(^"./topbar/pause_bg")
   if pause_bg_button:
      pause_bg_button.pressed.connect(_on_play_pause_button_pressed)

   _date_label = get_label_from_nodepath(^"./topbar/DateText")

   _country_name_label = get_label_from_nodepath(^"./topbar/CountryName")
   if _country_name_label:
      _country_name_label.text = player_country

   _speed_indicator_button = get_button_from_nodepath(^"./topbar/speed_indicator")
   _speed_indicator_texture = get_gfx_icon_texture_from_nodepath(^"./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() -> void:
   print("Toggling pause!")
   GameSingleton.toggle_paused()
   _update_info()

# REQUIREMENTS:
# * UIFUN-72
func _on_increase_speed_button_pressed() -> void:
   print("Speed up!")
   GameSingleton.increase_speed()
   _update_info()

# REQUIREMENTS:
# * UIFUN-73
func _on_decrease_speed_button_pressed() -> void:
   print("Speed down!")
   GameSingleton.decrease_speed()
   _update_info()