small racing game im working on
Diffstat (limited to 'ui/track_select.gd')
| -rw-r--r-- | ui/track_select.gd | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/ui/track_select.gd b/ui/track_select.gd index 23de828..a4d6377 100644 --- a/ui/track_select.gd +++ b/ui/track_select.gd @@ -1,12 +1,19 @@ extends Control class_name TrackSelect -@export var editor: PackedScene = preload("res://ui/editor/track_editor.tscn") -@export var race: PackedScene = preload("res://scenes/race_high.tscn") -@export var ghost_watch: PackedScene = preload("res://scenes/ghost_watcher.tscn") -@export var trackbutton: PackedScene = preload("res://ui/track_button.tscn") +const editor: PackedScene = preload("res://ui/editor/track_editor.tscn") +const race: PackedScene = preload("res://scenes/race_high.tscn") +const ghost_watch: PackedScene = preload("res://scenes/ghost_watcher.tscn") +const trackbutton: PackedScene = preload("res://ui/track_button.tscn") @export var editable := false -@onready var dev = DirAccess.dir_exists_absolute("res://.git") +@onready var dev := DirAccess.dir_exists_absolute("res://.git") + +var cfg: PackedInt32Array = []: + set(c): + cfg = c + for child in get_children(): + child.play_multi_button.visible = !cfg.is_empty() + func _ready() -> void: if get_child_count() > 0: @@ -18,6 +25,7 @@ func _on_mkbutton(_button: TrackButton, _track: TrackResource) -> void: func mkbutton(track: TrackResource) -> void: var button := trackbutton.instantiate() as TrackButton + button.play_multi_button.visible = !cfg.is_empty() button.editable = editable button.dev = dev button.name = track.name @@ -28,6 +36,7 @@ func mkbutton(track: TrackResource) -> void: button.watch.connect(func(): watch(track, lodg(track.name))) button.delete.connect(delete.bind(track)) button.play.connect(func(): play(track, lodg(track.name))) + button.play_multi.connect(play_multi.bind(track, lodg(track.name))) button.edit.connect(edit.bind(track)) _on_mkbutton(button, track) @@ -45,6 +54,13 @@ func edit(track: TrackResource) -> void: func play(track: TrackResource, ghost: GhostData) -> void: Globals.playing = track Globals.ghost = ghost + Globals.players = [-2] + add_to_main(race) + +func play_multi(track: TrackResource, ghost: GhostData) -> void: + Globals.players = cfg + Globals.playing = track + Globals.ghost = ghost add_to_main(race) func watch(track: TrackResource, ghost: GhostData) -> void: |