SRMP-Public/SRMP/Patches/Patch_SECTR_CharacterAudio.cs
2023-05-29 22:23:11 +02:00

62 lines
1.9 KiB
C#

using HarmonyLib;
using SRMultiplayer.Packets;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
namespace SRMultiplayer.Patches
{
[HarmonyPatch(typeof(SECTR_CharacterAudio))]
[HarmonyPatch("OnFootstep")]
class SECTR_CharacterAudio_OnFootstep
{
static void Postfix(SECTR_CharacterAudio __instance, PhysicMaterial currentMaterial)
{
if (!Globals.IsMultiplayer) return;
new PacketPlayAudio()
{
CueName = __instance._GetCurrentSurface(currentMaterial).FootstepCue.name,
Position = __instance.transform.position,
Loop = false
}.Send(Lidgren.Network.NetDeliveryMethod.Unreliable);
}
}
[HarmonyPatch(typeof(SECTR_CharacterAudio))]
[HarmonyPatch("OnJump")]
class SECTR_CharacterAudio_OnJump
{
static void Postfix(SECTR_CharacterAudio __instance, PhysicMaterial currentMaterial)
{
if (!Globals.IsMultiplayer) return;
new PacketPlayAudio()
{
CueName = __instance._GetCurrentSurface(currentMaterial).JumpCue.name,
Position = __instance.transform.position,
Loop = false
}.Send(Lidgren.Network.NetDeliveryMethod.Unreliable);
}
}
[HarmonyPatch(typeof(SECTR_CharacterAudio))]
[HarmonyPatch("OnLand")]
class SECTR_CharacterAudio_OnLand
{
static void Postfix(SECTR_CharacterAudio __instance, PhysicMaterial currentMaterial)
{
if (!Globals.IsMultiplayer) return;
new PacketPlayAudio()
{
CueName = __instance._GetCurrentSurface(currentMaterial).LandCue.name,
Position = __instance.transform.position,
Loop = false
}.Send(Lidgren.Network.NetDeliveryMethod.Unreliable);
}
}
}