Files
notSpore/evolve-die-repeat/main_scene.gd

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