using HarmonyLib; using MIU; using System; using System.Collections.Generic; namespace CustomCosmeticLoader.Patches { [HarmonyPatch(typeof(GhostRaceMarbleController), nameof(GhostRaceMarbleController.ApplyCosmetics))] internal class GhostRaceMarbleControllerApplyCosmeticsPatch { static void Postfix(GhostRaceMarbleController __instance) { if (!Config.enabled) return; string replayName = null; GamePlayManager.Get().GetCurrentReplays(delegate (List replays) { if (replays.Count > 0) replayName = replays[0].Player; }); Shared.Log("GhostRaceMarbleControllerApplyCosmeticsPatch Replay name: " + replayName); if (Config.otherPlayers.ContainsKey(replayName) || replayName == Player.Current.Name) { MarbleHolder mHolder = __instance.GetComponentInChildren(); if (Config.skinNameToHijack != "*") mHolder.SetMarble(Shared.SkinToHijack); Shared.ApplyCustomTexture(mHolder.currentMarble, Config.skins[Config.otherPlayers[replayName]]); } } } }