62 lines
1.6 KiB
GDScript
62 lines
1.6 KiB
GDScript
extends Node
|
|
|
|
# Main menu & game spawning
|
|
@onready
|
|
var mainMenuScene = preload("res://main_menu.tscn")
|
|
var mainMenuSceneInstance: Node
|
|
@onready
|
|
var gameScene = preload("res://molecular/molecular_stage.tscn")
|
|
var gameSceneInstance: Node
|
|
@onready
|
|
var respawnScene = preload("res://respawn_menu.tscn")
|
|
var respawnSceneInstance: Node
|
|
# Currently active scene (instance)
|
|
var currentSceneInstance:Node
|
|
|
|
# UI effects
|
|
var fadeEffect: CanvasLayer
|
|
|
|
|
|
func _ready() -> void:
|
|
# Instantiate effects
|
|
fadeEffect = $UI/Fade
|
|
fadeEffect.visible = false
|
|
|
|
# Create game (main menu)
|
|
print("Creating Main menu...")
|
|
mainMenuSceneInstance = mainMenuScene.instantiate()
|
|
currentSceneInstance = mainMenuSceneInstance
|
|
add_child(currentSceneInstance)
|
|
|
|
# Link MainMenu button to start_game
|
|
print("Linking Play button...")
|
|
mainMenuSceneInstance.get_node("PlayButton").connect("pressed", start_game)
|
|
|
|
|
|
func start_game() -> void:
|
|
print("Starting game...")
|
|
|
|
# Instatiate
|
|
currentSceneInstance.queue_free()
|
|
gameSceneInstance = gameScene.instantiate()
|
|
currentSceneInstance = gameSceneInstance
|
|
add_child(currentSceneInstance)
|
|
|
|
# Populate GameManager with game scene
|
|
GameManager.foodManager = gameSceneInstance.get_node("FoodManager")
|
|
|
|
|
|
func go_to_respawn_scene() -> void:
|
|
fadeEffect.visible = true
|
|
await fadeEffect.fade(1.0, 1.5).finished
|
|
print("Switching to Respawn scene.")
|
|
currentSceneInstance.queue_free()
|
|
|
|
respawnSceneInstance = respawnScene.instantiate()
|
|
respawnSceneInstance.get_node("RespawnButton").connect("pressed", start_game)
|
|
currentSceneInstance = respawnSceneInstance
|
|
|
|
add_child(currentSceneInstance)
|
|
await fadeEffect.fade(0.0, 1.5).finished
|
|
fadeEffect.visible = false
|