miuu-custom-cosmetic-loader/Patches/MarbleControllerPatches.cs

30 lines
804 B
C#

using HarmonyLib;
using System;
using UnityEngine;
namespace CustomCosmeticLoader.Patches
{
[HarmonyPatch(typeof(MarbleController), nameof(MarbleController.ApplyMyCosmetics))]
internal class MarbleControllerApplyMyCosmeticsPatch
{
[HarmonyPostfix]
static void Postfix(MarbleController __instance)
{
if (!Config.enabled)
return;
if (Config.skinNameToHijack == "*")
return;
// Shouldn't happen I don't think but we do this elsewhere in mp
if (NetworkManager.IsMultiplayer)
return;
MarbleHolder mHolder = __instance.MHolder;
string actualSkinId = mHolder.CosmeticSet.skin;
mHolder.SetMarble(Shared.SkinToHijack);
// Setting the skin id here allows others in multiplayer/replays to see your normal skin
mHolder.CosmeticSet.skin = actualSkinId;
}
}
}