Please disclose if your mod was created primarily 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 OpidAndCompany v1.0.6
OpidAndCompany.dll
Decompiled a year 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 BepInEx.Logging; using HarmonyLib; using LethalLib.Modules; using LobbyCompatibility.Attributes; using Microsoft.CodeAnalysis; using OpidAndCompany.Behaviours; 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("OpidAndCompany")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.6")] [assembly: AssemblyInformationalVersion("1.0.6+1f663ce3e626dceec88d4efa333cbe35f276c1c1")] [assembly: AssemblyProduct("OpidAndCompany")] [assembly: AssemblyTitle("OpidAndCompany")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.6.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 OpidAndCompany { [BepInPlugin("OpidAndCompany", "OpidAndCompany", "1.0.6")] [BepInDependency(/*Could not decode attribute arguments.*/)] [LobbyCompatibility(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static AssetBundle opidsItems; public static ConfigEntry<bool> SpawnCuteCeramicCritter; public static ConfigEntry<int> CuteCeramicCritterRarity; public static ConfigEntry<int> GlowStickIntensity; public static ConfigEntry<bool> ConfigSyncOthers; private static int GlowStickDefaultIntensity = 25; private static bool SpawnCuteCeramicCritterDefault = true; private static int CuteCeramicCritterRarityDefault = 30; public static Plugin Instance { get; private set; } = null; internal static ManualLogSource Logger { get; private set; } = null; internal static Harmony? Harmony { get; set; } private void Awake() { Logger = ((BaseUnityPlugin)this).Logger; Instance = this; string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); opidsItems = AssetBundle.LoadFromFile(Path.Combine(directoryName, "opidsitems")); if ((Object)(object)opidsItems == (Object)null) { Logger.LogError((object)"Failed to load custom assets."); return; } GlowStickIntensity = ((BaseUnityPlugin)this).Config.Bind<int>("Purchasable Items", "Glow Stick Intensity", GlowStickDefaultIntensity, "[Client Side] An integer representing the brightness level of the glow stick’s light. Higher values result in a stronger glow."); SpawnCuteCeramicCritter = ((BaseUnityPlugin)this).Config.Bind<bool>("Scrap", "Spawn Cute Ceramic Critter", SpawnCuteCeramicCritterDefault, "[Server Side] Determines if the Cute Ceramic Critter will spawn."); CuteCeramicCritterRarity = ((BaseUnityPlugin)this).Config.Bind<int>("Scrap", "Cute Ceramic Critter Rarity", CuteCeramicCritterRarityDefault, "[Server Side] Controls the spawn rate of the Cute Ceramic Critter. Higher values increase its likelihood of spawning."); if (SpawnCuteCeramicCritter.Value) { Item val = opidsItems.LoadAsset<Item>("assets/cuteceramiccritter.asset"); NetworkPrefabs.RegisterNetworkPrefab(val.spawnPrefab); Utilities.FixMixerGroups(val.spawnPrefab); Items.RegisterScrap(val, CuteCeramicCritterRarity.Value, (LevelTypes)(-1)); } int num = 1; TerminalNode val2 = opidsItems.LoadAsset<TerminalNode>("Assets/iTerminalNode.asset"); Item val3 = opidsItems.LoadAsset<Item>("Assets/GlowStick.asset"); Glowstick glowstick = val3.spawnPrefab.AddComponent<Glowstick>(); ((GrabbableObject)glowstick).grabbable = true; ((GrabbableObject)glowstick).grabbableToEnemies = true; ((GrabbableObject)glowstick).itemProperties = val3; NetworkPrefabs.RegisterNetworkPrefab(val3.spawnPrefab); Utilities.FixMixerGroups(val3.spawnPrefab); Items.RegisterShopItem(val3, (TerminalNode)null, (TerminalNode)null, val2, num); Patch(); Logger.LogInfo((object)"OpidAndCompany v1.0.6 has loaded!"); Logger.LogInfo((object)" ╔══════════════════════════════════════════╗"); Logger.LogInfo((object)" ║ Thanks for testing, brave souls! ║"); Logger.LogInfo((object)" ║ Your sacrifices are noted. ║"); Logger.LogInfo((object)" ╠══════════════════════════════════════════╣"); Logger.LogInfo((object)" ║ ∙Digfish ∙Kraven0004 ∙MacMeaties ║"); Logger.LogInfo((object)" ║ ∙Ingleflats ∙NextGenPants ∙Cirno The 9th ║"); Logger.LogInfo((object)" ║ ∙EnragedPotato ║"); Logger.LogInfo((object)" ╚══════════════════════════════════════════╝"); } internal static void Patch() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown if (Harmony == null) { Harmony = new Harmony("OpidAndCompany"); } Logger.LogDebug((object)"Patching..."); Harmony.PatchAll(); Logger.LogDebug((object)"Finished patching!"); } internal static void Unpatch() { Logger.LogDebug((object)"Unpatching..."); Harmony? harmony = Harmony; if (harmony != null) { harmony.UnpatchSelf(); } Logger.LogDebug((object)"Finished unpatching!"); } } public static class MyPluginInfo { public const string PLUGIN_GUID = "OpidAndCompany"; public const string PLUGIN_NAME = "OpidAndCompany"; public const string PLUGIN_VERSION = "1.0.6"; } } namespace OpidAndCompany.Behaviours { internal class Glowstick : PhysicsProp { public override void PocketItem() { ((GrabbableObject)this).PocketItem(); Transform val = ((Component)this).transform.Find("Light_S"); if ((Object)(object)val != (Object)null) { Light component = ((Component)val).GetComponent<Light>(); if ((Object)(object)component != (Object)null) { ((Behaviour)component).enabled = false; Debug.Log((object)("Light toggled: " + ((Behaviour)component).enabled)); } else { Debug.Log((object)"Light component not found"); } } else { Debug.Log((object)"Light node not found"); } } public override void EquipItem() { ((PhysicsProp)this).EquipItem(); Transform val = ((Component)this).transform.Find("Light_S"); if ((Object)(object)val != (Object)null) { Light component = ((Component)val).GetComponent<Light>(); if ((Object)(object)component != (Object)null) { if (Plugin.GlowStickIntensity != null) { component.intensity = Plugin.GlowStickIntensity.Value; } ((Behaviour)component).enabled = true; Debug.Log((object)("Light toggled: " + ((Behaviour)component).enabled)); } else { Debug.Log((object)"Light component not found"); } } else { Debug.Log((object)"Light node not found"); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }