Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of TurboEditionX v0.0.1
plugins/TurboEditionX.dll
Decompiled 2 years agousing System; using System.Collections; 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.Bootstrap; using BepInEx.Logging; using EmotesAPI; using HG.Reflection; using RoR2.ContentManagement; using TurboEdition; using TurboEditionX.Modules; using TurboEditionZ; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("Turbo Edition X")] [assembly: AssemblyDescription("Turbo Edition Xtra Mod X-Compat")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Turbo Edition X")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: AssemblyFileVersion("0.0.1")] [assembly: OptIn] [assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.1.0")] [module: UnverifiableCode] namespace TurboEditionZ { public class TEXLog { public static ManualLogSource logger; public static bool outputAlways; public TEXLog(ManualLogSource logger_) { logger = logger_; } public static void LogD(object data, bool alwaysLog = false, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { if (logger != null && (outputAlways || alwaysLog)) { logger.LogDebug((object)logString(data, i, member)); } } public static void LogE(object data, bool alwaysLog = false, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { if (logger != null && (outputAlways || alwaysLog)) { logger.LogError((object)logString(data, i, member)); } } public static void LogF(object data, bool alwaysLog = false, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { if (logger != null && (outputAlways || alwaysLog)) { logger.LogFatal((object)logString(data, i, member)); } } public static void LogI(object data, bool alwaysLog = false, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { if (logger != null && (outputAlways || alwaysLog)) { logger.LogInfo((object)logString(data, i, member)); } } public static void LogM(object data, bool alwaysLog = false, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { if (logger != null && (outputAlways || alwaysLog)) { logger.LogMessage((object)logString(data, i, member)); } } public static void LogW(object data, bool alwaysLog = false, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { if (logger != null && (outputAlways || alwaysLog)) { logger.LogWarning((object)logString(data, i, member)); } } private static string logString(object data, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { return $"{data} :: Line: {i}, Method {member}"; } } } namespace TurboEditionX { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.Anreol.TurboEditionX", "TurboEditionX", "0.0.1")] public class TurboEditionXUnityPlugin : BaseUnityPlugin { internal const string ModVer = "0.0.1"; internal const string ModIdentifier = "TurboEditionX"; internal const string ModGuid = "com.Anreol.TurboEditionX"; public static TurboEditionXUnityPlugin instance; public static PluginInfo pluginInfo; public void Awake() { pluginInfo = ((BaseUnityPlugin)this).Info; new TEXLog(((BaseUnityPlugin)this).Logger); TEXLog.outputAlways = true; if (!Chainloader.PluginInfos.ContainsKey("com.Anreol.TurboEdition")) { Object.Destroy((Object)(object)this); } if (Chainloader.PluginInfos.ContainsKey("com.weliveinasociety.CustomEmotesAPI")) { EmoteSupport.Enable(); } Chainloader.PluginInfos.ContainsKey("com.DestroyedClone.AncientScepter"); } } } namespace TurboEditionX.Modules { public static class EmoteSupport { public static void Enable() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown Version version = new Version("2.2.4"); if (((BaseUnityPlugin)CustomEmotesAPI.instance).Info.Metadata.Version < version) { TEXLog.LogW($"Using a CustomEmotesAPI version lower than what TurboEditionX was made for! Issues might arise.\nExpected version: CustomEmotesAPI {version} or higher.", alwaysLog: false, 17, "Enable"); } TEContent.onFinalizeAsync = (FinalizeAsyncDelegate)Delegate.Combine((Delegate?)(object)TEContent.onFinalizeAsync, (Delegate?)new FinalizeAsyncDelegate(SetupSkeletons)); } private static IEnumerator SetupSkeletons(FinalizeAsyncArgs args) { TEXLog.LogW("Importing Grenadier's humanoid skeleton to CustomEmotesAPI...", alwaysLog: false, 24, "SetupSkeletons"); GameObject val = Assets.mainAssetBundle.LoadAsset<GameObject>("GrenadierHumanoidSkeleton"); if ((Object)(object)val == (Object)null) { TEXLog.LogE("Couldn't load Grenadier's humanoid skeleton. What went wrong?!", alwaysLog: false, 28, "SetupSkeletons"); } else { CustomEmotesAPI.ImportArmature(Survivors.Grenadier.bodyPrefab, val, 0, true); CustomEmotesAPI.CreateNameTokenSpritePair(Survivors.Grenadier.displayNameToken, Assets.mainAssetBundle.LoadAsset<Sprite>("texGrenadierUnlockIcon")); CustomEmotesAPI.animChanged += new AnimationChanged(GrenadierAnimChanged); } yield return null; } private static void GrenadierAnimChanged(string newAnimation, BoneMapper mapper) { if (((Object)((Component)mapper).transform).name == "GrenadierHumanoidSkeleton") { ChildLocator component = ((Component)((Component)mapper).transform.parent).GetComponent<ChildLocator>(); if (newAnimation != "none") { ((Component)component.FindChild("DemoGrenadeLauncherGrip")).gameObject.SetActive(false); ((Component)component.FindChild("DemoGrenadeLauncherCylinder")).gameObject.SetActive(false); } else { ((Component)component.FindChild("DemoGrenadeLauncherGrip")).gameObject.SetActive(true); ((Component)component.FindChild("DemoGrenadeLauncherCylinder")).gameObject.SetActive(true); } } } } }