newlon/scripts/audio/AudioSlider.cs
2025-06-29 14:28:51 +05:00

43 lines
644 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(Utility.SFX);
}
else
{
SetValueNoSignal(Utility.Music);
}
}
private void OnDragEnded(bool hasChanged)
{
if (hasChanged)
{
if (affects == TYPE.SFX)
{
Utility.SFX = Value;
AudioServer.SetBusVolumeDb(0, Mathf.LinearToDb((float)Value));
}
else
{
Utility.Music = Value;
AudioServer.SetBusVolumeDb(1, Mathf.LinearToDb((float)Value));
}
}
}
}