clockwork-city/prefabs/ui/controls.gd
duncgibbs cb0c6e18f5
Some checks failed
linting & formatting / build (push) Failing after 22s
creates all initial tiles and buildings
2026-04-15 10:45:43 -05:00

143 lines
3.2 KiB
GDScript

class_name Controls extends Control
var rem_tween: Tween
var es_tween: Tween
@onready var player_1_label: Label = %Player1Label
@onready var player_1_money: Label = %Player1Money
@onready var turn_label: Label = %TurnLabel
@onready var submit_button: Button = %Submit
@onready var pause_button: Button = %Pause
@onready var play_button: Button = %Play
@onready var blueprints_container: Container = %BlueprintsContainer
@onready var start_walls: Button = %StartWalls
@onready var stop_walls: Button = %StopWalls
@onready var fast_1: Button = %FastForward1
@onready var fast_2: Button = %FastForward2
@onready var fast_4: Button = %FastForward4
@onready var fast_10: Button = %FastForward10
func reset_turn() -> void:
get_tree().call_group("Pausable", "pause")
submit_button.show()
pause_button.hide()
play_button.hide()
func set_turn(turn: int) -> void:
turn_label.text = str(turn)
func set_players(players: Array[Player]) -> void:
_update_player_info(players[0])
players[0].changed.connect(_update_player_info)
func _update_player_info(player: Player) -> void:
player_1_label.text = "%s:" % player.name
player_1_money.text = "$%d" % player.money
func _on_submit_pressed():
get_tree().call_group("Pausable", "unpause")
submit_button.hide()
pause_button.show()
func _on_pause_pressed():
get_tree().call_group("Pausable", "pause")
play_button.show()
pause_button.hide()
func _on_play_pressed():
get_tree().call_group("Pausable", "unpause")
play_button.hide()
pause_button.show()
func _on_blueprints_pressed():
_show_real_estate_market()
func handle_tile_selected(tile: Tile):
_hide_real_estate_market()
Globals.game.select_tile(tile)
func handle_building_selected(building: Building) -> void:
_hide_real_estate_market()
Globals.game.select_building(building)
func _on_walls_pressed():
Globals.game.place_walls()
if start_walls.visible:
start_walls.hide()
stop_walls.show()
else:
start_walls.show()
stop_walls.hide()
_hide_real_estate_market()
func _hide_real_estate_market() -> void:
if is_instance_valid(rem_tween):
rem_tween.kill()
rem_tween = create_tween()
rem_tween.set_ignore_time_scale(true)
rem_tween.set_trans(Tween.TRANS_BACK)
rem_tween.tween_property(blueprints_container, "position:y", -450, 0.5)
func _show_real_estate_market() -> void:
if is_instance_valid(rem_tween):
rem_tween.kill()
rem_tween = create_tween()
rem_tween.set_ignore_time_scale(true)
rem_tween.set_trans(Tween.TRANS_BACK)
rem_tween.tween_property(blueprints_container, "position:y", 0, 0.5)
func _speed_up_engine(speed: float) -> void:
if is_instance_valid(es_tween):
es_tween.kill()
es_tween = create_tween()
es_tween.set_ignore_time_scale(true)
es_tween.tween_property(Engine, "time_scale", speed, 0.5)
func _on_fast_forward_1_pressed():
_speed_up_engine(2)
fast_1.hide()
fast_2.show()
fast_4.hide()
fast_10.hide()
func _on_fast_forward_2_pressed():
_speed_up_engine(4)
fast_1.hide()
fast_2.hide()
fast_4.show()
fast_10.hide()
func _on_fast_forward_4_pressed():
_speed_up_engine(10)
fast_1.hide()
fast_2.hide()
fast_4.hide()
fast_10.show()
func _on_fast_forward_10_pressed():
_speed_up_engine(1)
fast_1.show()
fast_2.hide()
fast_4.hide()
fast_10.hide()