merge
This commit is contained in:
45
Main.gd
45
Main.gd
@@ -2,6 +2,7 @@ extends Node
|
||||
|
||||
export var splash_screen_path: String
|
||||
export var main_menu_path: String
|
||||
export var level_select_menu_path: String
|
||||
export var world_path: String
|
||||
|
||||
|
||||
@@ -19,7 +20,8 @@ func _ready() -> void:
|
||||
|
||||
func play_splash_screen() -> Node:
|
||||
var splash_screen: Node = load(splash_screen_path).instance()
|
||||
if splash_screen.connect('complete', self, 'free_connected_node', [splash_screen, 'free_connected_node']) != OK:
|
||||
if splash_screen.connect('complete', self, 'free_connected_node',
|
||||
[splash_screen, 'free_connected_node']) != OK:
|
||||
print('ERROR: Splash Screen "complete" signal already connected.')
|
||||
|
||||
add_child(splash_screen)
|
||||
@@ -29,7 +31,7 @@ func play_splash_screen() -> Node:
|
||||
func play_main_menu() -> Node:
|
||||
var main_menu: Node = load(main_menu_path).instance()
|
||||
if main_menu.connect('complete', self, 'main_menu_option') != OK:
|
||||
print('ERROR: Main Menu "quit" signal already connected.')
|
||||
print('ERROR: Main Menu "complete" signal already connected.')
|
||||
|
||||
add_child(main_menu)
|
||||
return main_menu
|
||||
@@ -37,12 +39,32 @@ func play_main_menu() -> Node:
|
||||
|
||||
func main_menu_option(option: String) -> void:
|
||||
if option == 'new game':
|
||||
new_game()
|
||||
elif option == 'quit':
|
||||
quit_game()
|
||||
var level_select_menu: Node = play_level_select_menu()
|
||||
yield(level_select_menu, 'complete')
|
||||
free_connected_node(level_select_menu, 'level_select_menu_option')
|
||||
level_select_menu = null
|
||||
return
|
||||
|
||||
|
||||
func play_level_select_menu() -> Node:
|
||||
var level_select_menu: Node = load(level_select_menu_path).instance()
|
||||
if level_select_menu.connect('complete', self, 'level_select_menu_option') != OK:
|
||||
print('ERROR: Level Select Menu "complete" signal already connected.')
|
||||
|
||||
add_child(level_select_menu)
|
||||
return level_select_menu
|
||||
|
||||
|
||||
func level_select_menu_option(option: String) -> void:
|
||||
var level: String = 'res://Levels/'
|
||||
if option == 'H':
|
||||
level += 'Hub World.tscn'
|
||||
else:
|
||||
level += 'Level ' + option + '.tscn'
|
||||
|
||||
new_game(level)
|
||||
return
|
||||
|
||||
func free_connected_node(node: Node, connected_function: String) -> void:
|
||||
node.disconnect('complete', self, connected_function)
|
||||
remove_child(node)
|
||||
@@ -50,13 +72,8 @@ func free_connected_node(node: Node, connected_function: String) -> void:
|
||||
return
|
||||
|
||||
|
||||
func new_game() -> void:
|
||||
#if get_tree().change_scene(world_path) != OK:
|
||||
if get_tree().change_scene("res://Levels/Level 4.tscn"):
|
||||
print('ERROR: Main failed to change scene to World.')
|
||||
return
|
||||
|
||||
|
||||
func quit_game() -> void:
|
||||
get_tree().quit()
|
||||
func new_game(level: String) -> void:
|
||||
if get_tree().change_scene(level) != OK:
|
||||
print('ERROR: Main failed to change scene to Level.')
|
||||
queue_free()
|
||||
return
|
||||
|
Reference in New Issue
Block a user