Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Update()

void Terraria.Audio.ActiveSound.Update ( )
inline

Definition at line 104 of file ActiveSound.cs.

105 {
106 if (Sound == null)
107 {
108 return;
109 }
110 if (Condition != null && !Condition())
111 {
112 Sound.Stop(immediate: true);
113 return;
114 }
115 Vector2 value = Main.screenPosition + new Vector2(Main.screenWidth / 2, Main.screenHeight / 2);
116 float num = 1f;
117 if (!IsGlobal)
118 {
119 float value2 = (Position.X - value.X) / ((float)Main.screenWidth * 0.5f);
120 value2 = MathHelper.Clamp(value2, -1f, 1f);
121 Sound.Pan = value2;
122 float num2 = Vector2.Distance(Position, value);
123 num = 1f - num2 / ((float)Main.screenWidth * 1.5f);
124 }
125 num *= Style.Volume * Volume;
126 switch (Style.Type)
127 {
128 case SoundType.Sound:
129 num *= Main.soundVolume;
130 break;
131 case SoundType.Ambient:
132 num *= Main.ambientVolume;
133 break;
134 case SoundType.Music:
135 num *= Main.musicVolume;
136 break;
137 }
138 num = MathHelper.Clamp(num, 0f, 1f);
139 Sound.Volume = num;
140 Sound.Pitch = Pitch;
141 }
static float Clamp(float value, float min, float max)
Definition MathHelper.cs:46
SoundEffectInstance Sound
LoopedPlayCondition Condition
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91

References Terraria.Main.ambientVolume, Microsoft.Xna.Framework.MathHelper.Clamp(), Terraria.Audio.ActiveSound.Condition, Microsoft.Xna.Framework.Vector2.Distance(), Terraria.Audio.ActiveSound.IsGlobal, Terraria.Main.musicVolume, Terraria.Audio.ActiveSound.Pitch, Terraria.Main.screenHeight, Terraria.Main.screenWidth, Terraria.Audio.ActiveSound.Sound, Terraria.Main.soundVolume, Terraria.Audio.ActiveSound.Style, Terraria.Audio.SoundStyle.Type, and Terraria.Audio.ActiveSound.Volume.

Referenced by Terraria.Audio.ActiveSound.Play(), and Terraria.Audio.ActiveSound.PlayLooped().