new-horizons/NewHorizons/Patches/ProxyBodyPatches.cs
2022-05-14 18:33:34 -04:00

57 lines
2.1 KiB
C#

using HarmonyLib;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NewHorizons.Patches
{
[HarmonyPatch]
public static class ProxyBodyPatches
{
[HarmonyPrefix]
[HarmonyPatch(typeof(ProxyBody), nameof(ProxyBody.Awake))]
public static void ProxyBody_Awake(ProxyBody __instance)
{
// Mobius rly used the wrong event name
GlobalMessenger.AddListener("EnterMapView", __instance.OnEnterMapView);
GlobalMessenger.AddListener("ExitMapView", __instance.OnExitMapView);
}
[HarmonyPrefix]
[HarmonyPatch(typeof(ProxyBody), nameof(ProxyBody.OnDestroy))]
public static void ProxyBody_OnDestroy(ProxyBody __instance)
{
GlobalMessenger.RemoveListener("EnterMapView", __instance.OnEnterMapView);
GlobalMessenger.RemoveListener("ExitMapView", __instance.OnExitMapView);
}
[HarmonyPrefix]
[HarmonyPatch(typeof(ProxyBody), nameof(ProxyBody.OnEnterMapView))]
public static void ProxyBody_OnEnterMapView(ProxyBody __instance)
{
// Set this to false before the method sets the rendering to false so it matches
__instance._outOfRange = false;
}
// Mobius why doesn't ProxyOrbiter inherit from ProxyBody
[HarmonyPrefix]
[HarmonyPatch(typeof(ProxyOrbiter), nameof(ProxyOrbiter.Awake))]
public static void ProxyOrbiter_Awake(ProxyOrbiter __instance)
{
// Mobius rly used the wrong event name
GlobalMessenger.AddListener("EnterMapView", __instance.OnEnterMapView);
GlobalMessenger.AddListener("ExitMapView", __instance.OnExitMapView);
}
[HarmonyPrefix]
[HarmonyPatch(typeof(ProxyOrbiter), nameof(ProxyOrbiter.OnDestroy))]
public static void ProxyOrbiter_OnDestroy(ProxyOrbiter __instance)
{
GlobalMessenger.RemoveListener("EnterMapView", __instance.OnEnterMapView);
GlobalMessenger.RemoveListener("ExitMapView", __instance.OnExitMapView);
}
}
}