31 lines
1,017 B
C#
31 lines
1,017 B
C#
using HarmonyLib;
|
|
using System;
|
|
|
|
namespace CustomCosmeticLoader.Patches
|
|
{
|
|
/*
|
|
* This is called on the LevelSelect screen to show the "My Marble" widget in the top left corner. Hijack the cosmetic
|
|
* and apply the custom texture here too (if configured)
|
|
*/
|
|
[HarmonyPatch(typeof(MarbleWidget), nameof(MarbleWidget.SetCosmetic), new Type[] {})]
|
|
internal class MarbleWidgetSetCosmeticLevelSelectPatch
|
|
{
|
|
static bool Prefix(MarbleWidget __instance)
|
|
{
|
|
if (!Config.enabled)
|
|
return true;
|
|
|
|
if (!Config.inMainMenu)
|
|
return true;
|
|
|
|
Cosmetic skin = Config.skinNameToHijack == "*" ?
|
|
(CosmeticManager.MySkin == null ? CosmeticManager.Skins[0] : CosmeticManager.MySkin) :
|
|
Shared.SkinToHijack;
|
|
Cosmetic hat = CosmeticManager.MyHat == null ? CosmeticManager.Hats[0] : CosmeticManager.MyHat;
|
|
|
|
__instance.SetCosmetic(skin, hat);
|
|
Shared.ApplyCustomTexture(__instance.cosmeticDisplay.gameObject);
|
|
return false; // Skip original method, since we do everything it was supposed to
|
|
}
|
|
}
|
|
}
|