Files
berry-dash-godot-remake/Scripts/MusicManager.cs
T
Puppet cbefe77af7 Made menu music keep playing across all scenes but game
this was way more annoying than it should have been. Wanna know why?
Godot.
2026-02-23 23:23:40 -08:00

43 lines
1.1 KiB
C#

using Godot;
public partial class MusicManager : Node {
private AudioStreamPlayer _player;
private Node _lastScene;
private AudioStream _menuMusic;
public override void _Ready() {
_player = new AudioStreamPlayer();
AddChild(_player);
_menuMusic = GD.Load<AudioStream>("res://Audio/Music/Menu.mp3");
_player.Stream = _menuMusic;
_player.Play();
_lastScene = GetTree().CurrentScene;
}
public override void _Process(double delta) {
Node currentScene = GetTree().CurrentScene;
if (currentScene != _lastScene) {
OnSceneChanged(currentScene);
_lastScene = currentScene;
}
}
private void OnSceneChanged(Node newScene) {
if (_player == null) return;
if (newScene == null) return;
if (newScene.Name == "Game") {
if (_player.Playing)
_player.Stop();
} else {
if (_player.Stream != _menuMusic || !_player.Playing) {
_player.Stream = _menuMusic;
_player.Play();
}
}
}
}