using Godot; using System; using System.Collections.Generic; public partial class CommonData : Node { public bool Muted = true; // Game Information public const float FPS = 90.0f; // Max game fps public float GlobalTimer = 0.0f; // Seconds elapsed since game start int NumFramesElapsed = 0; // Level information public string CurrentLevel; // Player information public float CurrentHealth; public float MaxHealth = 100; // 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"); //scene = GD.Load("res://Assets/Scenes/DEVSCENES/EnemyTest.tscn"); inst = scene.Instantiate(); GetTree().Root.CallDeferred(Node.MethodName.AddChild, inst); PlayMusic("MainMenu"); // Load in saved data } public override void _Process(double delta) { // Frame Counter NumFramesElapsed += 1; GlobalTimer = NumFramesElapsed / FPS; GlobalTimer = (float)Convert.ToDouble(GlobalTimer.ToString("0.##")); // Truncates seconds elapsed to hundreds place (0.00) //GD.Print(GlobalTimer); 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(){GetNode("AudioStreamPlayer").Stop();}// Stop whatever audio is playing\ 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(){GetNode("AudioStreamPlayer").Play();}// Find when the stream finishes playing to play it again }