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 Hwei Playermodel Pack v2.0.0
Hwei Playermodel Pack.dll
Decompiled a year agousing System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using LethalConfig; using LethalConfig.ConfigItems; using LethalConfig.ConfigItems.Options; using Microsoft.CodeAnalysis; using ModelReplacement; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("Hwei Playermodel Pack")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Hwei Playermodel Pack")] [assembly: AssemblyTitle("Hwei Playermodel Pack")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace HweiPlayermodels { public class HWEI_BASE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { if (!Plugin.BasePalette.Value) { string text = "Hwei_base"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } if (Plugin.BasePalette.Value) { string text2 = "Hwei_base_NoPalette"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text2); } string text3 = "Hwei_base"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text3); } protected override void OnEmoteStart(int emoteId) { if (emoteId == 1 && Plugin.enableVoiceLines.Value) { AudioClip randomAudio = Assets.hweiE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed); ((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f); } if (emoteId == 2 && Plugin.enableVoiceLines.Value) { AudioClip randomAudio2 = Assets.hweiE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed); ((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f); } } protected override void OnHitEnemy(bool dead) { ((BodyReplacementBase)this).OnHitEnemy(dead); if (!dead && Plugin.enableAttackLines.Value) { AudioClip randomAudio = Assets.hweiHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed); ((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f); } if (dead && Plugin.enableAttackLines.Value) { AudioClip randomAudio2 = Assets.hweiGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed); ((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f); } } } public class HWEI_WINTERBLESSED : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { if (!Plugin.WBPalette.Value) { string text = "Hwei_Winterblessed"; GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(text); if (Plugin.WBChroma.Value == 1) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color"); SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren[0])); } if (Plugin.WBChroma.Value == 2) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color1"); SkinnedMeshRenderer[] componentsInChildren2 = val.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren2[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren2[0])); } if (Plugin.WBChroma.Value == 3) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color2"); SkinnedMeshRenderer[] componentsInChildren3 = val.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren3[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren3[0])); } if (Plugin.WBChroma.Value == 4) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color3"); SkinnedMeshRenderer[] componentsInChildren4 = val.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren4[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren4[0])); } if (Plugin.WBChroma.Value == 5) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color4"); SkinnedMeshRenderer[] componentsInChildren5 = val.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren5[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren5[0])); } if (Plugin.WBChroma.Value == 6) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color5"); SkinnedMeshRenderer[] componentsInChildren6 = val.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren6[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren6[0])); } if (Plugin.WBChroma.Value == 7) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color6"); SkinnedMeshRenderer[] componentsInChildren7 = val.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren7[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren7[0])); } if (Plugin.WBChroma.Value == 8) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color7"); SkinnedMeshRenderer[] componentsInChildren8 = val.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren8[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren8[0])); } if (Plugin.WBChroma.Value == 9) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color8"); SkinnedMeshRenderer[] componentsInChildren9 = val.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren9[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren9[0])); } if (Plugin.WBChroma.Value == 10) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color9"); SkinnedMeshRenderer[] componentsInChildren10 = val.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren10[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren10[0])); } return val; } string text2 = "Hwei_Winterblessed_NoPalette"; GameObject val2 = Assets.MainAssetBundle.LoadAsset<GameObject>(text2); if (Plugin.WBChroma.Value == 1) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color"); SkinnedMeshRenderer[] componentsInChildren11 = val2.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren11[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren11[0])); } if (Plugin.WBChroma.Value == 2) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color1"); SkinnedMeshRenderer[] componentsInChildren12 = val2.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren12[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren12[0])); } if (Plugin.WBChroma.Value == 3) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color2"); SkinnedMeshRenderer[] componentsInChildren13 = val2.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren13[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren13[0])); } if (Plugin.WBChroma.Value == 4) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color3"); SkinnedMeshRenderer[] componentsInChildren14 = val2.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren14[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren14[0])); } if (Plugin.WBChroma.Value == 5) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color4"); SkinnedMeshRenderer[] componentsInChildren15 = val2.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren15[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren15[0])); } if (Plugin.WBChroma.Value == 6) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color5"); SkinnedMeshRenderer[] componentsInChildren16 = val2.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren16[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren16[0])); } if (Plugin.WBChroma.Value == 7) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color6"); SkinnedMeshRenderer[] componentsInChildren17 = val2.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren17[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren17[0])); } if (Plugin.WBChroma.Value == 8) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color7"); SkinnedMeshRenderer[] componentsInChildren18 = val2.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren18[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren18[0])); } if (Plugin.WBChroma.Value == 9) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color8"); SkinnedMeshRenderer[] componentsInChildren19 = val2.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren19[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren19[0])); } if (Plugin.WBChroma.Value == 10) { Material material = Assets.MainAssetBundle.LoadAsset<Material>("HWB_body_color9"); SkinnedMeshRenderer[] componentsInChildren20 = val2.GetComponentsInChildren<SkinnedMeshRenderer>(); ((Renderer)componentsInChildren20[0]).material = material; Debug.Log((object)("Found Material " + (object)componentsInChildren20[0])); } return val2; } protected override void OnEmoteStart(int emoteId) { if (emoteId == 1 && Plugin.enableVoiceLines.Value) { AudioClip randomAudio = Assets.hweiE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed); ((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f); } if (emoteId == 2 && Plugin.enableVoiceLines.Value) { AudioClip randomAudio2 = Assets.hweiE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed); ((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f); } } protected override void OnHitEnemy(bool dead) { ((BodyReplacementBase)this).OnHitEnemy(dead); if (!dead && Plugin.enableAttackLines.Value) { AudioClip randomAudio = Assets.hweiHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed); ((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f); } if (dead && Plugin.enableAttackLines.Value) { AudioClip randomAudio2 = Assets.hweiGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed); ((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f); } } } [BepInPlugin(".com.theflipsider.hwei.playermodels", "Hwei Playermodel Pack", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static ConfigFile config; public static ConfigEntry<bool> enableVoiceLines { get; private set; } public static ConfigEntry<bool> enableAttackLines { get; private set; } public static ConfigEntry<bool> BasePalette { get; private set; } public static ConfigEntry<int> WBChroma { get; private set; } public static ConfigEntry<bool> WBPalette { get; private set; } private static void InitConfig() { //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Expected O, but got Unknown //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Expected O, but got Unknown //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Expected O, but got Unknown //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Expected O, but got Unknown //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Expected O, but got Unknown //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Expected O, but got Unknown //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Expected O, but got Unknown //IL_0126: Expected O, but got Unknown //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Expected O, but got Unknown //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Expected O, but got Unknown //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Expected O, but got Unknown enableVoiceLines = config.Bind<bool>("Voice Lines", "Enable Emote Voice Lines", true, "Lets Hwei speak his artistic mind during emotes."); enableAttackLines = config.Bind<bool>("Voice Lines", "Enable Attack Voice Lines", true, "Toggles voice lines on hitting enemies."); BasePalette = config.Bind<bool>("Classic Hwei", "Disable Palette", false, "Removes base Hwei's floating palette. Reapply the suit for the effect!"); WBPalette = config.Bind<bool>("Winterblessed", "Disable Palette", false, "Removes winterblessed Hwei's floating palette. Reapply the suit for the effect!"); WBChroma = config.Bind<int>("Winterblessed", "Choose chroma (color)", 1, "Picks what chroma Winterblessed Hwei uses. Reapply the suit for the effect!"); BoolCheckBoxConfigItem val = new BoolCheckBoxConfigItem(enableVoiceLines, new BoolCheckBoxOptions { RequiresRestart = false }); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val); BoolCheckBoxConfigItem val2 = new BoolCheckBoxConfigItem(enableAttackLines, new BoolCheckBoxOptions { RequiresRestart = false }); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val2); BoolCheckBoxConfigItem val3 = new BoolCheckBoxConfigItem(BasePalette, new BoolCheckBoxOptions { RequiresRestart = false }); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val3); ConfigEntry<int> wBChroma = WBChroma; IntSliderOptions val4 = new IntSliderOptions { RequiresRestart = false }; ((BaseRangeOptions<int>)val4).Min = 1; ((BaseRangeOptions<int>)val4).Max = 10; IntSliderConfigItem val5 = new IntSliderConfigItem(wBChroma, val4); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val5); BoolCheckBoxConfigItem val6 = new BoolCheckBoxConfigItem(WBPalette, new BoolCheckBoxOptions { RequiresRestart = false }); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val6); } private void Awake() { //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("Classic Hwei", typeof(HWEI_BASE)); ModelReplacementAPI.RegisterSuitModelReplacement("Winterblessed Hwei", typeof(HWEI_WINTERBLESSED)); Harmony val = new Harmony(".com.theflipsider.hwei.playermodels"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin .com.theflipsider.hwei.playermodels is loaded! Paint those fools!"); } } public static class Assets { public class RandomAudioClip { private List<AudioClip> audioClipList = new List<AudioClip>(); public AudioClip GetRandomAudio(int seed) { Random random = new Random(); int num = random.Next(audioClipList.Count); Console.WriteLine($"Get audio N {audioClipList.Count} > {num}"); return audioClipList[num]; } public void AddAudio(string name) { AudioClip audioClipFromName = GetAudioClipFromName(name); if ((Object)(object)audioClipFromName != (Object)null) { audioClipList.Add(audioClipFromName); } else { Console.WriteLine("clip " + name + " null"); } } } public static string mainAssetBundleName = "HweiPlayermodels"; public static AssetBundle MainAssetBundle = null; public static RandomAudioClip hweiE1 = new RandomAudioClip(); public static RandomAudioClip hweiE2 = new RandomAudioClip(); public static RandomAudioClip hweiHit = new RandomAudioClip(); public static RandomAudioClip hweiGloat = new RandomAudioClip(); private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } hweiE1.AddAudio("hwei_black"); hweiE1.AddAudio("hwei_creativity"); hweiE1.AddAudio("hwei_empathy"); hweiE1.AddAudio("hwei_good"); hweiE1.AddAudio("hwei_imagination"); hweiE1.AddAudio("hwei_laugh"); hweiE1.AddAudio("hwei_live"); hweiE1.AddAudio("hwei_paint"); hweiE1.AddAudio("hwei_people"); hweiE1.AddAudio("hwei_secret"); hweiE1.AddAudio("hwei_student"); hweiE1.AddAudio("hwei_unchanged"); hweiE2.AddAudio("hwei_attention"); hweiE2.AddAudio("hwei_flow"); hweiE2.AddAudio("hwei_focus"); hweiE2.AddAudio("hwei_funny"); hweiE2.AddAudio("hwei_keep"); hweiE2.AddAudio("hwei_memory"); hweiE2.AddAudio("hwei_open"); hweiE2.AddAudio("hwei_quickly"); hweiE2.AddAudio("hwei_schedule"); hweiE2.AddAudio("hwei_stop"); hweiE2.AddAudio("hwei_watch"); hweiHit.AddAudio("hwei_attack1"); hweiHit.AddAudio("hwei_attack2"); hweiHit.AddAudio("hwei_attack3"); hweiHit.AddAudio("hwei_attack4"); hweiHit.AddAudio("hwei_EE1"); hweiHit.AddAudio("hwei_EE2"); hweiHit.AddAudio("hwei_EE3"); hweiHit.AddAudio("hwei_canvas"); hweiHit.AddAudio("hwei_colors"); hweiHit.AddAudio("hwei_EQ1"); hweiHit.AddAudio("hwei_EQ2"); hweiHit.AddAudio("hwei_EQ3"); hweiHit.AddAudio("hwei_feel"); hweiHit.AddAudio("hwei_QE1"); hweiHit.AddAudio("hwei_QE2"); hweiHit.AddAudio("hwei_QE3"); hweiHit.AddAudio("hwei_QQ1"); hweiHit.AddAudio("hwei_QQ2"); hweiHit.AddAudio("hwei_QQ3"); hweiHit.AddAudio("hwei_QQ4"); hweiHit.AddAudio("hwei_R1"); hweiHit.AddAudio("hwei_R2"); hweiHit.AddAudio("hwei_see"); hweiGloat.AddAudio("hwei_memory"); hweiGloat.AddAudio("hwei_paint"); hweiGloat.AddAudio("hwei_tone"); hweiGloat.AddAudio("hwei_line"); hweiGloat.AddAudio("hwei_imagined"); hweiGloat.AddAudio("hwei_i"); } public static AudioClip GetAudioClipFromName(string name) { Object obj = MainAssetBundle.LoadAsset(name); return (AudioClip)(object)((obj is AudioClip) ? obj : null); } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }