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 Creative Critters Emotes v2.1.0
BepInEx/plugins/Creative Critters Emotes/creativeCrittersEmotes.dll
Decompiled 2 years agousing System; using System.Collections.Generic; using System.Diagnostics; using System.IO; 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 CustomEmotesAPI_Template_Mod; using EmotesAPI; using LethalEmotesAPI.ImportV2; using Lethal_Company_CustomEmotesAPI_Template_Mod; 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("Lethal Company CustomEmotesAPI Template Mod")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Lethal Company CustomEmotesAPI Template Mod")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("199912ba-43b6-4276-b420-7bfaa3eedbe5")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = "")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Lethal_Company_CustomEmotesAPI_Template_Mod { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.creativecritters.emotes", "creativeCrittersEmotes", "1.0.0")] public class ExampleEmoteMod : BaseUnityPlugin { public const string PluginGUID = "com.creativecritters.emotes"; public const string PluginName = "creativeCrittersEmotes"; public const string PluginVersion = "1.0.0"; public static ExampleEmoteMod instance; public static PluginInfo PInfo { get; private set; } public void Awake() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Expected O, but got Unknown //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Expected O, but got Unknown //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Expected O, but got Unknown //IL_02ff: Unknown result type (might be due to invalid IL or missing references) //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Expected O, but got Unknown //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Expected O, but got Unknown //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04f2: Unknown result type (might be due to invalid IL or missing references) //IL_04f8: Expected O, but got Unknown //IL_0584: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Unknown result type (might be due to invalid IL or missing references) //IL_05cf: Expected O, but got Unknown //IL_065b: Unknown result type (might be due to invalid IL or missing references) //IL_06a0: Unknown result type (might be due to invalid IL or missing references) //IL_06a6: Expected O, but got Unknown //IL_0732: Unknown result type (might be due to invalid IL or missing references) //IL_0784: Unknown result type (might be due to invalid IL or missing references) //IL_078a: Expected O, but got Unknown //IL_0804: Unknown result type (might be due to invalid IL or missing references) //IL_0856: Unknown result type (might be due to invalid IL or missing references) //IL_085c: Expected O, but got Unknown //IL_08fa: Unknown result type (might be due to invalid IL or missing references) //IL_093f: Unknown result type (might be due to invalid IL or missing references) //IL_0945: Expected O, but got Unknown //IL_09e3: Unknown result type (might be due to invalid IL or missing references) //IL_0a28: Unknown result type (might be due to invalid IL or missing references) //IL_0a2e: Expected O, but got Unknown //IL_0aba: Unknown result type (might be due to invalid IL or missing references) //IL_0aff: Unknown result type (might be due to invalid IL or missing references) //IL_0b05: Expected O, but got Unknown //IL_0b91: Unknown result type (might be due to invalid IL or missing references) //IL_0bd6: Unknown result type (might be due to invalid IL or missing references) //IL_0bdc: Expected O, but got Unknown //IL_0c68: Unknown result type (might be due to invalid IL or missing references) //IL_0cb4: Unknown result type (might be due to invalid IL or missing references) //IL_0cbe: Expected O, but got Unknown instance = this; PInfo = ((BaseUnityPlugin)this).Info; Assets.LoadAssetBundlesFromFolder("assetbundles"); CustomEmoteParams val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/My Ears Bleeding/My Ears Bleeding.anim") }; val.secondaryAnimationClips = null; val.audioLoops = true; val.primaryAudioClips = (AudioClip[])(object)new AudioClip[1] { Assets.Load<AudioClip>("creativeCrittersEmotes/My Ears Bleeding/My_ears_bleeding.ogg") }; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = true; val.syncAudio = true; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 1f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "My Ears Bleeding"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Thinking of Swimming/Thinking of Swimming.anim") }; val.secondaryAnimationClips = null; val.audioLoops = false; val.primaryAudioClips = null; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = true; val.syncAudio = true; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 0f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "Thinking of Swimming"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/T Pose/T Pose.anim") }; val.secondaryAnimationClips = null; val.audioLoops = false; val.primaryAudioClips = null; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = true; val.syncAudio = true; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 0f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "T Pose"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Shinji/Shinji.anim") }; val.secondaryAnimationClips = null; val.audioLoops = false; val.primaryAudioClips = null; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = true; val.syncAudio = true; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 0f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "Shinji"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/''Skip''/''Skip''.anim") }; val.secondaryAnimationClips = null; val.audioLoops = true; val.primaryAudioClips = (AudioClip[])(object)new AudioClip[1] { Assets.Load<AudioClip>("creativeCrittersEmotes/''Skip''/''Skip''.ogg") }; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = true; val.syncAudio = true; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 1f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "\"Skip\""; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Freddy Thrust/Freddy Thrust.anim") }; val.secondaryAnimationClips = null; val.audioLoops = true; val.primaryAudioClips = (AudioClip[])(object)new AudioClip[1] { Assets.Load<AudioClip>("creativeCrittersEmotes/Freddy Thrust/freddy_thrust.ogg") }; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = false; val.syncAudio = false; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 1f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "Freddy Thrust"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Dancin Domino/Dancin Domino.anim") }; val.secondaryAnimationClips = null; val.audioLoops = true; val.primaryAudioClips = (AudioClip[])(object)new AudioClip[1] { Assets.Load<AudioClip>("creativeCrittersEmotes/Dancin Domino/Dancin_Domino.ogg") }; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = false; val.syncAudio = false; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 0.3f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "Dancin' Domino"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Horse Cavalo/Horse Cavalo.anim") }; val.secondaryAnimationClips = null; val.audioLoops = false; val.primaryAudioClips = (AudioClip[])(object)new AudioClip[1] { Assets.Load<AudioClip>("creativeCrittersEmotes/Horse Cavalo/Horse_Cavalo.ogg") }; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = false; val.syncAudio = false; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 0f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "Horse Cavalo"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Quadrupedal/QuadraBend.anim") }; val.secondaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Quadrupedal/Quadra Pose.anim") }; val.audioLoops = false; val.primaryAudioClips = null; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = false; val.syncAudio = false; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 0f; val.rootBonesToIgnore = (HumanBodyBones[])(object)new HumanBodyBones[2] { (HumanBodyBones)4, (HumanBodyBones)3 }; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "Quadruped"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Flight/Flight.anim") }; val.secondaryAnimationClips = null; val.audioLoops = false; val.primaryAudioClips = null; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = false; val.syncAudio = false; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 0f; val.rootBonesToIgnore = (HumanBodyBones[])(object)new HumanBodyBones[2] { (HumanBodyBones)2, (HumanBodyBones)1 }; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "Flight"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Ragdoll Gmod and Ragdoll Death/Ragdoll Death.anim") }; val.secondaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Ragdoll Gmod and Ragdoll Death/Ragdoll End.anim") }; val.audioLoops = false; val.primaryAudioClips = (AudioClip[])(object)new AudioClip[1] { Assets.Load<AudioClip>("creativeCrittersEmotes/Ragdoll Gmod and Ragdoll Death/Ragdoll_Death.ogg") }; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = false; val.syncAudio = false; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 0.3f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "Ragdoll Death"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Ragdoll Gmod and Ragdoll Death/Ragdoll Death.anim") }; val.secondaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Ragdoll Gmod and Ragdoll Death/Ragdoll End.anim") }; val.audioLoops = false; val.primaryAudioClips = (AudioClip[])(object)new AudioClip[1] { Assets.Load<AudioClip>("creativeCrittersEmotes/Ragdoll Gmod and Ragdoll Death/Gmod_Death.ogg") }; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = false; val.syncAudio = false; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = "ragdollgmod"; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 0.3f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "Ragdoll Gmod"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/The Storm/The Storm.anim") }; val.secondaryAnimationClips = null; val.audioLoops = false; val.primaryAudioClips = (AudioClip[])(object)new AudioClip[1] { Assets.Load<AudioClip>("creativeCrittersEmotes/The Storm/The_Storm.ogg") }; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = false; val.syncAudio = false; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 1f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "The Storm"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Shitji/Shitji.anim") }; val.secondaryAnimationClips = null; val.audioLoops = true; val.primaryAudioClips = (AudioClip[])(object)new AudioClip[1] { Assets.Load<AudioClip>("creativeCrittersEmotes/Shitji/shitji.ogg") }; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = true; val.syncAudio = true; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = "Shitji"; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 1f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "Shitji"; EmoteImporter.ImportEmote(val); val = new CustomEmoteParams(); val.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { Assets.Load<AnimationClip>("creativeCrittersEmotes/Skibidi Toilet/Skibidi.anim") }; val.secondaryAnimationClips = null; val.audioLoops = true; val.primaryAudioClips = (AudioClip[])(object)new AudioClip[1] { Assets.Load<AudioClip>("creativeCrittersEmotes/Skibidi Toilet/Skibidi.ogg") }; val.secondaryAudioClips = null; val.primaryDMCAFreeAudioClips = null; val.secondaryDMCAFreeAudioClips = null; val.visible = true; val.syncAnim = true; val.syncAudio = true; val.startPref = -1; val.joinPref = -1; val.joinSpots = null; val.internalName = ""; val.lockType = (LockType)1; val.willGetClaimedByDMCA = true; val.audioLevel = 0.3f; val.rootBonesToIgnore = null; val.soloBonesToIgnore = null; val.stopWhenMove = false; val.thirdPerson = false; val.displayName = "Skibidi"; EmoteImporter.ImportEmote(val); CustomEmotesAPI.animChanged += new AnimationChanged(CustomEmotesAPI_animChanged); } private void CustomEmotesAPI_animChanged(string newAnimation, BoneMapper mapper) { //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0367: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) if (newAnimation.StartsWith("com.creativecritters.emotes")) { newAnimation = newAnimation.Split("__")[1]; switch (newAnimation) { case "Shinji": { int count = mapper.props.Count; mapper.props.Add(Object.Instantiate<GameObject>(Assets.Load<GameObject>("creativeCrittersEmotes/Shinji/metal folding chair_sketchfab.prefab"))); mapper.props[count].transform.SetParent(((Component)mapper).transform); mapper.props[count].transform.localEulerAngles = new Vector3(0f, 90f, 0f); mapper.props[count].transform.localPosition = new Vector3(0f, -0.159f, -0.047f); mapper.props[count].transform.localScale = new Vector3(1.2f, 1.2f, 1.2f); break; } case "Shitji": { int count = mapper.props.Count; mapper.props.Add(Object.Instantiate<GameObject>(Assets.Load<GameObject>("creativeCrittersEmotes/Shitji/toilet.prefab"))); mapper.props[count].transform.SetParent(((Component)mapper).transform); mapper.props[count].transform.localEulerAngles = new Vector3(0f, 90f, 0f); mapper.props[count].transform.localPosition = new Vector3(0f, -0.188f, -0.136f); mapper.props[count].transform.localScale = new Vector3(1.2f, 1.2f, 1.2f); break; } case "Skibidi": { int count = mapper.props.Count; mapper.props.Add(Object.Instantiate<GameObject>(Assets.Load<GameObject>("creativeCrittersEmotes/Skibidi Toilet/Toilet skibidi.prefab"))); mapper.props[count].transform.SetParent(((Component)mapper).transform); mapper.props[count].transform.localEulerAngles = new Vector3(-90f, 0f, 0f); mapper.props[count].transform.localPosition = new Vector3(0f, 0f, 0f); mapper.props[count].transform.localScale = new Vector3(1.2f, 1.2f, 1.2f); break; } case "The Storm": { Console.WriteLine("got in case"); int count = mapper.props.Count; mapper.props.Add(Object.Instantiate<GameObject>(Assets.Load<GameObject>("creativeCrittersEmotes/The Storm/the_storm_sword.prefab"))); mapper.props[count].transform.SetParent(((Component)mapper).transform); mapper.props[count].transform.localEulerAngles = new Vector3(0f, 0f, 0f); mapper.props[count].transform.localPosition = new Vector3(0f, 0f, 0f); mapper.props[count].transform.localScale = new Vector3(1.2f, 1.2f, 1.2f); break; } } } } } } namespace CustomEmotesAPI_Template_Mod { internal static class Assets { internal static readonly List<AssetBundle> AssetBundles = new List<AssetBundle>(); private static readonly Dictionary<string, int> AssetIndices = new Dictionary<string, int>(); internal static void LoadAssetBundlesFromFolder(string folderName) { folderName = Path.Combine(Path.GetDirectoryName(ExampleEmoteMod.PInfo.Location), folderName); string[] files = Directory.GetFiles(folderName); foreach (string text in files) { AssetBundle val = AssetBundle.LoadFromFile(text); int count = AssetBundles.Count; AssetBundles.Add(val); string[] allAssetNames = val.GetAllAssetNames(); foreach (string text2 in allAssetNames) { string text3 = text2.ToLowerInvariant(); if (text3.StartsWith("assets/")) { text3 = text3.Remove(0, "assets/".Length); } AssetIndices[text3] = count; } DebugClass.Log((object)("Loaded AssetBundle: " + Path.GetFileName(text))); } } internal static T Load<T>(string assetName) where T : Object { try { assetName = assetName.ToLowerInvariant(); if (assetName.Contains(":")) { string[] array = assetName.Split(':'); assetName = array[1].ToLowerInvariant(); } if (assetName.StartsWith("assets/")) { assetName = assetName.Remove(0, "assets/".Length); } int index = AssetIndices[assetName]; return AssetBundles[index].LoadAsset<T>("assets/" + assetName); } catch (Exception arg) { DebugClass.Log((object)$"Couldn't load asset [{assetName}] reason: {arg}"); return default(T); } } } }