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 HSRBodypillows v1.0.1
HSRBodypillowsMod.dll
Decompiled 2 weeks agousing System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using CSync.Extensions; using CSync.Lib; using LethalLib.Modules; using Microsoft.CodeAnalysis; 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: AssemblyCompany("HSRBodypillowsMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("HSRBodypillowsMod")] [assembly: AssemblyTitle("HSRBodypillowsMod")] [assembly: AssemblyVersion("1.0.0.0")] 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 HSRBodypillows { [BepInPlugin("CraftyGlitches.HSRBodypillows", "HSRBodyPillows", "1.0.1")] public class Plugin : BaseUnityPlugin { private const string GUID = "CraftyGlitches.HSRBodypillows"; private const string NAME = "HSRBodyPillows"; private const string VERSION = "1.0.1"; public static Plugin Instance; public static HSRBodyPillowsConfig config; public static List<string> ItemAssets = new List<string> { "Assets/bodypillows/sunday/sundaybodypillow.asset", "Assets/bodypillows/acheron/acheronbodypillow.asset", "Assets/bodypillows/kafka/kafkabodypillow.asset", "Assets/bodypillows/mortenax/mortenaxbodypillow.asset", "Assets/bodypillows/firefly/fireflybodypillow.asset", "Assets/bodypillows/blade/bladebodypillow.asset", "Assets/bodypillows/aventurine/aventurinebodypillow.asset", "Assets/bodypillows/fugue/fuguebodypillow.asset", "Assets/bodypillows/shane/shanebodypillow.asset" }; public static List<Item> ItemList; private void Awake() { Instance = this; ItemList = new List<Item>(); string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "hsrbodypillow"); AssetBundle val = AssetBundle.LoadFromFile(text); foreach (string itemAsset in ItemAssets) { Item val2 = val.LoadAsset<Item>(itemAsset); if ((Object)(object)val2 == (Object)null) { Debug.LogError((object)(itemAsset + " is not accessible, please check your asset path again")); } else { ItemList.Add(val2); } } config = new HSRBodyPillowsConfig(((BaseUnityPlugin)this).Config); foreach (KeyValuePair<Item, SyncedEntry<int>> item in HSRBodyPillowsConfig.ItemRarity) { RegisterBodypillows(item.Key, SyncedEntry<int>.op_Implicit(item.Value)); ValidateShopItem(item.Key); } ((BaseUnityPlugin)this).Logger.LogInfo((object)"CraftyGlitches.HSRBodypillows is loaded ! ... may this journey lead us starward."); } public static void RemovePostProcessing(GameObject spawnPrefab) { if (!((Object)(object)spawnPrefab != (Object)null)) { return; } MeshRenderer[] componentsInChildren = spawnPrefab.GetComponentsInChildren<MeshRenderer>(); MeshRenderer[] array = componentsInChildren; MeshRenderer[] array2 = array; foreach (MeshRenderer val in array2) { Material[] materials = ((Renderer)val).materials; foreach (Material val2 in materials) { if (val2.renderQueue < 3000) { val2.renderQueue = 2900; } } } } private void RegisterBodypillows(Item item, int value) { GameObject spawnPrefab = item.spawnPrefab; RemovePostProcessing(spawnPrefab); NetworkPrefabs.RegisterNetworkPrefab(spawnPrefab); Utilities.FixMixerGroups(spawnPrefab); if (item.itemName == "testname") { Items.RegisterScrap(item, value, (LevelTypes)12288); } else { Items.RegisterScrap(item, value, (LevelTypes)(-1)); } } private void ValidateShopItem(Item item) { List<string> list = new List<string> { "SundayBodypillow", "MortenaxBodypillow", "BladeBodypillow" }; if (list.Contains(item.itemName)) { TerminalNode val = ScriptableObject.CreateInstance<TerminalNode>(); val.clearPreviousText = true; string text = "These bodypillows are totally legit licensed products by the IPC!"; switch (item.itemName) { case "SundayBodypillow": val.displayText = text + "Sometimes dreams can conjure up some... strange creations."; break; case "MortenaxBodypillow": val.displayText = text + "So cuddly... and sharp.."; break; case "BladeBodypillow": val.displayText = text + "Need me to watch your sleep?"; break; } Items.RegisterShopItem(item, (TerminalNode)null, (TerminalNode)null, val, Mathf.FloorToInt((float)Random.Range(100, 150))); } } } public class HSRBodyPillowsConfig : SyncedConfig2<HSRBodyPillowsConfig> { [field: SyncedEntryField] public static Dictionary<Item, SyncedEntry<int>> ItemRarity { get; private set; } public HSRBodyPillowsConfig(ConfigFile config) : base("CraftyGlitches.HSRBodyPillows") { ItemRarity = new Dictionary<Item, SyncedEntry<int>>(); List<string> list = new List<string> { "MortenaxBodypillow", "BladeBodypillow" }; foreach (Item item in Plugin.ItemList) { if (list.Contains(item.itemName)) { string itemName = item.itemName; string text = itemName; if (!(text == "MortenaxBodypillow")) { if (text == "BladeBodypillow") { ItemRarity[item] = SyncedBindingExtensions.BindSyncedEntry<int>(config, "Bodypillow rarity", item.itemName ?? "", 30, "Changing rarity value for: " + item.itemName + ".\n\nEnter your desired value.\n\n"); } } else { ItemRarity[item] = SyncedBindingExtensions.BindSyncedEntry<int>(config, "Bodypillow rarity", item.itemName ?? "", 30, "Changing rarity value for: " + item.itemName + ".\n\nEnter your desired value.\n\n"); } } else { ItemRarity[item] = SyncedBindingExtensions.BindSyncedEntry<int>(config, "Bodypillow rarity", item.itemName ?? "", 20, "Changing rarity value for: " + item.itemName + ".\n\nEnter your desired value.\n\n"); } } ConfigManager.Register<HSRBodyPillowsConfig>((SyncedConfig2<HSRBodyPillowsConfig>)(object)this); } public static void AssetLoader(List<string> list) { } } }