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 Item Lights And Effects Fix v1.1.1
BepInEx/plugins/Item_Lights_And_Effects_Fix/ItemLightsAndEffectsFix.dll
Decompiled a year agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; 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 Microsoft.CodeAnalysis; using UnityEngine; using UnityEngine.VFX; [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("ItemLightsAndEffectsFix")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("ItemLightsAndEffectsFix")] [assembly: AssemblyTitle("ItemLightsAndEffectsFix")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.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; } } } namespace ItemLightsAndEffectsFix { public class Config { public ConfigFile configFile; public string VFX_WHITELISTED { get; set; } public string LIGHT_WHITELISTED { get; set; } public string VFX_BLACKLISTED { get; set; } public string LIGHT_BLACKLISTED { get; set; } public Config(ConfigFile cfg) { configFile = cfg; } private T ConfigEntry<T>(string section, string key, T defaultVal, string description) { return configFile.Bind<T>(section, key, defaultVal, description).Value; } public void BindConfig() { VFX_WHITELISTED = ConfigEntry("Whitelists", "VFX Whitelist", "", "The mod will always change the item's VFX state if it is present in this list \nExemple: itemName1,itemName2,itemName3,"); LIGHT_WHITELISTED = ConfigEntry("Whitelists", "Light Whitelist", "", "The mod will always change the item's Light state if it is present in this list \nExemple: itemName1,itemName2,itemName3,"); VFX_BLACKLISTED = ConfigEntry("Blacklists", "VFX Blacklist", "", "The mod will not change the item's VFX state if it is present in this list \nExemple: itemName1,itemName2,itemName3,"); LIGHT_BLACKLISTED = ConfigEntry("Blacklists", "Light Blacklist", "", "The mod will not change the item's Light state if it is present in this list \nExemple: itemName1,itemName2,itemName3,"); } } [HarmonyPatch(typeof(GrabbableObject))] internal class EnableItemMeshesPatch_Patch { [HarmonyPostfix] [HarmonyPatch("EnableItemMeshes")] private static void EnableItemMeshesPatch(GrabbableObject __instance, ref bool enable) { VisualEffect[] componentsInChildren = ((Component)__instance).gameObject.GetComponentsInChildren<VisualEffect>(); Light[] componentsInChildren2 = ((Component)__instance).gameObject.GetComponentsInChildren<Light>(); string item = __instance.itemProperties?.itemName ?? "Item_Name_Not_Found"; string item2 = ((Component)__instance).GetComponentInChildren<ScanNodeProperties>()?.headerText ?? "Item_Name_Not_Found"; if (!Plugin.VFX_blacklist.Contains(item) && !Plugin.VFX_blacklist.Contains(item2) && (!__instance.itemProperties.requiresBattery || Plugin.VFX_whitelist.Contains(item) || Plugin.VFX_whitelist.Contains(item2))) { for (int i = 0; i < componentsInChildren.Length; i++) { if (!((Component)componentsInChildren[i]).gameObject.CompareTag("DoNotSet") && !((Component)componentsInChildren[i]).gameObject.CompareTag("InteractTrigger")) { ((Behaviour)componentsInChildren[i]).enabled = enable; } } } if (Plugin.Light_blacklist.Contains(item) || Plugin.Light_blacklist.Contains(item2) || (__instance.itemProperties.requiresBattery && !Plugin.Light_whitelist.Contains(item) && !Plugin.Light_whitelist.Contains(item2))) { return; } for (int j = 0; j < componentsInChildren2.Length; j++) { if (!((Component)componentsInChildren2[j]).gameObject.CompareTag("DoNotSet") && !((Component)componentsInChildren2[j]).gameObject.CompareTag("InteractTrigger")) { ((Behaviour)componentsInChildren2[j]).enabled = enable; } } } } [BepInPlugin("Entity378.ItemLightsAndEffectsFix", "ItemLightsAndEffectsFix", "1.1.1")] public class Plugin : BaseUnityPlugin { private Harmony harmony = new Harmony("Entity378.ItemLightsAndEffectsFix"); private const string GUID = "Entity378.ItemLightsAndEffectsFix"; private const string NAME = "ItemLightsAndEffectsFix"; private const string VERSION = "1.1.1"; public static List<string> VFX_whitelist; public static List<string> Light_whitelist; public static List<string> VFX_blacklist; public static List<string> Light_blacklist; public static Config cfg { get; private set; } private void Awake() { cfg = new Config(((BaseUnityPlugin)this).Config); cfg.BindConfig(); VFX_whitelist = cfg.VFX_WHITELISTED.Split(',').ToList(); Light_whitelist = cfg.LIGHT_WHITELISTED.Split(',').ToList(); VFX_blacklist = cfg.VFX_BLACKLISTED.Split(',').ToList(); Light_blacklist = cfg.LIGHT_BLACKLISTED.Split(',').ToList(); harmony.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"ItemLightsAndEffectsFix: Plugin Loaded!"); } } public static class PluginInfo { public const string PLUGIN_GUID = "ItemLightsAndEffectsFix"; public const string PLUGIN_NAME = "ItemLightsAndEffectsFix"; public const string PLUGIN_VERSION = "1.0.0"; } }