Add files via upload

This commit is contained in:
MikeyIsBaeYT 2023-01-26 10:50:36 -05:00 committed by GitHub
parent 7164a48df0
commit a276679d6e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 2252 additions and 0 deletions

287
Audio/SoundEngine.cs Normal file
View file

@ -0,0 +1,287 @@
// Decompiled with JetBrains decompiler
// Type: Terraria.Audio.SoundEngine
// Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null
// MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83
// Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using ReLogic.Utilities;
using System;
using System.IO;
namespace Terraria.Audio
{
public static class SoundEngine
{
private static LegacySoundPlayer _legacyPlayer;
private static SoundPlayer _player;
private static bool _areSoundsPaused;
public static bool IsAudioSupported { get; private set; }
public static void Initialize() => SoundEngine.IsAudioSupported = SoundEngine.TestAudioSupport();
public static void Load(IServiceProvider services)
{
if (!SoundEngine.IsAudioSupported)
return;
SoundEngine._legacyPlayer = new LegacySoundPlayer(services);
SoundEngine._player = new SoundPlayer();
}
public static void Update()
{
if (!SoundEngine.IsAudioSupported)
return;
SoundInstanceGarbageCollector.Update();
bool flag = (!Main.hasFocus || Main.gamePaused) && Main.netMode == 0;
if (!SoundEngine._areSoundsPaused & flag)
SoundEngine._player.PauseAll();
else if (SoundEngine._areSoundsPaused && !flag)
SoundEngine._player.ResumeAll();
SoundEngine._areSoundsPaused = flag;
SoundEngine._player.Update();
}
public static void PlaySound(int type, Vector2 position, int style = 1) => SoundEngine.PlaySound(type, (int) position.X, (int) position.Y, style);
public static SoundEffectInstance PlaySound(
LegacySoundStyle type,
Vector2 position)
{
return SoundEngine.PlaySound(type, (int) position.X, (int) position.Y);
}
public static SoundEffectInstance PlaySound(
LegacySoundStyle type,
int x = -1,
int y = -1)
{
return type == null ? (SoundEffectInstance) null : SoundEngine.PlaySound(type.SoundId, x, y, type.Style, type.Volume, type.GetRandomPitch());
}
public static SoundEffectInstance PlaySound(
int type,
int x = -1,
int y = -1,
int Style = 1,
float volumeScale = 1f,
float pitchOffset = 0.0f)
{
return !SoundEngine.IsAudioSupported ? (SoundEffectInstance) null : SoundEngine._legacyPlayer.PlaySound(type, x, y, Style, volumeScale, pitchOffset);
}
public static ActiveSound GetActiveSound(SlotId id) => !SoundEngine.IsAudioSupported ? (ActiveSound) null : SoundEngine._player.GetActiveSound(id);
public static SlotId PlayTrackedSound(SoundStyle style, Vector2 position) => !SoundEngine.IsAudioSupported ? (SlotId) SlotId.Invalid : SoundEngine._player.Play(style, position);
public static SlotId PlayTrackedSound(SoundStyle style) => !SoundEngine.IsAudioSupported ? (SlotId) SlotId.Invalid : SoundEngine._player.Play(style);
public static void StopTrackedSounds()
{
if (!SoundEngine.IsAudioSupported)
return;
SoundEngine._player.StopAll();
}
public static SoundEffect GetTrackableSoundByStyleId(int id) => !SoundEngine.IsAudioSupported ? (SoundEffect) null : SoundEngine._legacyPlayer.GetTrackableSoundByStyleId(id);
public static void StopAmbientSounds()
{
if (!SoundEngine.IsAudioSupported || SoundEngine._legacyPlayer == null)
return;
SoundEngine._legacyPlayer.StopAmbientSounds();
}
public static ActiveSound FindActiveSound(SoundStyle style) => !SoundEngine.IsAudioSupported ? (ActiveSound) null : SoundEngine._player.FindActiveSound(style);
private static bool TestAudioSupport()
{
byte[] buffer = new byte[166]
{
(byte) 82,
(byte) 73,
(byte) 70,
(byte) 70,
(byte) 158,
(byte) 0,
(byte) 0,
(byte) 0,
(byte) 87,
(byte) 65,
(byte) 86,
(byte) 69,
(byte) 102,
(byte) 109,
(byte) 116,
(byte) 32,
(byte) 16,
(byte) 0,
(byte) 0,
(byte) 0,
(byte) 1,
(byte) 0,
(byte) 1,
(byte) 0,
(byte) 68,
(byte) 172,
(byte) 0,
(byte) 0,
(byte) 136,
(byte) 88,
(byte) 1,
(byte) 0,
(byte) 2,
(byte) 0,
(byte) 16,
(byte) 0,
(byte) 76,
(byte) 73,
(byte) 83,
(byte) 84,
(byte) 26,
(byte) 0,
(byte) 0,
(byte) 0,
(byte) 73,
(byte) 78,
(byte) 70,
(byte) 79,
(byte) 73,
(byte) 83,
(byte) 70,
(byte) 84,
(byte) 14,
(byte) 0,
(byte) 0,
(byte) 0,
(byte) 76,
(byte) 97,
(byte) 118,
(byte) 102,
(byte) 53,
(byte) 54,
(byte) 46,
(byte) 52,
(byte) 48,
(byte) 46,
(byte) 49,
(byte) 48,
(byte) 49,
(byte) 0,
(byte) 100,
(byte) 97,
(byte) 116,
(byte) 97,
(byte) 88,
(byte) 0,
(byte) 0,
(byte) 0,
(byte) 0,
(byte) 0,
(byte) 126,
(byte) 4,
(byte) 240,
(byte) 8,
(byte) 64,
(byte) 13,
(byte) 95,
(byte) 17,
(byte) 67,
(byte) 21,
(byte) 217,
(byte) 24,
(byte) 23,
(byte) 28,
(byte) 240,
(byte) 30,
(byte) 94,
(byte) 33,
(byte) 84,
(byte) 35,
(byte) 208,
(byte) 36,
(byte) 204,
(byte) 37,
(byte) 71,
(byte) 38,
(byte) 64,
(byte) 38,
(byte) 183,
(byte) 37,
(byte) 180,
(byte) 36,
(byte) 58,
(byte) 35,
(byte) 79,
(byte) 33,
(byte) 1,
(byte) 31,
(byte) 86,
(byte) 28,
(byte) 92,
(byte) 25,
(byte) 37,
(byte) 22,
(byte) 185,
(byte) 18,
(byte) 42,
(byte) 15,
(byte) 134,
(byte) 11,
(byte) 222,
(byte) 7,
(byte) 68,
(byte) 4,
(byte) 196,
(byte) 0,
(byte) 112,
(byte) 253,
(byte) 86,
(byte) 250,
(byte) 132,
(byte) 247,
(byte) 6,
(byte) 245,
(byte) 230,
(byte) 242,
(byte) 47,
(byte) 241,
(byte) 232,
(byte) 239,
(byte) 25,
(byte) 239,
(byte) 194,
(byte) 238,
(byte) 231,
(byte) 238,
(byte) 139,
(byte) 239,
(byte) 169,
(byte) 240,
(byte) 61,
(byte) 242,
(byte) 67,
(byte) 244,
(byte) 180,
(byte) 246
};
try
{
using (MemoryStream memoryStream = new MemoryStream(buffer))
SoundEffect.FromStream((Stream) memoryStream);
}
catch (NoAudioHardwareException ex)
{
Console.WriteLine("No audio hardware found. Disabling all audio.");
return false;
}
catch
{
return false;
}
return true;
}
}
}