SRMP-Public/SRMP/Patches/Patch_PauseMenu.cs

55 lines
No EOL
1.4 KiB
C#

using HarmonyLib;
using SRMultiplayer.Networking;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
namespace SRMultiplayer.Patches
{
[HarmonyPatch(typeof(PauseMenu))]
[HarmonyPatch("Quit")]
class PauseMenu_Quit
{
static void Postfix()
{
if (!Globals.IsMultiplayer) return;
//only handle the client if the client is the one disconnecting
NetworkClient.Instance.Disconnect();
//if server ahndle the shutdown
NetworkServer.Instance.Disconnect();
}
}
[HarmonyPatch(typeof(PauseMenu))]
[HarmonyPatch("PauseGame")]
class PauseMenu_PauseGame
{
static void Prefix(PauseMenu __instance)
{
var hostMenu = __instance.GetComponentInChildren<NetworkHostUI>(true);
if (hostMenu != null)
{
hostMenu.gameObject.SetActive(true);
hostMenu.SetOnlineStatus(Globals.IsServer);
}
}
}
[HarmonyPatch(typeof(PauseMenu))]
[HarmonyPatch("UnPauseGame")]
class PauseMenu_UnPauseGame
{
static void Prefix(PauseMenu __instance)
{
var hostMenu = __instance.GetComponentInChildren<NetworkHostUI>(true);
if (hostMenu != null)
{
hostMenu.gameObject.SetActive(false);
}
}
}
}