small racing game im working on
Diffstat (limited to 'ui/editor/track_select.gd')
| -rw-r--r-- | ui/editor/track_select.gd | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ui/editor/track_select.gd b/ui/editor/track_select.gd new file mode 100644 index 0000000..e7ed050 --- /dev/null +++ b/ui/editor/track_select.gd @@ -0,0 +1,39 @@ +extends TrackSelect +class_name TrackEditorList + +@export var other: BuiltinTrackSelect +var tracks: Array[TrackResource] = [] + +func _ready() -> void: + if not DirAccess.dir_exists_absolute(Globals.TRACKS.get_base_dir()): + DirAccess.make_dir_recursive_absolute(Globals.TRACKS.get_base_dir()) + var d := DirAccess.open(Globals.TRACKS.get_base_dir()) + d.list_dir_begin() + var item := d.get_next() + while !item.is_empty(): + tracks.append(TrackResource._load(Globals.TRACKS.get_base_dir().path_join(item))) + item = d.get_next() + mkbuttons(tracks) + super() + +func _on_mkbutton(b: TrackButton, t: TrackResource) -> void: + @warning_ignore("static_called_on_instance") + b.include.connect(func(): other.add(t); BuiltinTrackSelect.delete(t); b.queue_free()) + +func _on_new_pressed() -> void: + var res := TrackResource.new([]) + var n := 0 + while FileAccess.file_exists(Globals.TRACKS % ("untitled track %d" % n if n != 0 else "untitled track")): + n+=1 + var nam := "untitled track %d" % n if n != 0 else "untitled track" + res.name = nam + edit(res) + tracks.append(res) + mkbutton(res) + +func _on_import_import(p_track: TrackResource) -> void: + for track in tracks: + if track.name == p_track.name: + return + p_track.save(Globals.TRACKS % p_track.name) + mkbutton(p_track) |