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; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("DspFontPatcher")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("DspFontPatcher")] [assembly: AssemblyCopyright("Copyright © 2021")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("81DF3045-8007-4F6A-AAF6-903139D85B6C")] [assembly: AssemblyFileVersion("0.1.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.1.0.0")] [module: UnverifiableCode] namespace DSPAutoSorter; [BepInPlugin("Appun.DSP.plugin.AutoSorter", "DSPAutoSorter", "1.2.12")] [HarmonyPatch] public class DSPAutoSorter : BaseUnityPlugin { public static DSPAutoSorter self; private static ConfigEntry enableForcedSort; private static ConfigEntry enableSortInInventry; private static ConfigEntry enableSortInStorage; private static ConfigEntry enableSortInFuelChamber; private static ConfigEntry enableSortInHanger; private static ConfigEntry enableSortInMiner; private static ConfigEntry enableSortInAssembler; private static ConfigEntry enableSortInBattleBase; public static Sprite settingIconSprite; public static Sprite squareIconSprite; public void Start() { //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) LogManager.Logger = ((BaseUnityPlugin)this).Logger; Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), (string)null); enableSortInInventry = ((BaseUnityPlugin)this).Config.Bind("General", "enableSortInInventry", true, "enable sort in normal inventry."); enableSortInStorage = ((BaseUnityPlugin)this).Config.Bind("General", "enableSortInStorage", true, "enable sort in storages."); enableSortInFuelChamber = ((BaseUnityPlugin)this).Config.Bind("General", "enableSortInFuelChamber", true, "enable sort in Mecha fuelchamber."); enableSortInHanger = ((BaseUnityPlugin)this).Config.Bind("General", "enableSortInHanger", true, "enable sort in Mecha Hanger."); enableSortInMiner = ((BaseUnityPlugin)this).Config.Bind("General", "enableSortInMiner", true, "enable sort in inventry of miner."); enableSortInAssembler = ((BaseUnityPlugin)this).Config.Bind("General", "enableSortInAssembler", true, "enable sort in inventry of Assemblers or smelter."); enableSortInBattleBase = ((BaseUnityPlugin)this).Config.Bind("General", "enableSortInBattleBase", true, "enable sort in inventry of Battlefield Analysis Base."); enableForcedSort = ((BaseUnityPlugin)this).Config.Bind("ForcedSort", "enableForcedSort", true, "enable forced sort."); if (enableSortInStorage.Value) { GameObject gameObject = GameObject.Find("UI Root/Overlay Canvas/In Game/Windows/Storage Window/panel-bg/btn-box").gameObject; ((Graphic)gameObject.GetComponent()).color = new Color(1f, 0.7f, 0f, 1f); } if (enableSortInBattleBase.Value) { GameObject gameObject2 = GameObject.Find("UI Root/Overlay Canvas/In Game/Windows/Battle Base Window/panel-bg/btn-box").gameObject; ((Graphic)gameObject2.GetComponent()).color = new Color(1f, 0.7f, 0f, 1f); } } [HarmonyPrefix] [HarmonyPatch(typeof(UIStorageGrid), "OnSort")] public static bool UIStorageGrid_Sort_Prefix(UIStorageGrid __instance) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) if (((int)__instance.storage.type == 0 || __instance.sortableFilter) && ((Object)((Component)((Component)__instance).transform.parent).gameObject).name == "Player Inventory") { GameObject gameObject = ((Component)((Component)__instance).transform.parent.Find("panel-bg/btn-box")).gameObject; if (enableSortInInventry.Value) { enableSortInInventry.Value = false; ((Graphic)gameObject.GetComponent()).color = new Color(0f, 0.174f, 0.216f, 1f); } else { __instance.storage.Sort(true); enableSortInInventry.Value = true; ((Graphic)gameObject.GetComponent()).color = new Color(1f, 0.7f, 0f, 1f); } return false; } return true; } [HarmonyPrefix] [HarmonyPatch(typeof(UIStorageWindow), "OnSortClick")] public static bool UIStorageWindow_OnSortClick_Prefix(UIStorageWindow __instance) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) if ((int)__instance.storageUI.storage.type == 0 || __instance.storageUI.sortableFilter) { GameObject gameObject = ((Component)((Component)__instance).transform.Find("panel-bg/btn-box")).gameObject; if (enableSortInStorage.Value) { enableSortInStorage.Value = false; ((Graphic)gameObject.GetComponent()).color = new Color(0f, 0.174f, 0.216f, 1f); } else { __instance.storageUI.storage.Sort(true); enableSortInStorage.Value = true; ((Graphic)gameObject.GetComponent()).color = new Color(1f, 0.7f, 0f, 1f); } } return false; } [HarmonyPrefix] [HarmonyPatch(typeof(UIBattleBaseWindow), "OnSortClick")] public static bool UIBattleBaseWindow_OnSortClick_Prefix(UIBattleBaseWindow __instance) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) if ((int)__instance.storage.type == 0 || __instance.storageGrid.sortableFilter) { GameObject gameObject = ((Component)((Component)__instance).transform.Find("panel-bg/btn-box")).gameObject; if (enableSortInBattleBase.Value) { enableSortInBattleBase.Value = false; ((Graphic)gameObject.GetComponent()).color = new Color(0f, 0.174f, 0.216f, 1f); } else { __instance.storage.Sort(true); enableSortInBattleBase.Value = true; ((Graphic)gameObject.GetComponent()).color = new Color(1f, 0.7f, 0f, 1f); } } return false; } [HarmonyPrefix] [HarmonyPatch(typeof(UIStorageGrid), "OnStorageContentChanged")] public static void UIStorageGrid_OnStorageContentChanged_Prefix(UIStorageGrid __instance) { if (__instance.storage != null && enableForcedSort.Value && __instance.storage.changed) { GameObject gameObject = ((Component)((Component)__instance).transform.parent).gameObject; if (enableSortInInventry.Value && ((Object)gameObject).name == "Player Inventory") { __instance.storage.Sort(true); } else if (enableSortInFuelChamber.Value && ((Object)gameObject).name == "fuel-group") { __instance.storage.Sort(true); } else if (enableSortInHanger.Value && ((Object)gameObject).name == "fighter-storage") { __instance.storage.Sort(true); } else if (enableSortInStorage.Value && ((Object)gameObject).name == "Storage Window") { __instance.storage.Sort(true); } else if (enableSortInMiner.Value && enableSortInInventry.Value && ((Object)gameObject).name == "Miner Window") { __instance.storage.Sort(true); } else if (enableSortInAssembler.Value && enableSortInInventry.Value && ((Object)gameObject).name == "Assembler Window") { __instance.storage.Sort(true); } else if (enableSortInBattleBase.Value && ((Object)gameObject).name == "storage-group") { __instance.storage.Sort(true); } } } [HarmonyPostfix] [HarmonyPatch(typeof(UIInventoryWindow), "_OnOpen")] public static void UIGame_OpenPlayerInventory_Postfix(UIInventoryWindow __instance) { //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) GameObject gameObject = ((Component)((Component)__instance).transform.Find("panel-bg/btn-box")).gameObject; if (enableSortInInventry.Value) { ((Graphic)gameObject.GetComponent()).color = new Color(1f, 0.7f, 0f, 1f); __instance.inventory.storage.Sort(true); } else { ((Graphic)gameObject.GetComponent()).color = new Color(0f, 0.174f, 0.216f, 1f); } } [HarmonyPostfix] [HarmonyPatch(typeof(UIMechaWindow), "_OnOpen")] public static void UIMechaWindow_OnOpen_Postfix(UIMechaWindow __instance) { GameObject gameObject = ((Component)((Component)__instance).transform.Find("panel-bg/btn-box")).gameObject; if (enableSortInFuelChamber.Value) { GameMain.mainPlayer.mecha.reactorStorage.Sort(true); } } [HarmonyPostfix] [HarmonyPatch(typeof(UIStorageWindow), "_OnOpen")] public static void UIStorageWindow_OnOpen_Postfix(UIStorageWindow __instance) { //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) GameObject gameObject = ((Component)((Component)__instance).transform.Find("panel-bg/btn-box")).gameObject; if (enableSortInStorage.Value) { ((Graphic)gameObject.GetComponent()).color = new Color(1f, 0.7f, 0f, 1f); __instance.storageUI.storage.Sort(true); } else { ((Graphic)gameObject.GetComponent()).color = new Color(0f, 0.174f, 0.216f, 1f); } } [HarmonyPostfix] [HarmonyPatch(typeof(UIMinerWindow), "_OnOpen")] public static void UIMinerWindow_OnOpen_Postfix(UIMinerWindow __instance) { if (enableSortInMiner.Value && enableSortInInventry.Value && ((ManualBehaviour)__instance.playerInventory).active) { AccessTools.FieldRefAccess(__instance.playerInventory, "storage").Sort(true); } } [HarmonyPostfix] [HarmonyPatch(typeof(UIAssemblerWindow), "_OnOpen")] public static void UIAssemblerWindow_OnOpen_Postfix(UIAssemblerWindow __instance) { if (enableSortInAssembler.Value && enableSortInInventry.Value && ((ManualBehaviour)__instance.playerInventory).active) { AccessTools.FieldRefAccess(__instance.playerInventory, "storage").Sort(true); } } [HarmonyPostfix] [HarmonyPatch(typeof(UIBattleBaseWindow), "_OnOpen")] public static void UIBattleBaseWindow_OnOpen_Postfix(UIBattleBaseWindow __instance) { //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) GameObject gameObject = ((Component)((Component)__instance).transform.Find("panel-bg/btn-box")).gameObject; if (enableSortInBattleBase.Value) { ((Graphic)gameObject.GetComponent()).color = new Color(1f, 0.7f, 0f, 1f); __instance.storage.Sort(true); } else { ((Graphic)gameObject.GetComponent()).color = new Color(0f, 0.174f, 0.216f, 1f); } } } public class LogManager { public static ManualLogSource Logger; }