mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-01-17 10:14:14 +00:00
51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using HarmonyLib;
|
|
using QSB.Patches;
|
|
using UnityEngine;
|
|
|
|
namespace QSB.Player.Patches;
|
|
|
|
internal class VolumePatches : QSBPatch
|
|
{
|
|
public override QSBPatchTypes Type => QSBPatchTypes.OnClientConnect;
|
|
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch(typeof(FluidVolume), nameof(FluidVolume.OnEffectVolumeEnter))]
|
|
public static void OnEffectVolumeEnter(FluidVolume __instance, GameObject hitObj)
|
|
{
|
|
var comp = hitObj.GetComponent<RemotePlayerFluidDetector>();
|
|
if (comp != null)
|
|
{
|
|
comp.AddVolume(__instance);
|
|
}
|
|
}
|
|
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch(typeof(FluidVolume), nameof(FluidVolume.OnEffectVolumeExit))]
|
|
public static void OnEffectVolumeExit(FluidVolume __instance, GameObject hitObj)
|
|
{
|
|
var comp = hitObj.GetComponent<RemotePlayerFluidDetector>();
|
|
if (comp != null)
|
|
{
|
|
comp.RemoveVolume(__instance);
|
|
}
|
|
}
|
|
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch(typeof(RingRiverFluidVolume), nameof(RingRiverFluidVolume.OnEffectVolumeEnter))]
|
|
public static void OnEffectVolumeEnter(RingRiverFluidVolume __instance, GameObject hitObj)
|
|
{
|
|
var comp = hitObj.GetComponent<RemotePlayerFluidDetector>();
|
|
if (comp != null)
|
|
{
|
|
comp.AddVolume(__instance);
|
|
}
|
|
}
|
|
|
|
[HarmonyPrefix]
|
|
[HarmonyPatch(typeof(ElectricityVolume), nameof(ElectricityVolume.OnEffectVolumeEnter))]
|
|
public static bool OnEffectVolumeEnter(ElectricityVolume __instance, GameObject hitObj) =>
|
|
// this is a dogshit fix to a bug where this would ApplyShock to remote players,
|
|
// which would actually apply the shock affects to the entire planet / sector
|
|
hitObj.name != "REMOTE_PlayerDetector";
|
|
}
|