Decompiled source of Seasonality v3.0.0
Seasonality.dll
Decompiled 2 years ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.IO; using System.IO.Compression; using System.Linq; using System.Linq.Expressions; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Runtime.Versioning; using System.Security; using System.Security.Cryptography; using System.Security.Permissions; using System.Text; using System.Text.RegularExpressions; using System.Threading; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using JetBrains.Annotations; using Microsoft.CodeAnalysis; using Seasonality.Seasons; using ServerSync; using TMPro; using UnityEngine; using UnityEngine.Experimental.Rendering; using UnityEngine.Rendering; using YamlDotNet.Core; using YamlDotNet.Core.Events; using YamlDotNet.Core.Tokens; using YamlDotNet.Helpers; using YamlDotNet.Serialization; using YamlDotNet.Serialization.BufferedDeserialization; using YamlDotNet.Serialization.BufferedDeserialization.TypeDiscriminators; using YamlDotNet.Serialization.Callbacks; using YamlDotNet.Serialization.Converters; using YamlDotNet.Serialization.EventEmitters; using YamlDotNet.Serialization.NamingConventions; using YamlDotNet.Serialization.NodeDeserializers; using YamlDotNet.Serialization.NodeTypeResolvers; using YamlDotNet.Serialization.ObjectFactories; using YamlDotNet.Serialization.ObjectGraphTraversalStrategies; using YamlDotNet.Serialization.ObjectGraphVisitors; using YamlDotNet.Serialization.Schemas; using YamlDotNet.Serialization.TypeInspectors; using YamlDotNet.Serialization.TypeResolvers; using YamlDotNet.Serialization.Utilities; using YamlDotNet.Serialization.ValueDeserializers; [assembly: AssemblyFileVersion("3.0.0")] [assembly: Guid("E0E2F92E-557C-4A05-9D89-AA92A0BD75C4")] [assembly: ComVisible(false)] [assembly: AssemblyTrademark("")] [assembly: AssemblyCopyright("Copyright © 2022")] [assembly: AssemblyProduct("Seasonality")] [assembly: AssemblyCompany("RustyMods")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyDescription("")] [assembly: AssemblyTitle("Seasonality")] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: CompilationRelaxations(8)] [assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("3.0.0.0")] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [<e3b9616f-f75c-495d-a38d-451a057c2eae>Embedded] internal sealed class <e3b9616f-f75c-495d-a38d-451a057c2eae>EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [<e3b9616f-f75c-495d-a38d-451a057c2eae>Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] [CompilerGenerated] internal sealed class <4edcec42-b8ad-494f-8522-113afc165eb1>NullableAttribute : Attribute { public readonly byte[] NullableFlags; public <4edcec42-b8ad-494f-8522-113afc165eb1>NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public <4edcec42-b8ad-494f-8522-113afc165eb1>NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] [<e3b9616f-f75c-495d-a38d-451a057c2eae>Embedded] [CompilerGenerated] internal sealed class <ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContextAttribute : Attribute { public readonly byte Flag; public <ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace Seasonality { [BepInPlugin("RustyMods.Seasonality", "Seasonality", "3.0.0")] [<4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(0)] [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(1)] public class SeasonalityPlugin : BaseUnityPlugin { [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(0)] public enum Toggle { On = 1, Off = 0 } [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(0)] public enum WorkingAs { Client, Server, Both } [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(0)] public enum Season { Spring, Summer, Fall, Winter } [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(0)] public enum Element { Fire, Frost, Lightning, Poison, Spirit, None } [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(0)] public enum DamageModifier { Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak, None } [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(0)] private class ConfigurationManagerAttributes { [UsedImplicitly] public int? Order = null; [UsedImplicitly] public bool? Browsable = null; [<4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(2)] [UsedImplicitly] public string Category = null; [<4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(new byte[] { 2, 1 })] [UsedImplicitly] public Action<ConfigEntryBase> CustomDrawer = null; } internal const string ModName = "Seasonality"; internal const string ModVersion = "3.0.0"; internal const string Author = "RustyMods"; private const string ModGUID = "RustyMods.Seasonality"; private static string ConfigFileName = "RustyMods.Seasonality.cfg"; private static string ConfigFileFullPath; internal static string ConnectionError; private readonly Harmony _harmony = new Harmony("RustyMods.Seasonality"); public static readonly ManualLogSource SeasonalityLogger; public static readonly ConfigSync ConfigSync; public static WorkingAs workingAsType; public static ConfigEntry<Season> _Season; public static ConfigEntry<int> _SeasonDurationDays; public static ConfigEntry<int> _SeasonDurationHours; public static ConfigEntry<int> _SeasonDurationMinutes; public static ConfigEntry<int> _WeatherDuration; public static ConfigEntry<Toggle> _WeatherIconEnabled; public static ConfigEntry<Toggle> _WeatherTimerEnabled; public static ConfigEntry<Toggle> _SeasonalEffectsEnabled; public static ConfigEntry<string> _SpringName; public static ConfigEntry<string> _SpringStartMsg; public static ConfigEntry<string> _SpringTooltip; public static ConfigEntry<Modifier> _SpringModifier; public static ConfigEntry<Element> _SpringResistanceElement; public static ConfigEntry<DamageModifier> _SpringResistanceMod; public static ConfigEntry<float> _SpringValue; public static ConfigEntry<string> _FallName; public static ConfigEntry<string> _FallStartMsg; public static ConfigEntry<string> _FallTooltip; public static ConfigEntry<Modifier> _FallModifier; public static ConfigEntry<Element> _FallResistanceElement; public static ConfigEntry<DamageModifier> _FallResistanceMod; public static ConfigEntry<float> _FallValue; public static ConfigEntry<string> _WinterName; public static ConfigEntry<string> _WinterStartMsg; public static ConfigEntry<string> _WinterTooltip; public static ConfigEntry<Modifier> _WinterModifier; public static ConfigEntry<Element> _WinterResistanceElement; public static ConfigEntry<DamageModifier> _WinterResistantMod; public static ConfigEntry<float> _WinterValue; public static ConfigEntry<string> _SummerName; public static ConfigEntry<string> _SummerStartMsg; public static ConfigEntry<string> _SummerTooltip; public static ConfigEntry<Modifier> _SummerModifier; public static ConfigEntry<Element> _SummerResistanceElement; public static ConfigEntry<DamageModifier> _SummerResistanceMod; public static ConfigEntry<float> _SummerValue; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Meadows_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Meadows_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Meadows_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Meadows_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_BlackForest_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_BlackForest_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_BlackForest_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_BlackForest_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Swamp_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Swamp_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Swamp_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Swamp_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Mountains_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Mountains_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Mountains_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Mountains_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Plains_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Plains_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Plains_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Plains_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_MistLands_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_MistLands_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_MistLands_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_MistLands_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Ocean_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Ocean_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Ocean_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_Ocean_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_AshLands_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_AshLands_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_AshLands_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_AshLands_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_DeepNorth_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_DeepNorth_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_DeepNorth_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Fall_DeepNorth_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Meadows_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Meadows_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Meadows_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Meadows_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_BlackForest_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_BlackForest_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_BlackForest_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_BlackForest_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Swamp_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Swamp_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Swamp_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Swamp_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Mountains_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Mountains_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Mountains_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Mountains_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Plains_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Plains_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Plains_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Plains_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_MistLands_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_MistLands_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_MistLands_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_MistLands_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Ocean_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Ocean_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Ocean_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_Ocean_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_AshLands_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_AshLands_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_AshLands_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_AshLands_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_DeepNorth_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_DeepNorth_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_DeepNorth_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Winter_DeepNorth_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Meadows_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Meadows_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Meadows_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Meadows_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_BlackForest_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_BlackForest_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_BlackForest_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_BlackForest_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Swamp_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Swamp_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Swamp_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Swamp_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Mountains_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Mountains_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Mountains_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Mountains_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Plains_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Plains_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Plains_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Plains_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_MistLands_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_MistLands_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_MistLands_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_MistLands_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Ocean_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Ocean_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Ocean_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_Ocean_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_AshLands_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_AshLands_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_AshLands_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_AshLands_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_DeepNorth_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_DeepNorth_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_DeepNorth_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Spring_DeepNorth_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Meadows_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Meadows_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Meadows_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Meadows_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_BlackForest_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_BlackForest_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_BlackForest_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_BlackForest_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Swamp_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Swamp_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Swamp_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Swamp_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Mountains_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Mountains_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Mountains_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Mountains_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Plains_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Plains_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Plains_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Plains_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_MistLands_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_MistLands_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_MistLands_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_MistLands_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Ocean_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Ocean_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Ocean_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_Ocean_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_AshLands_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_AshLands_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_AshLands_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_AshLands_Weather4; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_DeepNorth_Weather1; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_DeepNorth_Weather2; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_DeepNorth_Weather3; public static ConfigEntry<Seasonality.Seasons.Environment.Environments> _Summer_DeepNorth_Weather4; public static ConfigEntry<Color> _FallColor1; public static ConfigEntry<Color> _FallColor2; public static ConfigEntry<Color> _FallColor3; public static ConfigEntry<Color> _FallColor4; public static ConfigEntry<Color> _SpringColor1; public static ConfigEntry<Color> _SpringColor2; public static ConfigEntry<Color> _SpringColor3; public static ConfigEntry<Color> _SpringColor4; public static ConfigEntry<Color> _WinterColor1; public static ConfigEntry<Color> _WinterColor2; public static ConfigEntry<Color> _WinterColor3; public static ConfigEntry<Color> _WinterColor4; public static ConfigEntry<Color> _SummerColor1; public static ConfigEntry<Color> _SummerColor2; public static ConfigEntry<Color> _SummerColor3; public static ConfigEntry<Color> _SummerColor4; public static ConfigEntry<SpecialEffects.SpecialEffect> _FallStartEffects; public static ConfigEntry<SpecialEffects.SpecialEffect> _FallStopEffects; public static ConfigEntry<SpecialEffects.SpecialEffect> _SpringStartEffects; public static ConfigEntry<SpecialEffects.SpecialEffect> _SpringStopEffects; public static ConfigEntry<SpecialEffects.SpecialEffect> _SummerStartEffects; public static ConfigEntry<SpecialEffects.SpecialEffect> _SummerStopEffects; public static ConfigEntry<SpecialEffects.SpecialEffect> _WinterStartEffects; public static ConfigEntry<SpecialEffects.SpecialEffect> _WinterStopEffects; public static ConfigEntry<Toggle> _SeasonControl; public static ConfigEntry<Toggle> _ModEnabled; public static ConfigEntry<Toggle> _CounterVisible; public static ConfigEntry<Toggle> _WeatherControl; public static ConfigEntry<Toggle> _StatusEffectVisible; public static ConfigEntry<Toggle> _SummerNeverCold; public static ConfigEntry<Toggle> _WinterAlwaysCold; public static ConfigEntry<Toggle> _ReplaceCreatureTextures; public static ConfigEntry<string> _LastSavedSeasonChange; private static ConfigEntry<Toggle> _serverConfigLocked; public void Awake() { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Invalid comparison between Unknown and I4 _serverConfigLocked = config("1 - General", "1 - Lock Configuration", Toggle.On, "If on, the configuration is locked and can be changed by server admins only."); ConfigSync.AddLockingConfigEntry<Toggle>(_serverConfigLocked); workingAsType = (((int)SystemInfo.graphicsDeviceType == 4) ? WorkingAs.Server : WorkingAs.Client); CustomTextures.ReadCustomTextures(); InitConfigs(); Assembly executingAssembly = Assembly.GetExecutingAssembly(); _harmony.PatchAll(executingAssembly); SetupWatcher(); } private void InitConfigs() { //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Expected O, but got Unknown //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Expected O, but got Unknown //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Expected O, but got Unknown //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Expected O, but got Unknown //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Expected O, but got Unknown //IL_072b: Unknown result type (might be due to invalid IL or missing references) //IL_0751: Unknown result type (might be due to invalid IL or missing references) //IL_0777: Unknown result type (might be due to invalid IL or missing references) //IL_079d: Unknown result type (might be due to invalid IL or missing references) //IL_08c7: Unknown result type (might be due to invalid IL or missing references) //IL_08d2: Expected O, but got Unknown //IL_0cd8: Unknown result type (might be due to invalid IL or missing references) //IL_0cfe: Unknown result type (might be due to invalid IL or missing references) //IL_0d24: Unknown result type (might be due to invalid IL or missing references) //IL_0d4a: Unknown result type (might be due to invalid IL or missing references) //IL_0e74: Unknown result type (might be due to invalid IL or missing references) //IL_0e7f: Expected O, but got Unknown //IL_128b: Unknown result type (might be due to invalid IL or missing references) //IL_12b1: Unknown result type (might be due to invalid IL or missing references) //IL_12d7: Unknown result type (might be due to invalid IL or missing references) //IL_12fd: Unknown result type (might be due to invalid IL or missing references) //IL_1427: Unknown result type (might be due to invalid IL or missing references) //IL_1432: Expected O, but got Unknown //IL_1838: Unknown result type (might be due to invalid IL or missing references) //IL_185e: Unknown result type (might be due to invalid IL or missing references) //IL_1884: Unknown result type (might be due to invalid IL or missing references) //IL_18aa: Unknown result type (might be due to invalid IL or missing references) _LastSavedSeasonChange = config("8 - Data", "Last Season Change DateTime", DateTime.UtcNow.ToString(CultureInfo.InvariantCulture), "Do not touch, unless you want to manipulate last season change"); _ModEnabled = config("1 - General", "2 - Plugin Enabled", Toggle.On, "If on, mod is enabled"); _SeasonControl = config("1 - General", "3 - Control", Toggle.Off, "If on, season duration is disabled, and user can change season at will"); _Season = config("1 - General", "4 - Current Season", Season.Fall, "Set duration to 0, and select your season, else season is determined by plugin"); _SeasonDurationDays = config("1 - Seasons", "1 - Days", 0, new ConfigDescription("Real-time days between season", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 365), Array.Empty<object>())); _SeasonDurationHours = config("1 - Seasons", "2 - Hours", 1, new ConfigDescription("Real time hours between seasons", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 24), Array.Empty<object>())); _SeasonDurationMinutes = config("1 - Seasons", "3 - Minutes", 0, new ConfigDescription("Real-time minutes between seasons", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 60), Array.Empty<object>())); _StatusEffectVisible = config("1 - Seasons", "4 - Season Icon Visible", Toggle.On, "If on, season icon is visible", synchronizedSetting: false); _CounterVisible = config("1 - Seasons", "5 - Timer Visible", Toggle.On, "If on, timer under season is visible", synchronizedSetting: false); _SeasonalEffectsEnabled = config("2 - Utilities", "1 - Player Modifiers Enabled", Toggle.Off, "If on, season effects are enabled"); _SummerNeverCold = config("2 - Utilities", "2 - Summer Never Cold", Toggle.Off, "If on, players are never cold during summer"); _WinterAlwaysCold = config("2 - Utilities", "3 - Winter Always Cold", Toggle.Off, "If on, winter sets cold status effect on players regardless of environment"); _WeatherControl = config("1 - Weather", "1 - Weather Enabled", Toggle.On, "If on, seasons can control the weather"); _WeatherDuration = config("1 - Weather", "2 - Weather Duration (Minutes)", 20, new ConfigDescription("In-game minutes between weather change, if season applies weather", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 200), Array.Empty<object>())); _WeatherIconEnabled = config("1 - Weather", "3 - Icon Visible", Toggle.On, "If on, HUD displays weather information"); _WeatherTimerEnabled = config("1 - Weather", "4 - Timer Visible", Toggle.On, "If on, weather icon displays timer"); _ReplaceCreatureTextures = config("2 - Utilities", "Creatures Textures", Toggle.On, "If on, plugin replaces creature textures"); _SpringName = config("3 - Spring", "Name", "Spring", "Display name"); _SpringStartMsg = config("3 - Spring", "Start Message", "Spring has finally arrived", "Start of the season message"); _SpringTooltip = config("3 - Spring", "Tooltip", "The land is bursting with energy", "Status effect tooltip"); _SpringModifier = config("3 - Spring", "Modifier", Modifier.None, "Stats modifier"); _SpringResistanceElement = config("3 - Spring", "Resistance Type", Element.None, "Element"); _SpringResistanceMod = config("3 - Spring", "Resistance Modifier", DamageModifier.None, "Modifier"); _SpringValue = config("3 - Spring", "Modifying value", 0f, new ConfigDescription("Value applied to modifier", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-100f, 100f), Array.Empty<object>())); _Spring_Meadows_Weather1 = config("3 - Spring Weather", "1 - Meadows 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Meadows_Weather2 = config("3 - Spring Weather", "1 - Meadows 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Meadows_Weather3 = config("3 - Spring Weather", "1 - Meadows 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Meadows_Weather4 = config("3 - Spring Weather", "1 - Meadows 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_BlackForest_Weather1 = config("3 - Spring Weather", "2 - BlackForest 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_BlackForest_Weather2 = config("3 - Spring Weather", "2 - BlackForest 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_BlackForest_Weather3 = config("3 - Spring Weather", "2 - BlackForest 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_BlackForest_Weather4 = config("3 - Spring Weather", "2 - BlackForest 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Swamp_Weather1 = config("3 - Spring Weather", "3 - Swamp 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Swamp_Weather2 = config("3 - Spring Weather", "3 - Swamp 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Swamp_Weather3 = config("3 - Spring Weather", "3 - Swamp 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Swamp_Weather4 = config("3 - Spring Weather", "3 - Swamp 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Mountains_Weather1 = config("3 - Spring Weather", "4 - Mountains 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Mountains_Weather2 = config("3 - Spring Weather", "4 - Mountains 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Mountains_Weather3 = config("3 - Spring Weather", "4 - Mountains 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Mountains_Weather4 = config("3 - Spring Weather", "4 - Mountains 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Plains_Weather1 = config("3 - Spring Weather", "5 - Plains 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Plains_Weather2 = config("3 - Spring Weather", "5 - Plains 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Plains_Weather3 = config("3 - Spring Weather", "5 - Plains 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Plains_Weather4 = config("3 - Spring Weather", "5 - Plains 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_MistLands_Weather1 = config("3 - Spring Weather", "6 - MistLands 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_MistLands_Weather2 = config("3 - Spring Weather", "6 - MistLands 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_MistLands_Weather3 = config("3 - Spring Weather", "6 - MistLands 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_MistLands_Weather4 = config("3 - Spring Weather", "6 - MistLands 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Ocean_Weather1 = config("3 - Spring Weather", "6 - Ocean 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Ocean_Weather2 = config("3 - Spring Weather", "6 - Ocean 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Ocean_Weather3 = config("3 - Spring Weather", "6 - Ocean 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_Ocean_Weather4 = config("3 - Spring Weather", "6 - Ocean 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_AshLands_Weather1 = config("3 - Spring Weather", "7 - AshLands 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_AshLands_Weather2 = config("3 - Spring Weather", "7 - AshLands 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_AshLands_Weather3 = config("3 - Spring Weather", "7 - AshLands 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_AshLands_Weather4 = config("3 - Spring Weather", "7 - AshLands 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_DeepNorth_Weather1 = config("3 - Spring Weather", "8 - DeepNorth 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_DeepNorth_Weather2 = config("3 - Spring Weather", "8 - DeepNorth 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_DeepNorth_Weather3 = config("3 - Spring Weather", "8 - DeepNorth 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _Spring_DeepNorth_Weather4 = config("3 - Spring Weather", "8 - DeepNorth 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by spring season"); _SpringColor1 = config<Color>("3 - Spring", "Color 1", SeasonColors.SpringColors[0], "Color tint applied to prefabs"); _SpringColor2 = config<Color>("3 - Spring", "Color 2", SeasonColors.SpringColors[1], "Color tint applied to prefabs"); _SpringColor3 = config<Color>("3 - Spring", "Color 3", SeasonColors.SpringColors[2], "Color tint applied to prefabs"); _SpringColor4 = config<Color>("3 - Spring", "Color 4", SeasonColors.SpringColors[3], "Color tint applied to prefabs"); _SpringStartEffects = config("3 - Spring", "Start Effect", SpecialEffects.SpecialEffect.None, "Visual effect applied when season starts"); _SpringStopEffects = config("3 - Spring", "Stop Effect", SpecialEffects.SpecialEffect.None, "Visual effect applied when season ends"); _FallName = config("4 - Fall", "Name", "Fall", "Display name"); _FallStartMsg = config("4 - Fall", "Start Message", "Fall is upon us", "Start of the season message"); _FallTooltip = config("4 - Fall", "Tooltip", "The ground is wet", "Status effect tooltip"); _FallModifier = config("4 - Fall", "Modifier", Modifier.None, "Stats modifier"); _FallResistanceElement = config("4 - Fall", "Resistance Type", Element.None, "Element"); _FallResistanceMod = config("4 - Fall", "Resistance Modifier", DamageModifier.None, "Modifier"); _FallValue = config("4 - Fall", "Modifying value", 0f, new ConfigDescription("Value applied to modifier", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-100f, 100f), Array.Empty<object>())); _Fall_Meadows_Weather1 = config("4 - Fall Weather", "1 - Meadows 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by fall season"); _Fall_Meadows_Weather2 = config("4 - Fall Weather", "1 - Meadows 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by fall season"); _Fall_Meadows_Weather3 = config("4 - Fall Weather", "1 - Meadows 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by fall season"); _Fall_Meadows_Weather4 = config("4 - Fall Weather", "1 - Meadows 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by fall season"); _Fall_BlackForest_Weather1 = config("4 - Fall Weather", "2 - BlackForest 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_BlackForest_Weather2 = config("4 - Fall Weather", "2 - BlackForest 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_BlackForest_Weather3 = config("4 - Fall Weather", "2 - BlackForest 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_BlackForest_Weather4 = config("4 - Fall Weather", "2 - BlackForest 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Swamp_Weather1 = config("4 - Fall Weather", "3 - Swamp 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Swamp_Weather2 = config("4 - Fall Weather", "3 - Swamp 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Swamp_Weather3 = config("4 - Fall Weather", "3 - Swamp 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Swamp_Weather4 = config("4 - Fall Weather", "3 - Swamp 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Mountains_Weather1 = config("4 - Fall Weather", "4 - Mountains 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Mountains_Weather2 = config("4 - Fall Weather", "4 - Mountains 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Mountains_Weather3 = config("4 - Fall Weather", "4 - Mountains 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Mountains_Weather4 = config("4 - Fall Weather", "4 - Mountains 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Plains_Weather1 = config("4 - Fall Weather", "5 - Plains 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Plains_Weather2 = config("4 - Fall Weather", "5 - Plains 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Plains_Weather3 = config("4 - Fall Weather", "5 - Plains 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Plains_Weather4 = config("4 - Fall Weather", "5 - Plains 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_MistLands_Weather1 = config("4 - Fall Weather", "6 - MistLands 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_MistLands_Weather2 = config("4 - Fall Weather", "6 - MistLands 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_MistLands_Weather3 = config("4 - Fall Weather", "6 - MistLands 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_MistLands_Weather4 = config("4 - Fall Weather", "6 - MistLands 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Ocean_Weather1 = config("4 - Fall Weather", "6 - Ocean 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Ocean_Weather2 = config("4 - Fall Weather", "6 - Ocean 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Ocean_Weather3 = config("4 - Fall Weather", "6 - Ocean 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_Ocean_Weather4 = config("4 - Fall Weather", "6 - Ocean 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_AshLands_Weather1 = config("4 - Fall Weather", "7 - AshLands 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_AshLands_Weather2 = config("4 - Fall Weather", "7 - AshLands 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_AshLands_Weather3 = config("4 - Fall Weather", "7 - AshLands 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_AshLands_Weather4 = config("4 - Fall Weather", "7 - AshLands 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_DeepNorth_Weather1 = config("4 - Fall Weather", "8 - DeepNorth 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_DeepNorth_Weather2 = config("4 - Fall Weather", "8 - DeepNorth 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_DeepNorth_Weather3 = config("4 - Fall Weather", "8 - DeepNorth 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _Fall_DeepNorth_Weather4 = config("4 - Fall Weather", "8 - DeepNorth 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Fall season"); _FallColor1 = config<Color>("4 - Fall", "Color 1", SeasonColors.FallColors[0], "Color tint applied to prefabs"); _FallColor2 = config<Color>("4 - Fall", "Color 2", SeasonColors.FallColors[1], "Color tint applied to prefabs"); _FallColor3 = config<Color>("4 - Fall", "Color 3", SeasonColors.FallColors[2], "Color tint applied to prefabs"); _FallColor4 = config<Color>("4 - Fall", "Color 4", SeasonColors.FallColors[3], "Color tint applied to prefabs"); _FallStartEffects = config("4 - Fall", "Start Effect", SpecialEffects.SpecialEffect.None, "Visual effect applied when season starts"); _FallStopEffects = config("4 - Fall", "Stop Effect", SpecialEffects.SpecialEffect.None, "Visual effect applied when season ends"); _WinterName = config("5 - Winter", "Name", "Winter", "Display name"); _WinterStartMsg = config("5 - Winter", "Start Message", "Winter is coming!", "Start of the season message"); _WinterTooltip = config("5 - Winter", "Tooltip", "The air is cold", "Status effect tooltip"); _WinterModifier = config("5 - Winter", "Modifier", Modifier.StaminaRegen, "Stats modifier"); _WinterResistanceElement = config("5 - Winter", "Resistance Type", Element.Frost, "Element"); _WinterResistantMod = config("5 - Winter", "Resistance Modifier", DamageModifier.Resistant, "Modifier"); _WinterValue = config("5 - Winter", "Modifying value", 0.9f, new ConfigDescription("Value applied to modifier", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-100f, 100f), Array.Empty<object>())); _Winter_Meadows_Weather1 = config("5 - Winter Weather", "1 - Meadows 1", Seasonality.Seasons.Environment.Environments.WarmSnow, "Environment set by winter season."); _Winter_Meadows_Weather2 = config("5 - Winter Weather", "1 - Meadows 2", Seasonality.Seasons.Environment.Environments.None, "Environment set by winter season."); _Winter_Meadows_Weather3 = config("5 - Winter Weather", "1 - Meadows 3", Seasonality.Seasons.Environment.Environments.None, "Environment set by winter season."); _Winter_Meadows_Weather4 = config("5 - Winter Weather", "1 - Meadows 4", Seasonality.Seasons.Environment.Environments.None, "Environment set by winter season."); _Winter_BlackForest_Weather1 = config("5 - Winter Weather", "2 - BlackForest 1", Seasonality.Seasons.Environment.Environments.WarmSnow, "Environments set by Winter season"); _Winter_BlackForest_Weather2 = config("5 - Winter Weather", "2 - BlackForest 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_BlackForest_Weather3 = config("5 - Winter Weather", "2 - BlackForest 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_BlackForest_Weather4 = config("5 - Winter Weather", "2 - BlackForest 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Swamp_Weather1 = config("5 - Winter Weather", "3 - Swamp 1", Seasonality.Seasons.Environment.Environments.WarmSnow, "Environments set by Winter season"); _Winter_Swamp_Weather2 = config("5 - Winter Weather", "3 - Swamp 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Swamp_Weather3 = config("5 - Winter Weather", "3 - Swamp 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Swamp_Weather4 = config("5 - Winter Weather", "3 - Swamp 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Mountains_Weather1 = config("5 - Winter Weather", "4 - Mountains 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Mountains_Weather2 = config("5 - Winter Weather", "4 - Mountains 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Mountains_Weather3 = config("5 - Winter Weather", "4 - Mountains 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Mountains_Weather4 = config("5 - Winter Weather", "4 - Mountains 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Plains_Weather1 = config("5 - Winter Weather", "5 - Plains 1", Seasonality.Seasons.Environment.Environments.WarmSnow, "Environments set by Winter season"); _Winter_Plains_Weather2 = config("5 - Winter Weather", "5 - Plains 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Plains_Weather3 = config("5 - Winter Weather", "5 - Plains 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Plains_Weather4 = config("5 - Winter Weather", "5 - Plains 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_MistLands_Weather1 = config("5 - Winter Weather", "6 - MistLands 1", Seasonality.Seasons.Environment.Environments.WarmSnow, "Environments set by Winter season"); _Winter_MistLands_Weather2 = config("5 - Winter Weather", "6 - MistLands 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_MistLands_Weather3 = config("5 - Winter Weather", "6 - MistLands 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_MistLands_Weather4 = config("5 - Winter Weather", "6 - MistLands 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Ocean_Weather1 = config("5 - Winter Weather", "6 - Ocean 1", Seasonality.Seasons.Environment.Environments.WarmSnow, "Environments set by Winter season"); _Winter_Ocean_Weather2 = config("5 - Winter Weather", "6 - Ocean 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Ocean_Weather3 = config("5 - Winter Weather", "6 - Ocean 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_Ocean_Weather4 = config("5 - Winter Weather", "6 - Ocean 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_AshLands_Weather1 = config("5 - Winter Weather", "7 - AshLands 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_AshLands_Weather2 = config("5 - Winter Weather", "7 - AshLands 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_AshLands_Weather3 = config("5 - Winter Weather", "7 - AshLands 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_AshLands_Weather4 = config("5 - Winter Weather", "7 - AshLands 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_DeepNorth_Weather1 = config("5 - Winter Weather", "8 - DeepNorth 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_DeepNorth_Weather2 = config("5 - Winter Weather", "8 - DeepNorth 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_DeepNorth_Weather3 = config("5 - Winter Weather", "8 - DeepNorth 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _Winter_DeepNorth_Weather4 = config("5 - Winter Weather", "8 - DeepNorth 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Winter season"); _WinterColor1 = config<Color>("5 - Winter", "Color 1", SeasonColors.WinterColors[0], "Color tint applied to prefabs"); _WinterColor2 = config<Color>("5 - Winter", "Color 2", SeasonColors.WinterColors[0], "Color tint applied to prefabs"); _WinterColor3 = config<Color>("5 - Winter", "Color 3", SeasonColors.WinterColors[0], "Color tint applied to prefabs"); _WinterColor4 = config<Color>("5 - Winter", "Color 4", SeasonColors.WinterColors[0], "Color tint applied to prefabs"); _WinterStartEffects = config("5 - Winter", "Start Effect", SpecialEffects.SpecialEffect.None, "Visual effect applied when season starts"); _WinterStopEffects = config("5 - Winter", "Stop Effect", SpecialEffects.SpecialEffect.None, "Visual effect applied when season ends"); _SummerName = config("6 - Summer", "Name", "Summer", "Display name"); _SummerStartMsg = config("6 - Summer", "Start Message", "Summer has landed", "Start of the season message"); _SummerTooltip = config("6 - Summer", "Tooltip", "The air is warm", "Status effect tooltip"); _SummerModifier = config("6 - Summer", "Modifier", Modifier.MaxCarryWeight, "Stats modifier"); _SummerResistanceElement = config("6 - Summer", "Resistance Type", Element.None, "Element"); _SummerResistanceMod = config("6 - Summer", "Resistance Modifier", DamageModifier.None, "Modifier"); _SummerValue = config("6 - Summer", "Modifying value", -50f, new ConfigDescription("Value applied to modifier", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-100f, 100f), Array.Empty<object>())); _Summer_Meadows_Weather1 = config("6 - Summer Weather", "1 - Meadows 1", Seasonality.Seasons.Environment.Environments.None, "Environment set by summer season."); _Summer_Meadows_Weather2 = config("6 - Summer Weather", "1 - Meadows 2", Seasonality.Seasons.Environment.Environments.None, "Environment set by summer season."); _Summer_Meadows_Weather3 = config("6 - Summer Weather", "1 - Meadows 3", Seasonality.Seasons.Environment.Environments.None, "Environment set by summer season."); _Summer_Meadows_Weather4 = config("6 - Summer Weather", "1 - Meadows 4", Seasonality.Seasons.Environment.Environments.None, "Environment set by summer season."); _Summer_BlackForest_Weather1 = config("6 - Summer Weather", "2 - BlackForest 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_BlackForest_Weather2 = config("6 - Summer Weather", "2 - BlackForest 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_BlackForest_Weather3 = config("6 - Summer Weather", "2 - BlackForest 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_BlackForest_Weather4 = config("6 - Summer Weather", "2 - BlackForest 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Swamp_Weather1 = config("6 - Summer Weather", "3 - Swamp 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Swamp_Weather2 = config("6 - Summer Weather", "3 - Swamp 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Swamp_Weather3 = config("6 - Summer Weather", "3 - Swamp 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Swamp_Weather4 = config("6 - Summer Weather", "3 - Swamp 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Mountains_Weather1 = config("6 - Summer Weather", "6 - Mountains 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Mountains_Weather2 = config("6 - Summer Weather", "6 - Mountains 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Mountains_Weather3 = config("6 - Summer Weather", "6 - Mountains 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Mountains_Weather4 = config("6 - Summer Weather", "6 - Mountains 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Plains_Weather1 = config("6 - Summer Weather", "5 - Plains 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Plains_Weather2 = config("6 - Summer Weather", "5 - Plains 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Plains_Weather3 = config("6 - Summer Weather", "5 - Plains 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Plains_Weather4 = config("6 - Summer Weather", "5 - Plains 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_MistLands_Weather1 = config("6 - Summer Weather", "6 - MistLands 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_MistLands_Weather2 = config("6 - Summer Weather", "6 - MistLands 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_MistLands_Weather3 = config("6 - Summer Weather", "6 - MistLands 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_MistLands_Weather4 = config("6 - Summer Weather", "6 - MistLands 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Ocean_Weather1 = config("6 - Summer Weather", "6 - Ocean 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Ocean_Weather2 = config("6 - Summer Weather", "6 - Ocean 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Ocean_Weather3 = config("6 - Summer Weather", "6 - Ocean 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_Ocean_Weather4 = config("6 - Summer Weather", "6 - Ocean 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_AshLands_Weather1 = config("6 - Summer Weather", "7 - AshLands 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_AshLands_Weather2 = config("6 - Summer Weather", "7 - AshLands 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_AshLands_Weather3 = config("6 - Summer Weather", "7 - AshLands 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_AshLands_Weather4 = config("6 - Summer Weather", "7 - AshLands 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_DeepNorth_Weather1 = config("6 - Summer Weather", "8 - DeepNorth 1", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_DeepNorth_Weather2 = config("6 - Summer Weather", "8 - DeepNorth 2", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_DeepNorth_Weather3 = config("6 - Summer Weather", "8 - DeepNorth 3", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _Summer_DeepNorth_Weather4 = config("6 - Summer Weather", "8 - DeepNorth 4", Seasonality.Seasons.Environment.Environments.None, "Environments set by Summer season"); _SummerColor1 = config<Color>("6 - Summer", "Color 1", SeasonColors.SummerColors[0], "Color tint applied to prefabs"); _SummerColor2 = config<Color>("6 - Summer", "Color 2", SeasonColors.SummerColors[1], "Color tint applied to prefabs"); _SummerColor3 = config<Color>("6 - Summer", "Color 3", SeasonColors.SummerColors[2], "Color tint applied to prefabs"); _SummerColor4 = config<Color>("6 - Summer", "Color 4", SeasonColors.SummerColors[3], "Color tint applied to prefabs"); _SummerStartEffects = config("6 - Summer", "Start Effect", SpecialEffects.SpecialEffect.None, "Visual effect applied when season starts"); _SummerStopEffects = config("6 - Summer", "Stop Effect", SpecialEffects.SpecialEffect.None, "Visual effect applied when season ends"); } private void OnDestroy() { ((BaseUnityPlugin)this).Config.Save(); } private void SetupWatcher() { FileSystemWatcher fileSystemWatcher = new FileSystemWatcher(Paths.ConfigPath, ConfigFileName); fileSystemWatcher.Changed += ReadConfigValues; fileSystemWatcher.Created += ReadConfigValues; fileSystemWatcher.Renamed += ReadConfigValues; fileSystemWatcher.IncludeSubdirectories = true; fileSystemWatcher.SynchronizingObject = ThreadingHelper.SynchronizingObject; fileSystemWatcher.EnableRaisingEvents = true; } private void ReadConfigValues(object sender, FileSystemEventArgs e) { if (!File.Exists(ConfigFileFullPath)) { return; } try { SeasonalityLogger.LogDebug((object)"ReadConfigValues called"); ((BaseUnityPlugin)this).Config.Reload(); } catch { SeasonalityLogger.LogError((object)("There was an issue loading your " + ConfigFileName)); SeasonalityLogger.LogError((object)"Please check your config entries for spelling and format!"); } } private ConfigEntry<T> config<[<4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(2)] T>(string group, string name, T value, ConfigDescription description, bool synchronizedSetting = true) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown ConfigDescription val = new ConfigDescription(description.Description + (synchronizedSetting ? " [Synced with Server]" : " [Not Synced with Server]"), description.AcceptableValues, description.Tags); ConfigEntry<T> val2 = ((BaseUnityPlugin)this).Config.Bind<T>(group, name, value, val); SyncedConfigEntry<T> syncedConfigEntry = ConfigSync.AddConfigEntry<T>(val2); syncedConfigEntry.SynchronizedConfig = synchronizedSetting; return val2; } private ConfigEntry<T> config<[<4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(2)] T>(string group, string name, T value, string description, bool synchronizedSetting = true) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown return config(group, name, value, new ConfigDescription(description, (AcceptableValueBase)null, Array.Empty<object>()), synchronizedSetting); } static SeasonalityPlugin() { string configPath = Paths.ConfigPath; char directorySeparatorChar = Path.DirectorySeparatorChar; ConfigFileFullPath = configPath + directorySeparatorChar + ConfigFileName; ConnectionError = ""; SeasonalityLogger = Logger.CreateLogSource("Seasonality"); ConfigSync = new ConfigSync("RustyMods.Seasonality") { DisplayName = "Seasonality", CurrentVersion = "3.0.0", MinimumRequiredVersion = "3.0.0" }; _Season = null; _SeasonDurationDays = null; _SeasonDurationHours = null; _SeasonDurationMinutes = null; _WeatherDuration = null; _WeatherIconEnabled = null; _WeatherTimerEnabled = null; _SeasonalEffectsEnabled = null; _SpringName = null; _SpringStartMsg = null; _SpringTooltip = null; _SpringModifier = null; _SpringResistanceElement = null; _SpringResistanceMod = null; _SpringValue = null; _FallName = null; _FallStartMsg = null; _FallTooltip = null; _FallModifier = null; _FallResistanceElement = null; _FallResistanceMod = null; _FallValue = null; _WinterName = null; _WinterStartMsg = null; _WinterTooltip = null; _WinterModifier = null; _WinterResistanceElement = null; _WinterResistantMod = null; _WinterValue = null; _SummerName = null; _SummerStartMsg = null; _SummerTooltip = null; _SummerModifier = null; _SummerResistanceElement = null; _SummerResistanceMod = null; _SummerValue = null; _Fall_Meadows_Weather1 = null; _Fall_Meadows_Weather2 = null; _Fall_Meadows_Weather3 = null; _Fall_Meadows_Weather4 = null; _Fall_BlackForest_Weather1 = null; _Fall_BlackForest_Weather2 = null; _Fall_BlackForest_Weather3 = null; _Fall_BlackForest_Weather4 = null; _Fall_Swamp_Weather1 = null; _Fall_Swamp_Weather2 = null; _Fall_Swamp_Weather3 = null; _Fall_Swamp_Weather4 = null; _Fall_Mountains_Weather1 = null; _Fall_Mountains_Weather2 = null; _Fall_Mountains_Weather3 = null; _Fall_Mountains_Weather4 = null; _Fall_Plains_Weather1 = null; _Fall_Plains_Weather2 = null; _Fall_Plains_Weather3 = null; _Fall_Plains_Weather4 = null; _Fall_MistLands_Weather1 = null; _Fall_MistLands_Weather2 = null; _Fall_MistLands_Weather3 = null; _Fall_MistLands_Weather4 = null; _Fall_Ocean_Weather1 = null; _Fall_Ocean_Weather2 = null; _Fall_Ocean_Weather3 = null; _Fall_Ocean_Weather4 = null; _Fall_AshLands_Weather1 = null; _Fall_AshLands_Weather2 = null; _Fall_AshLands_Weather3 = null; _Fall_AshLands_Weather4 = null; _Fall_DeepNorth_Weather1 = null; _Fall_DeepNorth_Weather2 = null; _Fall_DeepNorth_Weather3 = null; _Fall_DeepNorth_Weather4 = null; _Winter_Meadows_Weather1 = null; _Winter_Meadows_Weather2 = null; _Winter_Meadows_Weather3 = null; _Winter_Meadows_Weather4 = null; _Winter_BlackForest_Weather1 = null; _Winter_BlackForest_Weather2 = null; _Winter_BlackForest_Weather3 = null; _Winter_BlackForest_Weather4 = null; _Winter_Swamp_Weather1 = null; _Winter_Swamp_Weather2 = null; _Winter_Swamp_Weather3 = null; _Winter_Swamp_Weather4 = null; _Winter_Mountains_Weather1 = null; _Winter_Mountains_Weather2 = null; _Winter_Mountains_Weather3 = null; _Winter_Mountains_Weather4 = null; _Winter_Plains_Weather1 = null; _Winter_Plains_Weather2 = null; _Winter_Plains_Weather3 = null; _Winter_Plains_Weather4 = null; _Winter_MistLands_Weather1 = null; _Winter_MistLands_Weather2 = null; _Winter_MistLands_Weather3 = null; _Winter_MistLands_Weather4 = null; _Winter_Ocean_Weather1 = null; _Winter_Ocean_Weather2 = null; _Winter_Ocean_Weather3 = null; _Winter_Ocean_Weather4 = null; _Winter_AshLands_Weather1 = null; _Winter_AshLands_Weather2 = null; _Winter_AshLands_Weather3 = null; _Winter_AshLands_Weather4 = null; _Winter_DeepNorth_Weather1 = null; _Winter_DeepNorth_Weather2 = null; _Winter_DeepNorth_Weather3 = null; _Winter_DeepNorth_Weather4 = null; _Spring_Meadows_Weather1 = null; _Spring_Meadows_Weather2 = null; _Spring_Meadows_Weather3 = null; _Spring_Meadows_Weather4 = null; _Spring_BlackForest_Weather1 = null; _Spring_BlackForest_Weather2 = null; _Spring_BlackForest_Weather3 = null; _Spring_BlackForest_Weather4 = null; _Spring_Swamp_Weather1 = null; _Spring_Swamp_Weather2 = null; _Spring_Swamp_Weather3 = null; _Spring_Swamp_Weather4 = null; _Spring_Mountains_Weather1 = null; _Spring_Mountains_Weather2 = null; _Spring_Mountains_Weather3 = null; _Spring_Mountains_Weather4 = null; _Spring_Plains_Weather1 = null; _Spring_Plains_Weather2 = null; _Spring_Plains_Weather3 = null; _Spring_Plains_Weather4 = null; _Spring_MistLands_Weather1 = null; _Spring_MistLands_Weather2 = null; _Spring_MistLands_Weather3 = null; _Spring_MistLands_Weather4 = null; _Spring_Ocean_Weather1 = null; _Spring_Ocean_Weather2 = null; _Spring_Ocean_Weather3 = null; _Spring_Ocean_Weather4 = null; _Spring_AshLands_Weather1 = null; _Spring_AshLands_Weather2 = null; _Spring_AshLands_Weather3 = null; _Spring_AshLands_Weather4 = null; _Spring_DeepNorth_Weather1 = null; _Spring_DeepNorth_Weather2 = null; _Spring_DeepNorth_Weather3 = null; _Spring_DeepNorth_Weather4 = null; _Summer_Meadows_Weather1 = null; _Summer_Meadows_Weather2 = null; _Summer_Meadows_Weather3 = null; _Summer_Meadows_Weather4 = null; _Summer_BlackForest_Weather1 = null; _Summer_BlackForest_Weather2 = null; _Summer_BlackForest_Weather3 = null; _Summer_BlackForest_Weather4 = null; _Summer_Swamp_Weather1 = null; _Summer_Swamp_Weather2 = null; _Summer_Swamp_Weather3 = null; _Summer_Swamp_Weather4 = null; _Summer_Mountains_Weather1 = null; _Summer_Mountains_Weather2 = null; _Summer_Mountains_Weather3 = null; _Summer_Mountains_Weather4 = null; _Summer_Plains_Weather1 = null; _Summer_Plains_Weather2 = null; _Summer_Plains_Weather3 = null; _Summer_Plains_Weather4 = null; _Summer_MistLands_Weather1 = null; _Summer_MistLands_Weather2 = null; _Summer_MistLands_Weather3 = null; _Summer_MistLands_Weather4 = null; _Summer_Ocean_Weather1 = null; _Summer_Ocean_Weather2 = null; _Summer_Ocean_Weather3 = null; _Summer_Ocean_Weather4 = null; _Summer_AshLands_Weather1 = null; _Summer_AshLands_Weather2 = null; _Summer_AshLands_Weather3 = null; _Summer_AshLands_Weather4 = null; _Summer_DeepNorth_Weather1 = null; _Summer_DeepNorth_Weather2 = null; _Summer_DeepNorth_Weather3 = null; _Summer_DeepNorth_Weather4 = null; _FallColor1 = null; _FallColor2 = null; _FallColor3 = null; _FallColor4 = null; _SpringColor1 = null; _SpringColor2 = null; _SpringColor3 = null; _SpringColor4 = null; _WinterColor1 = null; _WinterColor2 = null; _WinterColor3 = null; _WinterColor4 = null; _SummerColor1 = null; _SummerColor2 = null; _SummerColor3 = null; _SummerColor4 = null; _FallStartEffects = null; _FallStopEffects = null; _SpringStartEffects = null; _SpringStopEffects = null; _SummerStartEffects = null; _SummerStopEffects = null; _WinterStartEffects = null; _WinterStopEffects = null; _SeasonControl = null; _ModEnabled = null; _CounterVisible = null; _WeatherControl = null; _StatusEffectVisible = null; _SummerNeverCold = null; _WinterAlwaysCold = null; _ReplaceCreatureTextures = null; _LastSavedSeasonChange = null; _serverConfigLocked = null; } } [HarmonyPatch(typeof(ZNet), "OnNewConnection")] public static class RegisterAndCheckVersion { [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(1)] private static void Prefix(ZNetPeer peer, ref ZNet __instance) { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown SeasonalityPlugin.SeasonalityLogger.LogDebug((object)"Registering version RPC handler"); peer.m_rpc.Register<ZPackage>("Seasonality_VersionCheck", (Action<ZRpc, ZPackage>)RpcHandlers.RPC_Seasonality_Version); SeasonalityPlugin.SeasonalityLogger.LogInfo((object)"Invoking version check"); ZPackage val = new ZPackage(); val.Write("3.0.0"); val.Write(RpcHandlers.ComputeHashForMod().Replace("-", "")); peer.m_rpc.Invoke("Seasonality_VersionCheck", new object[1] { val }); } } [<4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(0)] [HarmonyPatch(typeof(ZNet), "RPC_PeerInfo")] [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(1)] public static class VerifyClient { private static bool Prefix(ZRpc rpc, ZPackage pkg, ref ZNet __instance) { if (!__instance.IsServer() || RpcHandlers.ValidatedPeers.Contains(rpc)) { return true; } SeasonalityPlugin.SeasonalityLogger.LogWarning((object)("Peer (" + rpc.m_socket.GetHostName() + ") never sent version or couldn't due to previous disconnect, disconnecting")); rpc.Invoke("Error", new object[1] { 3 }); return false; } private static void Postfix(ZNet __instance) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected O, but got Unknown ZRoutedRpc.instance.InvokeRoutedRPC(ZRoutedRpc.instance.GetServerPeerID(), "SeasonalityRequestAdminSync", new object[1] { (object)new ZPackage() }); } } [HarmonyPatch(typeof(FejdStartup), "ShowConnectError")] public class ShowConnectionError { [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(1)] private static void Postfix(FejdStartup __instance) { if (__instance.m_connectionFailedPanel.activeSelf) { __instance.m_connectionFailedError.fontSizeMax = 25f; __instance.m_connectionFailedError.fontSizeMin = 15f; TMP_Text connectionFailedError = __instance.m_connectionFailedError; connectionFailedError.text = connectionFailedError.text + "\n" + SeasonalityPlugin.ConnectionError; } } } [HarmonyPatch(typeof(ZNet), "Disconnect")] public static class RemoveDisconnectedPeerFromVerified { [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(1)] private static void Prefix(ZNetPeer peer, ref ZNet __instance) { if (__instance.IsServer()) { SeasonalityPlugin.SeasonalityLogger.LogInfo((object)("Peer (" + peer.m_rpc.m_socket.GetHostName() + ") disconnected, removing from validated list")); RpcHandlers.ValidatedPeers.Remove(peer.m_rpc); } } } [<4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(0)] [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(1)] public static class RpcHandlers { public static readonly List<ZRpc> ValidatedPeers = new List<ZRpc>(); public static void RPC_Seasonality_Version(ZRpc rpc, ZPackage pkg) { string text = pkg.ReadString(); string text2 = pkg.ReadString(); string text3 = ComputeHashForMod().Replace("-", ""); SeasonalityPlugin.SeasonalityLogger.LogInfo((object)("Version check, local: 3.0.0, remote: " + text)); if (text2 != text3 || text != "3.0.0") { SeasonalityPlugin.ConnectionError = "Seasonality Installed: 3.0.0 " + text3 + "\n Needed: " + text + " " + text2; if (ZNet.instance.IsServer()) { SeasonalityPlugin.SeasonalityLogger.LogWarning((object)("Peer (" + rpc.m_socket.GetHostName() + ") has incompatible version, disconnecting...")); rpc.Invoke("Error", new object[1] { 3 }); } } else if (!ZNet.instance.IsServer()) { SeasonalityPlugin.SeasonalityLogger.LogInfo((object)"Received same version from server!"); } else { SeasonalityPlugin.SeasonalityLogger.LogInfo((object)("Adding peer (" + rpc.m_socket.GetHostName() + ") to validated list")); ValidatedPeers.Add(rpc); } } public static string ComputeHashForMod() { using SHA256 sHA = SHA256.Create(); byte[] array = sHA.ComputeHash(File.ReadAllBytes(Assembly.GetExecutingAssembly().Location)); StringBuilder stringBuilder = new StringBuilder(); byte[] array2 = array; foreach (byte b in array2) { stringBuilder.Append(b.ToString("X2")); } return stringBuilder.ToString(); } } } namespace Seasonality.Seasons { [<4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(0)] [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(1)] public static class MaterialReplacer { [HarmonyPatch(typeof(ZoneSystem), "Start")] [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(0)] private static class ZoneSystemPatch { [<ef3edde2-b19f-4202-ba50-917911eeeb5f>NullableContext(1)] private static void Postfix(ZoneSystem __instance) { if (Object.op_Implicit((Object)(object)__instance)) { GetAllMaterials(); GetAllTextures(); } } } public static readonly Dictionary<string, Texture> CachedTextures = new Dictionary<string, Texture>(); public static readonly Dictionary<string, Material> CachedMaterials = new Dictionary<string, Material>(); public static readonly Dictionary<string, Material> CustomMaterials = new Dictionary<string, Material>(); private static void GetAllMaterials() { Material[] array = Resources.FindObjectsOfTypeAll<Material>(); Material[] array2 = array; foreach (Material val in array2) { if (Object.op_Implicit((Object)(object)val)) { CachedMaterials[((Object)val).name.Replace("(Instance)", "").Replace(" ", "")] = val; } } } private static void GetAllTextures() { foreach (Material value in CachedMaterials.Values) { if (!Object.op_Implicit((Object)(object)value)) { continue; } string[] texturePropertyNames = value.GetTexturePropertyNames(); if (Utils.FindTexturePropName(texturePropertyNames, "moss", out var result)) { Texture texture = value.GetTexture(result); if (Object.op_Implicit((Object)(object)texture)) { CachedTextures[((Object)value).name.Replace("(Instance)", "").Replace(" ", "") + "_moss"] = texture; } } if (Utils.FindTexturePropName(texturePropertyNames, "main", out var result2)) { CachedTextures[((Object)value).name.Replace("(Instance)", "").Replace(" ", "")] = value.GetTexture(result2); } } } private static void SetMossTexture(string materialName, Texture originalTex) { if (!CachedTextures.TryGetValue("Pillar_snow_mat_moss", out var value) || !CachedTextures.TryGetValue("rock_heath_moss", out var value2) || !CachedMaterials.TryGetValue(materialName, out var value3)) { return; } string[] texturePropertyNames = value3.GetTexturePropertyNames(); if (Utils.FindTexturePropName(texturePropertyNames, "moss", out var result)) { switch (SeasonalityPlugin._Season.Value) { case SeasonalityPlugin.Season.Winter: value3.SetTexture(result, value); break; case SeasonalityPlugin.Season.Fall: value3.SetTexture(result, value2); break; default: value3.SetTexture(result, originalTex); break; } } } private static void SetCustomMossTexture(string materialName, Texture originalTex) { if (!CachedTextures.TryGetValue("Pillar_snow_mat_moss", out var value) || !CachedTextures.TryGetValue("rock_heath_moss", out var value2) || !CustomMaterials.TryGetValue(materialName, out var value3)) { return; } string[] texturePropertyNames = value3.GetTexturePropertyNames(); if (Utils.FindTexturePropName(texturePropertyNames, "moss", out var result)) { switch (SeasonalityPlugin._Season.Value) { case SeasonalityPlugin.Season.Winter: value3.SetTexture(result, value); break; case SeasonalityPlugin.Season.Fall: value3.SetTexture(result, value2); break; default: value3.SetTexture(result, originalTex); break; } } } private static void SetMainTexture(string materialName, [<4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(2)] Texture tex) { if (CachedMaterials.TryGetValue(materialName, out var value)) { string[] texturePropertyNames = value.GetTexturePropertyNames(); if (Utils.FindTexturePropName(texturePropertyNames, "main", out var result)) { value.SetTexture(result, tex); } } } private static void SetCustomMainTexture(string materialName, [<4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(2)] Texture tex, int index = 0) { //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) if (!CustomMaterials.TryGetValue(materialName, out var value)) { SeasonalityPlugin.SeasonalityLogger.LogWarning((object)("failed to get custom material for = " + materialName)); return; } string[] texturePropertyNames = value.GetTexturePropertyNames(); if (Utils.FindTexturePropName(texturePropertyNames, "main", out var result)) { value.SetTexture(result, tex); SeasonalityPlugin.Season value2 = SeasonalityPlugin._Season.Value; SeasonalityPlugin.Season season = value2; if (season == SeasonalityPlugin.Season.Fall) { value.color = SeasonColors.FallColors[index]; } else { value.color = Color.white; } } } public static void ModifyCachedMaterials() { ModifyMossMaterials(); ModifyCreatures(); ModifyVegetation(); ModifyCustomMaterials(); ModifyPieceMaterials(); } private static void ModifyPieceMaterials() { Dictionary<string, CustomTextures.PieceDirectories> dictionary = new Dictionary<string, CustomTextures.PieceDirectories> { { "straw_roof", CustomTextures.PieceDirectories.Straw }, { "straw_roof_alpha", CustomTextures.PieceDirectories.Straw }, { "RoofShingles", CustomTextures.PieceDirectories.DarkWood }, { "GoblinVillage_Cloth", CustomTextures.PieceDirectories.GoblinVillage }, { "GoblinVillage", CustomTextures.PieceDirectories.GoblinVillage } }; Dictionary<string, CustomTextures.PieceDirectories> dictionary2 = new Dictionary<string, CustomTextures.PieceDirectories> { { "straw_roof_worn", CustomTextures.PieceDirectories.Straw }, { "straw_roof_worn_alpha", CustomTextures.PieceDirectories.Straw }, { "RoofShingles_worn", CustomTextures.PieceDirectories.DarkWood }, { "GoblinVillage", CustomTextures.PieceDirectories.GoblinVillage } }; Dictionary<string, CustomTextures.PieceDirectories> dictionary3 = new Dictionary<string, CustomTextures.PieceDirectories> { { "straw_roof_corner_alpha", CustomTextures.PieceDirectories.Straw } }; Dictionary<string, CustomTextures.PieceDirectories> dictionary4 = new Dictionary<string, CustomTextures.PieceDirectories> { { "straw_roof_corner_worn_alpha", CustomTextures.PieceDirectories.Straw } }; foreach (KeyValuePair<string, CustomTextures.PieceDirectories> item in dictionary) { Texture customTexture = GetCustomTexture(item.Value, item.Key); if (Object.op_Implicit((Object)(object)customTexture)) { SetMainTexture(item.Key, customTexture); } } foreach (KeyValuePair<string, CustomTextures.PieceDirectories> item2 in dictionary2) { Texture customTexture2 = GetCustomTexture(item2.Value, item2.Key, isWorn: true); if (Object.op_Implicit((Object)(object)customTexture2)) { SetMainTexture(item2.Key, customTexture2); } } foreach (KeyValuePair<string, CustomTextures.PieceDirectories> item3 in dictionary3) { Texture customTexture3 = GetCustomTexture(item3.Value, item3.Key, isWorn: false, isCorner: true); if (Object.op_Implicit((Object)(object)customTexture3)) { SetMainTexture(item3.Key, customTexture3); } } foreach (KeyValuePair<string, CustomTextures.PieceDirectories> item4 in dictionary4) { Texture customTexture4 = GetCustomTexture(item4.Value, item4.Key, isWorn: true, isCorner: true); if (Object.op_Implicit((Object)(object)customTexture4)) { SetMainTexture(item4.Key, customTexture4); } } } private static void ModifyMossMaterials() { if (!CachedTextures.TryGetValue("rock_heath_moss", out var value) || !CachedTextures.TryGetValue("swamptree_log_moss", out var value2) || !CachedTextures.TryGetValue("runetablet_moss", out var value3) || !CachedTextures.TryGetValue("finewood_log_worn_moss", out var value4) || !CachedTextures.TryGetValue("dvergr_oak_worn_creep_mat_moss", out var value5) || !CachedTextures.TryGetValue("rock1_copper_moss", out var value6) || !CachedTextures.TryGetValue("yggdrasil_branch_moss", out var value7)) { return; } Dictionary<string, Texture> dictionary = new Dictionary<string, Texture> { { "Altar_mat", value }, { "barnacle", value2 }, { "beech_bark", value3 }, { "beech_bark_small", value3 }, { "bossstone_eikthyr", value3 }, { "bossstone_theelder", value3 }, { "bossstone_bonemass", value3 }, { "bossstone_dragonqueen_mat", value3 }, { "bossstone_yagluth_mat", value3 }, { "bossstone_seekerqueen_mat", value3 }, { "corgihare", value3 }, { "Dirtwall", value3 }, { "dvergr_oak_worn_creep_mat", value5 }, { "dvergrrunestone_mat", value5 }, { "DvergrTownPiecesWornCreep_Mat", value5 }, { "FingerRock", value }, { "finewood_log_worn", value4 }, { "finewood_log_destruction", value4 }, { "finewood_log_broken", value4 }, { "Firetree_oldlog", value3 }, { "heathrock", value }, { "hugeskull", value2 }, { "leviathan", value2 }, { "leviathan_rock_4", value2 }, { "NestRock", value4 }, { "oak_bark", value4 }, { "oak_bark_quarter", value4 }, { "ObsidianRock_mat", value3 }, { "rock1", value6 }, { "rock1_copper", value6 }, { "rock1_mountain", value3 }, { "rock3_silver", value6 }, { "rock4_coast", value3 }, { "rock_heath", value }, { "Rocks_3_roughness", value6 }, { "Rocks_4_roughness", value3 }, { "Rocks_4_roughness_interior", value3 }, { "Rocks_4_roughness_plains", value }, { "roundlog", value4 }, { "runestone", value3 }, { "runetablet", value3 }, { "runetablet_plains", value }, { "runetablet_vegvisir", value3 }, { "Shoot_Stump_mat", value4 }, { "Shoot_Trunk_mat", value4 }, { "Stalagtite_mat", value3 }, { "startplatform", value3 }, { "statue1", value2 }, { "stone_huge", value3 }, { "stone_large", value4 }, { "stone_large_interior", value4 }, { "stoneblock", value3 }, { "stonechest", value4 }, { "stonechest_plains", value }, { "stonechest_sunkencrypt", value }, { "stonekit_floor_interior", value3 }, { "stonekit_stone_mat", value4 }, { "stonepillar", value3 }, { "stoneslab", value4 }, { "stonewall", value3 }, { "stonewall_1", value3 }, { "stump", value3 }, { "sunkenkit_stone_mat_interior1", value3 }, { "sunkenkit_stone_mat_interior3", value3 }, { "sunkenkit_stone_mat_interior4", value3 }, { "sunkenkit_stone_mat_interior5", value3 }, { "sunkenkit_stone_mat_interior_triplanar", value3 }, { "swamptree1_bark", value2 }, { "swamptree2_bark", value2 }, { "swamptree2_barkInfested", value2 }, { "swamptree2_log", value2 }, { "swamptree_log", value2 }, { "swamptree_stump", value2 }, { "Tradaerrune_Mat", value3 }, { "wood_pile_Broken", value4 }, { "wood_pile_Worn", value4 }, { "yggdrasil_branch", value7 } }; foreach (KeyValuePair<string, Texture> item in dictionary) { SetMossTexture(item.Key, item.Value); } } private static void ModifyCustomMossMaterials() { if (!CachedTextures.TryGetValue("runetablet_moss", out var value) || !CachedTextures.TryGetValue("yggdrasil_branch_moss", out var value2)) { return; } Dictionary<string, Texture> dictionary = new Dictionary<string, Texture> { { "custom_beech_bark_small_0", value }, { "custom_beech_bark_small_1", value }, { "custom_beech_bark_small_2", value }, { "custom_beech_bark_small_3", value }, { "custom_beech_bark_0", value }, { "custom_beech_bark_1", value }, { "custom_beech_bark_2", value }, { "custom_beech_bark_3", value }, { "custom_birch_bark_0", value }, { "custom_birch_bark_1", value }, { "custom_birch_bark_2", value }, { "custom_birch_bark_3", value }, { "custom_oak_bark_0", value }, { "custom_oak_bark_1", value }, { "custom_oak_bark_2", value }, { "custom_oak_bark_3", value }, { "custom_Shoot_Trunk_mat_0", value2 }, { "custom_Shoot_Trunk_mat_1", value2 }, { "custom_Shoot_Trunk_mat_2", value2 }, { "custom_Shoot_Trunk_mat_3", value2 } }; foreach (KeyValuePair<string, Texture> item in dictionary) { SetCustomMossTexture(item.Key, item.Value); } } private static void ModifyCreatures() { Dictionary<string, CustomTextures.CreatureDirectories> dictionary = new Dictionary<string, CustomTextures.CreatureDirectories> { { "lox", CustomTextures.CreatureDirectories.Lox }, { "troll", CustomTextures.CreatureDirectories.Troll }, { "Hare_mat", CustomTextures.CreatureDirectories.Hare }, { "Feasting_mat", CustomTextures.CreatureDirectories.Tick }, { "SeaSerpent_mat", CustomTextures.CreatureDirectories.Serpent }, { "swampfish", CustomTextures.CreatureDirectories.Leech }, { "Deathsquito_mat", CustomTextures.CreatureDirectories.Deathsquito }, { "seagal", CustomTextures.CreatureDirectories.Gull }, { "neck", CustomTextures.CreatureDirectories.Neck }, { "wraith", CustomTextures.CreatureDirectories.Wraith }, { "blob", CustomTextures.CreatureDirectories.Blob }, { "blob_elite", CustomTextures.CreatureDirectories.Oozer }, { "gjall_mat", CustomTextures.CreatureDirectories.Gjall } }; foreach (KeyValuePair<string, CustomTextures.CreatureDirectories> item in dictionary) { Texture customTexture = GetCustomTexture(item.Value, item.Key); if (Object.op_Implicit((Object)(object)customTexture)) { SetMainTexture(item.Key, customTexture); } } } private static void ModifyVegetation() { Dictionary<string, CustomTextures.VegDirectories> dictionary = new Dictionary<string, CustomTextures.VegDirectories> { { "beech_leaf", CustomTextures.VegDirectories.Beech }, { "beech_leaf_sapling", CustomTextures.VegDirectories.BeechSmall }, { "beech_leaf_small", CustomTextures.VegDirectories.BeechSmall }, { "beech_particle", CustomTextures.VegDirectories.Beech }, { "birch_leaf", CustomTextures.VegDirectories.Birch }, { "birch_leaf_aut", CustomTextures.VegDirectories.Birch }, { "birch_particle", CustomTextures.VegDirectories.Birch }, { "birch_seeds_leaf", CustomTextures.VegDirectories.Birch }, { "oak_leaf", CustomTextures.VegDirectories.Oak }, { "oak_particle", CustomTextures.VegDirectories.Oak }, { "Pine_tree_small", CustomTextures.VegDirectories.FirSmall }, { "Pine_tree", CustomTextures.VegDirectories.Fir }, { "Pine_tree_small_dead", CustomTextures.VegDirectories.FirDead }, { "branch_dead_particle", CustomTextures.VegDirectories.FirDeadParticles }, { "Pine_tree_xmas", CustomTextures.VegDirectories.FirSmall }, { "branch_particle", CustomTextures.VegDirectories.FirParticles }, { "PineTree_01", CustomTextures.VegDirectories.Pine }, { "PineCone", CustomTextures.VegDirectories.PineParticles }, { "yggdrasil_branch_leafs", CustomTextures.VegDirectories.YggaShoot }, { "Shoot_Leaf_mat", CustomTextures.VegDirectories.YggaShoot }, { "shoot_leaf_particle", CustomTextures.VegDirectories.YggaShoot }, { "swamptree1_branch", CustomTextures.VegDirectories.SwampTrees }, { "swamptree2_branch", CustomTextures.VegDirectories.SwampGrass }, { "Bush01", CustomTextures.VegDirectories.Bushes }, { "Bush01_blueberry", CustomTextures.VegDirectories.Bushes }, { "Bush01_heath", CustomTextures.VegDirectories.Bushes }, { "Bush01_raspberry", CustomTextures.VegDirectories.Bushes }, { "Bush02_en", CustomTextures.VegDirectories.PlainsBush }, { "Cloudberrybush", CustomTextures.VegDirectories.CloudberryBush }, { "Vines_Mat", CustomTextures.VegDirectories.Vines }, { "VinesBranch_mat", CustomTextures.VegDirectories.Vines }, { "shrub", CustomTextures.VegDirectories.Shrub }, { "shrub_heath", CustomTextures.VegDirectories.Shrub }, { "shrub2_leafparticle", CustomTextures.VegDirectories.ShrubParticles }, { "shrub2_leafparticle_heath", CustomTextures.VegDirectories.ShrubParticles } }; foreach (KeyValuePair<string, CustomTextures.VegDirectories> item in dictionary) { Texture customTexture = GetCustomTexture(item.Value, item.Key); if (Object.op_Implicit((Object)(object)customTexture)) { SetMainTexture(item.Key, customTexture); } } } private static void ModifyCustomMaterials() { Dictionary<string, CustomTextures.VegDirectories> dictionary = new Dictionary<string, CustomTextures.VegDirectories> { { "custom_beech_leaf_small_0", CustomTextures.VegDirectories.BeechSmall }, { "custom_beech_leaf_small_1", CustomTextures.VegDirectories.BeechSmall }, { "custom_beech_leaf_small_2", CustomTextures.VegDirectories.BeechSmall }, { "custom_beech_leaf_small_3", CustomTextures.VegDirectories.BeechSmall }, { "custom_beech_leaf_0", CustomTextures.VegDirectories.Beech }, { "custom_beech_leaf_1", CustomTextures.VegDirectories.Beech }, { "custom_beech_leaf_2", CustomTextures.VegDirectories.Beech }, { "custom_beech_leaf_3", CustomTextures.VegDirectories.Beech }, { "custom_birch_leaf_0", CustomTextures.VegDirectories.Birch }, { "custom_birch_leaf_1", CustomTextures.VegDirectories.Birch }, { "custom_birch_leaf_2", CustomTextures.VegDirectories.Birch }, { "custom_birch_leaf_3", CustomTextures.VegDirectories.Birch }, { "custom_birch_leaf_aut_0", CustomTextures.VegDirectories.Birch }, { "custom_birch_leaf_aut_1", CustomTextures.VegDirectories.Birch }, { "custom_birch_leaf_aut_2", CustomTextures.VegDirectories.Birch }, { "custom_birch_leaf_aut_3", CustomTextures.VegDirectories.Birch }, { "custom_Bush01_blueberry_0", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_blueberry_1", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_blueberry_2", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_blueberry_3", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_0", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_1", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_2", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_3", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_heath_0", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_heath_1", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_heath_2", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_heath_3", CustomTextures.VegDirectories.Bushes }, { "custom_Bush02_en_0", CustomTextures.VegDirectories.PlainsBush }, { "custom_Bush02_en_1", CustomTextures.VegDirectories.PlainsBush }, { "custom_Bush02_en_2", CustomTextures.VegDirectories.PlainsBush }, { "custom_Bush02_en_3", CustomTextures.VegDirectories.PlainsBush }, { "custom_oak_leaf_0", CustomTextures.VegDirectories.Oak }, { "custom_oak_leaf_1", CustomTextures.VegDirectories.Oak }, { "custom_oak_leaf_2", CustomTextures.VegDirectories.Oak }, { "custom_oak_leaf_3", CustomTextures.VegDirectories.Oak }, { "custom_Bush01_raspberry_0", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_raspberry_1", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_raspberry_2", CustomTextures.VegDirectories.Bushes }, { "custom_Bush01_raspberry_3", CustomTextures.VegDirectories.Bushes }, { "custom_shrub_0", CustomTextures.VegDirectories.Shrub }, { "custom_shrub_1", CustomTextures.VegDirectories.Shrub }, { "custom_shrub_2", CustomTextures.VegDirectories.Shrub }, { "custom_shrub_3", CustomTextures.VegDirectories.Shrub }, { "custom_shrub_heath_0", CustomTextures.VegDirectories.Shrub }, { "custom_shrub_heath_1", CustomTextures.VegDirectories.Shrub }, { "custom_shrub_heath_2", CustomTextures.VegDirectories.Shrub }, { "custom_shrub_heath_3", CustomTextures.VegDirectories.Shrub }, { "custom_Vines_Mat_0", CustomTextures.VegDirectories.Vines }, { "custom_Vines_Mat_1", CustomTextures.VegDirectories.Vines }, { "custom_Vines_Mat_2", CustomTextures.VegDirectories.Vines }, { "custom_Vines_Mat_3", CustomTextures.VegDirectories.Vines }, { "custom_Shoot_Leaf_mat_0", CustomTextures.VegDirectories.YggaShoot }, { "custom_Shoot_Leaf_mat_1", CustomTextures.VegDirectories.YggaShoot }, { "custom_Shoot_Leaf_mat_2", CustomTextures.VegDirectories.YggaShoot }, { "custom_Shoot_Leaf_mat_3", CustomTextures.VegDirectories.YggaShoot } }; foreach (KeyValuePair<string, CustomTextures.VegDirectories> item in dictionary) { string originalMaterialName = item.Key.Replace("custom_", "").Replace("_0", "").Replace("_1", "") .Replace("_2", "") .Replace("_3", ""); int index = int.Parse(item.Key.Substring(item.Key.Length - 1)); Texture customTexture = GetCustomTexture(item.Value, originalMaterialName); SetCustomMainTexture(item.Key, customTexture, index); } ModifyCustomMossMaterials(); } [return: <4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(2)] private static Texture GetCustomTexture(CustomTextures.CreatureDirectories directory, string originalMaterialName) { Texture customTexture = Utils.GetCustomTexture(directory, SeasonalityPlugin._Season.Value); CachedTextures.TryGetValue(originalMaterialName, out var value); return Object.op_Implicit((Object)(object)customTexture) ? customTexture : (Object.op_Implicit((Object)(object)value) ? value : null); } [return: <4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(2)] private static Texture GetCustomTexture(CustomTextures.PieceDirectories directory, string originalMaterialName, bool isWorn = false, bool isCorner = false) { string text = SeasonalityPlugin._Season.Value.ToString(); string text2 = SeasonalityPlugin._Season.Value.ToString() + "_worn"; string text3 = SeasonalityPlugin._Season.Value.ToString() + "_corner"; string text4 = SeasonalityPlugin._Season.Value.ToString() + "_corner_worn"; string key = (isWorn ? text2 : text); if (isCorner) { key = (isWorn ? text4 : text3); } Texture customTexture = Utils.GetCustomTexture(directory, key); CachedTextures.TryGetValue(originalMaterialName, out var value); return Object.op_Implicit((Object)(object)customTexture) ? customTexture : (Object.op_Implicit((Object)(object)value) ? value : null); } [return: <4edcec42-b8ad-494f-8522-113afc165eb1>Nullable(2)] private static Texture GetCustomTexture(CustomTextures.VegDirectories directory, string originalMaterialName, bool isBark = false) { Texture customTexture = Utils.GetCustomTexture(directory, isBark ? (SeasonalityPlugin._Season.Value.ToString() + "_bark") : SeasonalityPlugin._Season.Value.ToString()); CachedTextures.TryGetValue(originalMaterialName, out var value); return Object.op_Implicit((Object)(object)customTexture) ? customTexture : (Object.op_Implicit((Object)(object)value) ? value : null); } } public static class ConsoleCommands { [HarmonyPatch(typeof(Terminal), "InitTerminal")] private static class TerminalInitPatch { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static ConsoleEventFailable <>9__0_0; public static ConsoleOptionsFetcher <>9__0_1; public static ConsoleEventFailable <>9__1_0; public static ConsoleOptionsFetcher <>9__1_1; public static ConsoleEventFailable <>9__1_2; public static ConsoleOptionsFetcher <>9__1_3; public static ConsoleEventFailable <>9__1_9; public static ConsoleEvent <>9__1_4; public static ConsoleEventFailable <>9__1_5; public static ConsoleEventFailable <>9__1_6; public static ConsoleEventFailable <>9__1_7; public static ConsoleEventFailable <>9__1_8; internal object <Postfix>b__0_0(ConsoleEventArgs args) { if (args.Length < 2) { return false; } List<string> list = new List<string>(); foreach (KeyValuePair<string, ConsoleCommand> seasonCommand in SeasonCommands) { list.Add(seasonCommand.Value.Command + " - " + seasonCommand.Value.Description); } list.Sort(); foreach (string item in list) { SeasonalityPlugin.SeasonalityLogger.LogInfo((object)item); } return true; } internal List<string> <Postfix>b__0_1() { return new List<string> { "help" }; } internal object <ConfigCommands>b__1_0(ConsoleEventArgs args) { if (args.Length < 2) { return false; } SeasonalityPlugin._SeasonControl.Value = SeasonalityPlugin.Toggle.On; switch (args[1]) { case "summer": SeasonalityPlugin._Season.Value = SeasonalityPlugin.Season.Summer; break; case "fall": SeasonalityPlugin._Season.Value = SeasonalityPlugin.Season.Fall; break; case "winter": SeasonalityPlugin._Season.Value = SeasonalityPlugin.Season.Winter; break; case "spring": SeasonalityPlugin._Season.Value = SeasonalityPlugin.Season.Spring; break; } return true; } internal List<string> <ConfigCommands>b__1_1() { return new List<string> { "summer", "fall", "winter", "spring" }; } internal object <ConfigCommands>b__1_2(ConsoleEventArgs args) { if (args.Length < 2) { return false; } string t