using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("OutwardModTemplate")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("OutwardModTemplate")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("c5450fe0-edcf-483f-b9ea-4b1ef9d36da7")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace ProControllerGlyphs;
[BepInPlugin("technicalslayer.procontrollerglyphs", "Pro Controller Glyphs", "0.0.1")]
public class Plugin : BaseUnityPlugin
{
[HarmonyPatch(typeof(ResourcesPrefabManager), "Load")]
public class ResourcesPrefabManager_Load
{
private static void Postfix()
{
}
}
[HarmonyPatch(typeof(SplitScreenManager), "Awake")]
public class SplitScreenManager_Awake
{
[HarmonyPostfix]
public static void Postfix(SplitScreenManager __instance)
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Expected O, but got Unknown
Object.DontDestroyOnLoad((Object)__instance.m_charUIPrefab);
SetupQuickslotPanels(__instance.m_charUIPrefab);
}
}
[HarmonyPatch(typeof(QuickSlotDisplay), "RefreshInput")]
public class QuickslotDisplay_RefreshInput
{
[HarmonyPostfix]
public static void Postfix(QuickSlotDisplay __instance)
{
//IL_0073: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
//IL_0084: Unknown result type (might be due to invalid IL or missing references)
//IL_008a: Unknown result type (might be due to invalid IL or missing references)
CharacterUI characterUI = ((UIElement)__instance).m_characterUI;
int num = 0;
num = __instance.RefSlotID switch
{
0 => 2,
1 => 1,
2 => 4,
3 => 3,
4 => 6,
5 => 5,
6 => 8,
7 => 7,
_ => 0,
};
GlyphData firstElementMapWithQuickSlot = ControlsInput.GetFirstElementMapWithQuickSlot(((UIElement)__instance).m_characterUI.RewiredID, (QuickSlotIDs)num, __instance.m_gamepadMode);
__instance.m_inputIcon.overrideSprite = UIUtilities.Controller.GetGlyph(firstElementMapWithQuickSlot.controllerGUI, firstElementMapWithQuickSlot.aem, (string)null);
Log.LogMessage((object)("Quick Slot Ref ID: " + __instance.RefSlotID + ", and Name: " + ((Object)__instance).name));
}
}
[HarmonyPatch(typeof(ControlsInput), "QuickSlot1")]
public class ControlsInput_QuickSlot1
{
[HarmonyPostfix]
public static void Postfix(ref bool __result, ControlsInput __instance, ref int _playerID)
{
__result = ControlsInput.m_playerInputManager[_playerID].GetButtonDown("QuickSlot2");
}
}
[HarmonyPatch(typeof(ControlsInput), "QuickSlot2")]
public class ControlsInput_QuickSlot2
{
[HarmonyPostfix]
public static void Postfix(ref bool __result, ControlsInput __instance, ref int _playerID)
{
__result = ControlsInput.m_playerInputManager[_playerID].GetButtonDown("QuickSlot1");
}
}
[HarmonyPatch(typeof(ControlsInput), "QuickSlot3")]
public class ControlsInput_QuickSlot3
{
[HarmonyPostfix]
public static void Postfix(ref bool __result, ControlsInput __instance, ref int _playerID)
{
__result = ControlsInput.m_playerInputManager[_playerID].GetButtonDown("QuickSlot4");
}
}
[HarmonyPatch(typeof(ControlsInput), "QuickSlot4")]
public class ControlsInput_QuickSlot4
{
[HarmonyPostfix]
public static void Postfix(ref bool __result, ControlsInput __instance, ref int _playerID)
{
__result = ControlsInput.m_playerInputManager[_playerID].GetButtonDown("QuickSlot3");
}
}
public const string GUID = "technicalslayer.procontrollerglyphs";
public const string NAME = "Pro Controller Glyphs";
public const string VERSION = "0.0.1";
internal static ManualLogSource Log;
public static ConfigEntry<bool> ExampleConfig;
internal void Awake()
{
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
Log = ((BaseUnityPlugin)this).Logger;
Log.LogMessage((object)"Hello world from Pro Controller Glyphs 0.0.1!");
ExampleConfig = ((BaseUnityPlugin)this).Config.Bind<bool>("ExampleCategory", "ExampleSetting", false, "This is an example setting.");
new Harmony("technicalslayer.procontrollerglyphs").PatchAll();
}
internal void Update()
{
}
private static Transform GetMenuPanelsHolder(CharacterUI ui)
{
return ((Component)ui).transform.Find("Canvas/GameplayPanels/Menus/CharacterMenus/MainPanel/Content/MiddlePanel/QuickSlotPanel/PanelSwitcher/Controller/LT-RT");
}
private static Transform GetGameQuickSlotsRT(CharacterUI ui)
{
return ((Component)ui).transform.Find("Canvas/GameplayPanels/HUD/QuickSlot/Controller/LT-RT/RT/QuickSlots");
}
private static Transform GetGameQuickSlotsLT(CharacterUI ui)
{
return ((Component)ui).transform.Find("Canvas/GameplayPanels/HUD/QuickSlot/Controller/LT-RT/LT/QuickSlots");
}
private static void SetupQuickslotPanels(CharacterUI ui)
{
Transform menuPanelsHolder = GetMenuPanelsHolder(ui);
Transform gameQuickSlotsRT = GetGameQuickSlotsRT(ui);
Transform gameQuickSlotsLT = GetGameQuickSlotsLT(ui);
string text = "Slot_A/QuickSlotDisplay(Clone)/Panel/Input/imgInput";
string text2 = "Slot_B/QuickSlotDisplay(Clone)/Panel/Input/imgInput";
string text3 = "Slot_X/QuickSlotDisplay(Clone)/Panel/Input/imgInput";
string text4 = "Slot_Y/QuickSlotDisplay(Clone)/Panel/Input/imgInput";
((Component)gameQuickSlotsLT.Find(text)).gameObject.SetActive(false);
((Component)gameQuickSlotsLT.Find(text2)).gameObject.SetActive(false);
((Component)gameQuickSlotsLT.Find(text3)).gameObject.SetActive(false);
((Component)gameQuickSlotsLT.Find(text4)).gameObject.SetActive(false);
((Component)menuPanelsHolder.Find("LeftDecoration")).gameObject.SetActive(false);
((Component)menuPanelsHolder.Find("RightDecoration")).gameObject.SetActive(false);
}
}