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 Melanie Interiors MelanieMelicious v1.2.1
MelanieMeliciousInterior.dll
Decompiled a day agousing System; 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 LethalLevelLoader; 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(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } internal static class MelanieInteriorConfig { internal enum items { Enable, NoPickup, Disable } internal static ConfigEntry<bool> museum; internal static ConfigEntry<bool> mausoleum; internal static ConfigEntry<items> item0; internal static ConfigEntry<items> item1; internal static ConfigEntry<items> item2; internal static ConfigEntry<items> item3; internal static ConfigEntry<items> item4; internal static ConfigEntry<items> item5; internal static ConfigEntry<int> item0Min; internal static ConfigEntry<int> item0Max; internal static ConfigEntry<int> item2Min; internal static ConfigEntry<int> item2Max; internal static ConfigEntry<int> item3Min; internal static ConfigEntry<int> item3Max; internal static ConfigEntry<int> item4Min; internal static ConfigEntry<int> item4Max; internal static ConfigEntry<int> item5Min; internal static ConfigEntry<int> item5Max; internal static ConfigEntry<bool> item0Hand; internal static ConfigEntry<bool> item1Hand; internal static ConfigEntry<bool> item2Hand; internal static ConfigEntry<bool> item3Hand; internal static ConfigEntry<bool> item4Hand; internal static ConfigEntry<bool> item5Hand; internal static void SetupConfig(ConfigFile config) { museum = config.Bind<bool>("Enabled Interiors", "Museum", true, "Do you want to enable MelanieMuseum?"); mausoleum = config.Bind<bool>("Enabled Interiors", "Mausoleum", true, "Do you want to enable MelanieMausoleum?"); item0 = config.Bind<items>("Item Toggle", "Paintings", items.Enable, "Toggle if paintings are enabled, can be picked up, or disabled entirely."); item1 = config.Bind<items>("Item Toggle", "Fossils", items.Enable, "Toggle if fossils are enabled, can be picked up, or disabled entirely."); item2 = config.Bind<items>("Item Toggle", "Plushies", items.Enable, "Toggle if plushies are enabled, can be picked up, or disabled entirely."); item3 = config.Bind<items>("Item Toggle", "Relics", items.Enable, "Toggle if puzzle relics are enabled, can be picked up, or disabled entirely."); item4 = config.Bind<items>("Item Toggle", "Body Bags", items.Enable, "Toggle if body bags are enabled, can be picked up, or disabled entirely."); item5 = config.Bind<items>("Item Toggle", "Small Bones", items.Enable, "Toggle if small bones (not fossils) are enabled, can be picked up, or disabled entirely."); item0Min = config.Bind<int>("Item Values", "Painting Minimum Value", 10, "Modify minimum values of paintings."); item0Max = config.Bind<int>("Item Values", "Painting Maximum Value", 20, "Modify maximum values of paintings."); item2Min = config.Bind<int>("Item Values", "Plushie Minimum Value", 20, "Modify minimum values of plushie."); item2Max = config.Bind<int>("Item Values", "Plushie Maximum Value", 30, "Modify maximum values of plushie."); item3Min = config.Bind<int>("Item Values", "Relic Minimum Value", 35, "Modify minimum values of relics."); item3Max = config.Bind<int>("Item Values", "Relic Maximum Value", 55, "Modify maximum values of relics."); item4Min = config.Bind<int>("Item Values", "Body Bag Minimum Value", 10, "Modify minimum values of body bags."); item4Max = config.Bind<int>("Item Values", "Body Bag Maximum Value", 20, "Modify maximum values of body bags."); item5Min = config.Bind<int>("Item Values", "Small Bone Minimum Value", 5, "Modify minimum values of small bones."); item5Max = config.Bind<int>("Item Values", "Small Bone Maximum Value", 10, "Modify maximum values of small bones."); item0Hand = config.Bind<bool>("Item Holding", "Paintings 2-Handed", true, "Modify if paintings are 2-handed."); item2Hand = config.Bind<bool>("Item Holding", "Plushies 2-Handed", false, "Modify if plushies are 2-handed."); item3Hand = config.Bind<bool>("Item Holding", "Relics 2-Handed", false, "Modify if relics are 2-handed."); item4Hand = config.Bind<bool>("Item Holding", "Body Bags 2-Handed", true, "Modify if body bags are 2-handed."); item5Hand = config.Bind<bool>("Item Holding", "Small Bones 2-Handed", false, "Modify if small bones are 2-handed."); } } namespace MelMelInteriors { [BepInPlugin("MelanieMelicious.interior0", "Melanie Melicious - Interiors", "1.2.1")] public class Plugin : BaseUnityPlugin { private const string GUID = "MelanieMelicious.interior0"; private const string NAME = "Melanie Melicious - Interiors"; private const string VERSION = "1.2.1"; internal static ExtendedMod extMod; private void Awake() { MelanieInteriorConfig.SetupConfig(((BaseUnityPlugin)this).Config); string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "melanieinteriors")); extMod = val.LoadAsset<ExtendedMod>("Assets/MelanieInterior/MelanieInteriors.asset"); if (MelanieInteriorConfig.museum.Value) { AssetBundle val2 = AssetBundle.LoadFromFile(Path.Combine(directoryName, "melaniemuseum")); Item[] array = val2.LoadAsset<AllItemsList>("Assets/MelanieInterior/Asset/MelanieMuseumItems.asset").itemsList.ToArray(); extMod.ExtendedDungeonFlows.Add(val2.LoadAsset<ExtendedDungeonFlow>("Assets/MelanieInterior/MuseumExtendedFlow.asset")); Item((Item[])(object)new Item[4] { array[0], array[1], array[2], array[3] }, (short)MelanieInteriorConfig.item0.Value, MelanieInteriorConfig.item0Min.Value, MelanieInteriorConfig.item0Max.Value); Item((Item[])(object)new Item[8] { array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13] }, (short)MelanieInteriorConfig.item1.Value); Item((Item[])(object)new Item[1] { array[4] }, (short)MelanieInteriorConfig.item2.Value, MelanieInteriorConfig.item2Min.Value, MelanieInteriorConfig.item2Max.Value); Item((Item[])(object)new Item[1] { array[5] }, (short)MelanieInteriorConfig.item3.Value, MelanieInteriorConfig.item3Min.Value, MelanieInteriorConfig.item3Max.Value); } if (MelanieInteriorConfig.mausoleum.Value) { AssetBundle val3 = AssetBundle.LoadFromFile(Path.Combine(directoryName, "melaniemausoleum")); Item[] array2 = val3.LoadAsset<AllItemsList>("Assets/MelanieInterior/Asset/MelanieMausoleumItems.asset").itemsList.ToArray(); extMod.ExtendedDungeonFlows.Add(val3.LoadAsset<ExtendedDungeonFlow>("Assets/MelanieInterior/MausoleumExtendedFlow.asset")); Item((Item[])(object)new Item[1] { array2[0] }, (short)MelanieInteriorConfig.item4.Value, MelanieInteriorConfig.item4Min.Value, MelanieInteriorConfig.item4Max.Value); Item((Item[])(object)new Item[3] { array2[1], array2[2], array2[3] }, (short)MelanieInteriorConfig.item5.Value, MelanieInteriorConfig.item5Min.Value, MelanieInteriorConfig.item5Max.Value); } PatchedContent.RegisterExtendedMod(extMod); } private void Item(Item[] items, short config = 0, int min = 0, int max = -1) { //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Expected O, but got Unknown //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Expected O, but got Unknown switch (config) { case 0: foreach (Item val4 in items) { if (max != -1) { val4.minValue = min; val4.maxValue = max; } extMod.ExtendedItems.Add(new ExtendedItem { Item = val4 }); } break; case 1: foreach (Item val5 in items) { val5.spawnPrefab.GetComponent<GrabbableObject>().grabbable = false; } break; case 2: { ScanNodeProperties val3 = default(ScanNodeProperties); foreach (Item val in items) { val.spawnPrefab.GetComponent<GrabbableObject>().grabbable = false; foreach (Transform item in val.spawnPrefab.transform) { Transform val2 = item; if (((Component)val2).TryGetComponent<ScanNodeProperties>(ref val3)) { ((Behaviour)val3).enabled = false; } else { Object.Destroy((Object)(object)((Component)val2).gameObject); } } } break; } } } } }