Co-authored-by: Dennis Ploeger <develop@dieploegers.de> Co-authored-by: dploeger <dploeger@users.noreply.github.com>
44 lines
1.1 KiB
GDScript
44 lines
1.1 KiB
GDScript
extends OptionButton
|
|
|
|
var selected_id = 0
|
|
var options_paths = []
|
|
|
|
func _ready():
|
|
var rooms_folder = "res://game/rooms/"
|
|
var dir = Directory.new()
|
|
var rooms_list: Array = []
|
|
var path = ProjectSettings.globalize_path(rooms_folder)
|
|
if not OS.has_feature("editor"):
|
|
path = OS.get_executable_path().get_base_dir().plus_file(path)
|
|
var tmp = dir.open(path)
|
|
if tmp == OK:
|
|
dir.list_dir_begin(true)
|
|
var file_name = dir.get_next()
|
|
while file_name != "":
|
|
if dir.current_is_dir():
|
|
rooms_list.push_back(file_name)
|
|
file_name = dir.get_next()
|
|
|
|
rooms_list.sort()
|
|
for room in rooms_list:
|
|
add_item(room)
|
|
options_paths.push_back("res://game/rooms/" + room + "/" +
|
|
room + ".tscn")
|
|
|
|
else:
|
|
escoria.logger.report_warnings("room_select.gd:_ready()",
|
|
["A problem occurred while opening rooms folder."])
|
|
|
|
|
|
func _on_button_pressed():
|
|
|
|
var script = escoria.esc_compiler.compile([
|
|
":debug",
|
|
"change_scene %s" % options_paths[selected_id]
|
|
])
|
|
|
|
escoria.event_manager.queue_event(script.events['debug'])
|
|
|
|
func _on_option_item_selected(index):
|
|
selected_id = index
|