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 ItemsHighlightConfigurator v1.0.0
plugins\NovaGC-ItemsHighlightConfigurator\ItemsHighlightConfigurator.dll
Decompiled a year agousing System; using System.Collections.Generic; using System.Collections.ObjectModel; 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 BepInEx.Logging; using ItemsHighlightConfigurator.Controllers; using ItemsHighlightConfigurator.Models.Exceptions; using ItemsHighlightConfigurator.Services; using ItemsHighlightConfigurator.Utils; using Microsoft.CodeAnalysis; using On.RoR2; using R2API.Utils; using RiskOfOptions; using RiskOfOptions.Options; using RoR2; using RoR2.ContentManagement; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("ItemsHighlightConfigurator")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+08ae5606d2a9c1aa6e8a2ada4d6cb231f07f842b")] [assembly: AssemblyProduct("ItemsHighlightConfigurator")] [assembly: AssemblyTitle("ItemsHighlightConfigurator")] [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 ItemsHighlightConfigurator { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("NovaGC.ItemsHighlightConfigurator", "ItemsHighlightConfigurator", "1.0.0")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class ItemsHighlightConfiguratorPlugin : BaseUnityPlugin { public const string Guid = "NovaGC.ItemsHighlightConfigurator"; public const string Author = "NovaGC"; public const string Name = "ItemsHighlightConfigurator"; public const string Version = "1.0.0"; public TierColorConfigsController ConfigsController { get; private set; } public void Awake() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown Log.Init(((BaseUnityPlugin)this).Logger); ConfigsController = new TierColorConfigsController(((BaseUnityPlugin)this).Config); ItemTierCatalog.Init += new hook_Init(OnItemTierCatalogInit); ModSettingsManager.SetModDescription("Меняет цвет обводки предметов"); } private void OnItemTierCatalogInit(orig_Init orig) { orig.Invoke(); ConfigsController.Init(); } } } namespace ItemsHighlightConfigurator.Utils { public static class ColorConfigUtils { public static TierColorSyncController SyncColorConfig(this ConfigEntry<Color> config, ItemTier tier) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) ItemTierDef itemTierDef = ItemTierCatalog.GetItemTierDef(tier); if (itemTierDef == null) { throw new ArgumentException("Unsupported tier", "tier"); } return new TierColorSyncController(config, itemTierDef.colorIndex, tier); } public static void RegisterConfigOption(this ConfigEntry<Color> config) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown ModSettingsManager.AddOption((BaseOption)new ColorOption(config)); } } } namespace ItemsHighlightConfigurator.Services { internal static class Log { private static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { ManualLogSource logSource2 = _logSource; if (logSource2 != null) { logSource2.Dispose(); } _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } } namespace ItemsHighlightConfigurator.Models.Exceptions { public class DuplicateTierException : Exception { [CompilerGenerated] private ItemTier <tier>P; public override string Message => $"{<tier>P} config already registered"; public DuplicateTierException(ItemTier tier) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) <tier>P = tier; base..ctor(); } } } namespace ItemsHighlightConfigurator.Controllers { public class TierColorConfigsController : IDisposable { private readonly Dictionary<ItemTier, TierColorSyncController> _syncControllers = new Dictionary<ItemTier, TierColorSyncController>(); private readonly Dictionary<ItemTier, Color> _originalTierColors = new Dictionary<ItemTier, Color>(); public ConfigFile PluginConfigFile { get; set; } public ReadOnlyDictionary<ItemTier, Color> OriginalTierColors => new ReadOnlyDictionary<ItemTier, Color>(_originalTierColors); public TierColorConfigsController(ConfigFile pluginConfigFile) { PluginConfigFile = pluginConfigFile; } public void Init() { ItemTierDef[] itemTierDefs = ContentManager.itemTierDefs; foreach (ItemTierDef tierDef in itemTierDefs) { try { CreateTierColorConfigs(tierDef); } catch (Exception data) { Log.Error(data); } } } private void CreateTierColorConfigs(ItemTierDef tierDef) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) ItemTier tier = tierDef.tier; if (_syncControllers.ContainsKey(tier)) { throw new DuplicateTierException(tier); } Color32 originalColor = ColorCatalog.GetColor(tierDef.colorIndex); ConfigEntry<Color> config = PluginConfigFile.Bind<Color>("Items", $"{tier} color", Color32.op_Implicit(originalColor), $"Цвет обводки для предметов класса {tier}"); ConfigEntry<Color> originalColorConfig = PluginConfigFile.Bind<Color>("Items", $"{tier} original color", Color32.op_Implicit(originalColor), $"[НЕИЗМЕНЯЕМОЕ] Оригинальный цвет обводки для предметов класса {tier}"); originalColorConfig.Value = Color32.op_Implicit(originalColor); originalColorConfig.SettingChanged += delegate { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) originalColorConfig.Value = Color32.op_Implicit(originalColor); }; config.RegisterConfigOption(); originalColorConfig.RegisterConfigOption(); TierColorSyncController value = config.SyncColorConfig(tier); _syncControllers.Add(tier, value); _originalTierColors.Add(tier, Color32.op_Implicit(originalColor)); } public void Dispose() { foreach (TierColorSyncController value in _syncControllers.Values) { value.Dispose(); } } } public class TierColorSyncController : IDisposable { private readonly ConfigEntry<Color> _config; private readonly ColorIndex _index; private readonly ItemTier _tier; private int ColorIndex => (int)_index; public TierColorSyncController(ConfigEntry<Color> config, ColorIndex index, ItemTier tier) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) _config = config; _index = index; _tier = tier; if (ColorIndex < 0 || ColorIndex >= ColorCatalog.indexToColor32.Length) { throw new ArgumentOutOfRangeException("index", string.Format("{0} must be in range [0,{1}]", "index", ColorCatalog.indexToColor32.Length)); } InitSynchronization(); } private void InitSynchronization() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) ColorCatalog.indexToColor32[ColorIndex] = Color32.op_Implicit(_config.Value); _config.SettingChanged += OnColorChanged; } private void UpdatePickupsColor() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) Color value = _config.Value; ColorCatalog.indexToColor32[ColorIndex] = Color32.op_Implicit(value); foreach (PickupDef item in PickupCatalog.allPickups.Where((PickupDef x) => x.itemTier == _tier)) { item.baseColor = value; } } private void OnColorChanged(object sender, EventArgs e) { UpdatePickupsColor(); } public void Dispose() { _config.SettingChanged -= OnColorChanged; } } }