Events interruption should now work at all time (added interruption in room_selector scene) Fixed missing test in game.gd for when the player is not set Fixed some ESC scripts (worker filled sheet event is now blocking, room13 left door waits simple click, not use verb)
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.interrupt_running_event()
|
|
escoria.event_manager.queue_event(script.events['debug'])
|
|
|
|
func _on_option_item_selected(index):
|
|
selected_id = index
|