newlon/scripts/audio/AudioSlider.cs
2025-07-17 11:44:10 +05:00

43 lines
648 B
C#

using Godot;
using Newlon;
public partial class AudioSlider : HSlider
{
enum TYPE
{
SFX,
MUSIC
}
[Export] private TYPE affects;
public override void _Ready()
{
DragEnded += OnDragEnded;
if (affects == TYPE.SFX)
{
SetValueNoSignal(Settings.SFX);
}
else
{
SetValueNoSignal(Settings.Music);
}
}
private void OnDragEnded(bool hasChanged)
{
if (hasChanged)
{
if (affects == TYPE.SFX)
{
Settings.SFX = Value;
AudioServer.SetBusVolumeDb(2, Mathf.LinearToDb((float)Value));
}
else
{
Settings.Music = Value;
AudioServer.SetBusVolumeDb(1, Mathf.LinearToDb((float)Value));
}
}
}
}