using Godot; using System; using System.Collections.Generic; public partial class CommonData : Node { public bool Muted = true; // Level information public string CurrentLevel; // Level high scores public int Level1HighScore = 0; public int Level2HighScore = 0; public int Level3HighScore = 0; public int Level4HighScore = 0; public int Level5HighScore = 0; public int Level6HighScore = 0; public int Level7HighScore = 0; public int Level8HighScore = 0; public int Level9HighScore = 0; public int Level10HighScore = 0; public int Level11HighScore = 0; // Levels Completed public HashSet LevelsCompleted = new HashSet(); public override void _Ready() { // Connect to the audio player GetNode("AudioStreamPlayer").Finished += LoopAudio; GetNode("AudioStreamPlayer").VolumeDb = -80; // temporary // Start game by loading the camera var scene = GD.Load("res://Assets/Scenes/Persistant/Camera.tscn"); var inst = scene.Instantiate(); GetTree().Root.CallDeferred(Node.MethodName.AddChild, inst); // Start game by loading the main menu scene = GD.Load("res://Assets/Scenes/MenusAndLevels/MainMenu.tscn"); inst = scene.Instantiate(); GetTree().Root.CallDeferred(Node.MethodName.AddChild, inst); PlayMusic("MainMenu"); // Load in saved data } public override void _Process(double delta) { if (Input.IsActionJustPressed("quit_game")) { GetTree().Quit(); } if (Input.IsActionJustPressed("mute")) { if (Muted) { Muted = false; GetNode("AudioStreamPlayer").VolumeDb = 0; } else { Muted = true; GetNode("AudioStreamPlayer").VolumeDb = -80; } } } // BG Audio Management public void StopMusic() { // Stop whatever audio is playing GetNode("AudioStreamPlayer").Stop(); } public void PlayMusic(string AudioName) { // Load target audio and play the audio GetNode("AudioStreamPlayer").Stream = (Godot.AudioStream)GD.Load($"res://Assets/Audio/Music/{AudioName}.mp3"); GetNode("AudioStreamPlayer").Play(); } void LoopAudio() { // Find when the stream finishes playing to play it again GetNode("AudioStreamPlayer").Play(); } }