Files
Simplaudio/Scripts/create_playlists_menu.gd
Bucket Of Chicken 1dbaa781dc Alot of changes(description)
- finally fixed the save system so it saves new users files
- added better bgs
- reorganized files so its less of a clusterfuck
2025-08-10 07:20:17 +02:00

95 lines
2.9 KiB
GDScript

extends Control
@onready var good_indicator: Label = $ScrollContainer/VBoxContainer/GoodIndicator
@onready var create_playlist_button: Button = $ScrollContainer/VBoxContainer/CreatePlaylistButton
@onready var file_dialog: FileDialog = $FileDialog
@onready var current_directory: Label = $ScrollContainer/VBoxContainer/CurrentDirectory
@onready var playlist_name: LineEdit = $ScrollContainer/VBoxContainer/PlaylistName
@onready var playlists_holder: VBoxContainer = $"../PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/PlaylistsHolder"
const PLAYLIST_DISPLAY = preload("res://Scenes/PlaylistDisplay.tscn")
@onready var Parent:MainScene = owner
var NameValid:bool
var DirValid:bool
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func IsValid():
if NameValid:
if DirValid:
create_playlist_button.disabled = false
else:
create_playlist_button.disabled = true
else:
create_playlist_button.disabled = true
func _on_playlist_name_text_changed(new_text: String) -> void:
#elif new_text.unicode_at()
if !Parent.Playlists.has(new_text):
if new_text != "":
good_indicator.text = tr("NAME_VALID")
good_indicator.label_settings.font_color = Color(0,1,0,1)
NameValid =true
else:
good_indicator.text = tr("NAME_EMPTY")
good_indicator.label_settings.font_color = Color(1,0,0,1)
NameValid = false
else:
good_indicator.text = tr("NAME_USED")
good_indicator.label_settings.font_color = Color(1,0,0,1)
NameValid = false
IsValid()
func _on_select_dir_button_pressed() -> void:
file_dialog.show()
print(get_stack())
func _on_file_dialog_dir_selected(dir: String) -> void:
if dir != "":
DirValid = true
else:
DirValid = false
current_directory.text = dir
IsValid()
func ResetToDefault():
playlist_name.clear()
good_indicator.text = ""
good_indicator.label_settings.font_color = Color(1,1,1,1)
NameValid = false
create_playlist_button.disabled = true
func _on_create_playlist_button_pressed() -> void:
Parent.PlaylistsLocation[playlist_name.text] = current_directory.text
var Access = DirAccess.open(current_directory.text)
if Access != null:
@warning_ignore("static_called_on_instance")
var Read:Array = Access.get_files_at(current_directory.text)
var songs:Array
var WavDisclaimer:bool
for song:String in Read:
if song.contains(".mp3"):
songs.append(song)
Parent.Playlists[playlist_name.text] = songs
else:
Parent.Playlists[playlist_name.text] = []
var child = PLAYLIST_DISPLAY.instantiate()
child.PlaylistName = playlist_name.text
child.PlaylistLocation = Parent.PlaylistsLocation[playlist_name.text]
child.PlaylistSongs = Parent.Playlists[playlist_name.text]
playlists_holder.add_child(child)
hide()
ResetToDefault()
func _on_close_button_pressed() -> void:
hide()