rj-action-library/Runtime/Audio/AudioManager/AudioManager.cs

41 lines
990 B
C#
Raw Normal View History

2025-07-25 15:35:19 +00:00
using Godot;
using System.Collections.Generic;
using System.Text;
namespace Rokojori
{
2025-08-31 06:05:39 +00:00
[GlobalClass,Tool, Icon("res://addons/rokojori_action_library/Icons/AudioManager.svg") ]
2025-07-25 15:35:19 +00:00
public partial class AudioManager:Node
{
[Export]
2025-10-24 11:38:51 +00:00
public AudioManagerData data = new AudioManagerData();
2025-08-31 06:05:39 +00:00
2025-10-24 11:38:51 +00:00
Dictionary<AudioFlag,float> _lastPlayTime = new Dictionary<AudioFlag, float>();
2025-07-25 15:35:19 +00:00
2025-10-24 11:38:51 +00:00
public float GetLastPlayed( AudioFlag selectorFlag )
2025-07-25 15:35:19 +00:00
{
if ( ! _lastPlayTime.ContainsKey( selectorFlag ) )
{
return -1;
}
return _lastPlayTime[ selectorFlag ];
}
2025-10-24 11:38:51 +00:00
public void RecordSoundPlaying( AudioFlag selectorFlag )
2025-07-25 15:35:19 +00:00
{
_lastPlayTime[ selectorFlag ] = TimeLine.osTime;
}
2025-10-24 11:38:51 +00:00
public bool CanPlay( AudioFlag selectorFlag, float blockDuration )
2025-07-25 15:35:19 +00:00
{
if ( ! _lastPlayTime.ContainsKey( selectorFlag ) )
{
return true;
}
return ( TimeLine.osTime - _lastPlayTime[ selectorFlag ] ) > blockDuration;
}
}
}