58 float num =
float.MaxValue;
86 public void PlaySound(
string name,
float volume,
float pitch,
float pan,
float delay) {
87 double num = m_subsystemTime.GameTime + delay;
92 public void PlaySound(
string name,
float volume,
float pitch,
float pan,
float delay,
Vector3 direction) {
93 double num = m_subsystemTime.GameTime + delay;
98 public virtual void PlaySound(
string name,
float volume,
float pitch,
Vector3 position,
float minDistance,
float delay) {
100 PlaySound(name, volume * num, pitch, 0f, delay);
103 public virtual void PlaySound(
string name,
float volume,
float pitch,
Vector3 position,
float minDistance,
bool autoDelay) {
108 public void PlayRandomSound(
string directory,
float volume,
float pitch,
float pan,
float delay) {
110 if (readOnlyList.
Count > 0) {
112 PlaySound(readOnlyList[index].ContentPath, volume, pitch, pan, delay);
115 Log.
Warning(
"Sounds directory \"{0}\" not found or empty.", directory);
119 public virtual void PlayRandomSound(
string directory,
float volume,
float pitch,
Vector3 position,
float minDistance,
float delay) {
124 public virtual void PlayRandomSound(
string directory,
float volume,
float pitch,
Vector3 position,
float minDistance,
bool autoDelay) {
135 public float CalculateVolume(
float distance,
float minDistance,
float rolloffFactor = 2f) => distance > minDistance
136 ? minDistance / (minDistance + Math.Max(rolloffFactor * (distance - minDistance), 0f))
188 double lastUpdateTime = value.LastUpdateTime;
189 double lastPlayedTime = value.LastPlayedTime;
190 float num = lastUpdateTime > 0.0 ? (float)(realTime - lastUpdateTime) : 0f;
191 value.Value = Math.Max(value.Value - 10f * num, 0f);
192 value.LastUpdateTime = realTime;
193 if (value.Value <= 6f
194 && (lastPlayedTime == 0.0 || volume > value.LastPlayedVolume || realTime - lastPlayedTime >= 0.0)) {
195 value.LastPlayedTime = realTime;
196 value.LastPlayedVolume = volume;
static void Warning(object message)
static float MinAudibleVolume
static void PlaySound(string name, float volume, float pitch, float pan)
static object Get(Type type, string name)
static ReadOnlyList< ContentInfo > List()
static float SoundsVolume
float CalculateDelay(Vector3 position)
virtual void PlaySound(string name, float volume, float pitch, Vector3 position, float minDistance, bool autoDelay)
Sound CreateSound(string name)
void PlayRandomSound(string directory, float volume, float pitch, float pan, float delay)
List< Vector3 > m_listenerPositions
void PlaySound(string name, float volume, float pitch, float pan, float delay, Vector3 direction)
float CalculateListenerDistanceSquared(Vector3 p)
SubsystemTime m_subsystemTime
virtual void Update(float dt)
SubsystemGameWidgets m_subsystemViews
float CalculateListenerDistance(Vector3 p)
ReadOnlyList< Vector3 > ListenerPositions
float CalculateVolume(float distance, float minDistance, float rolloffFactor=2f)
Dictionary< string, Congestion > m_congestions
virtual void PlayRandomSound(string directory, float volume, float pitch, Vector3 position, float minDistance, bool autoDelay)
virtual void PlaySound(string name, float volume, float pitch, Vector3 position, float minDistance, float delay)
void PlaySound(string name, float volume, float pitch, float pan, float delay)
bool UpdateCongestion(string name, float volume)
override void Load(ValuesDictionary valuesDictionary)
virtual void PlayRandomSound(string directory, float volume, float pitch, Vector3 position, float minDistance, float delay)
float CalculateDelay(float distance)
Dictionary< Sound, bool > m_mutedSounds
List< SoundInfo > m_queuedSounds
ValuesDictionary ValuesDictionary
static float DistanceSquared(Vector3 v1, Vector3 v2)
static readonly Vector3 Zero