small racing game im working on
Diffstat (limited to 'ui/track_select.gd')
-rw-r--r--ui/track_select.gd26
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: