Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of OreMines v1.2.0
OreMines.dll
Decompiled 6 months 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.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using HarmonyLib; using ItemManager; using JetBrains.Annotations; using LocalizationManager; using LocationManager; using Microsoft.CodeAnalysis; using OreMines.Functions; using ServerSync; using SoftReferenceableAssets; using TMPro; using UnityEngine; using YamlDotNet.Core; using YamlDotNet.Core.Events; using YamlDotNet.Core.Tokens; using YamlDotNet.Helpers; using YamlDotNet.Serialization; 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: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("blacks7ar")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.2.0")] [assembly: AssemblyInformationalVersion("1.2.0")] [assembly: AssemblyProduct("OreMines")] [assembly: AssemblyTitle("OreMines")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.2.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace OreMines { [BepInPlugin("blacks7ar.OreMines", "OreMines", "1.2.0")] public class Plugin : BaseUnityPlugin { public enum Toggle { On = 1, Off = 0 } private const string modGUID = "blacks7ar.OreMines"; public const string modName = "OreMines"; public const string modAuthor = "blacks7ar"; public const string modVersion = "1.2.0"; public const string modLink = "https://thunderstore.io/c/valheim/p/blacks7ar/OreMines/"; private static readonly Harmony _harmony = new Harmony("blacks7ar.OreMines"); private static readonly ConfigSync _configSync = new ConfigSync("blacks7ar.OreMines") { DisplayName = "OreMines", CurrentVersion = "1.2.0", MinimumRequiredVersion = "1.2.0", ModRequired = true }; private static ConfigEntry<Toggle> _serverConfigLocked; public static ConfigEntry<int> _resetDay; public static ConfigEntry<Toggle> _enableReset; public static ConfigEntry<float> _oreSpawnChance; public static ConfigEntry<Toggle> _consumableKeys; public static ConfigEntry<Toggle> _stackableKeys; public static ConfigEntry<int> _coalDepositDropMin; public static ConfigEntry<int> _coalDepositDropMax; public static ConfigEntry<int> _copperDepositDropMin; public static ConfigEntry<int> _copperDepositDropMax; public static ConfigEntry<int> _flintDepositDropMin; public static ConfigEntry<int> _flintDepositDropMax; public static ConfigEntry<int> _ironDepositDropMin; public static ConfigEntry<int> _ironDepositDropMax; public static ConfigEntry<int> _silverDepositDropMin; public static ConfigEntry<int> _silverDepositDropMax; public static ConfigEntry<int> _tinDepositDropMin; public static ConfigEntry<int> _tinDepositDropMax; public static ConfigEntry<int> _blackMetalDepositDropMin; public static ConfigEntry<int> _blackMetalDepositDropMax; public static ConfigEntry<int> _flametalDepositDropMin; public static ConfigEntry<int> _flametalDepositDropMax; public static ConfigEntry<float> _coalDepositDropChance; public static ConfigEntry<float> _copperDepositDropChance; public static ConfigEntry<float> _flintDepositDropChance; public static ConfigEntry<float> _ironDepositDropChance; public static ConfigEntry<float> _silverDepositDropChance; public static ConfigEntry<float> _tinDepositDropChance; public static ConfigEntry<float> _blackMetalDepositDropChance; public static ConfigEntry<float> _flametalDepositDropChance; public static ConfigEntry<Toggle> _enableFlintMine; public static ConfigEntry<Biome> _flintMineBiome; public static ConfigEntry<int> _flintMineCount; public static ConfigEntry<float> _flintMineMinDistanceFromGroup; public static ConfigEntry<float> _flintMineSpawnAltitudeMin; public static ConfigEntry<float> _flintMineSpawnAltitudeMax; public static ConfigEntry<float> _flintMineSpawnDistanceMin; public static ConfigEntry<float> _flintMineSpawnDistanceMax; public static ConfigEntry<Toggle> _enableCopperMine; public static ConfigEntry<Biome> _copperMineBiome; public static ConfigEntry<int> _copperMineCount; public static ConfigEntry<float> _copperMineMinDistanceFromGroup; public static ConfigEntry<float> _copperMineSpawnAltitudeMin; public static ConfigEntry<float> _copperMineSpawnAltitudeMax; public static ConfigEntry<float> _copperMineSpawnDistanceMin; public static ConfigEntry<float> _copperMineSpawnDistanceMax; public static ConfigEntry<Toggle> _enableTinMine; public static ConfigEntry<Biome> _tinMineBiome; public static ConfigEntry<int> _tinMineCount; public static ConfigEntry<float> _tinMinDistanceFromGroup; public static ConfigEntry<float> _tinMineSpawnAltitudeMin; public static ConfigEntry<float> _tinMineSpawnAltitudeMax; public static ConfigEntry<float> _tinMineSpawnDistanceMin; public static ConfigEntry<float> _tinMineSpawnDistanceMax; public static ConfigEntry<Toggle> _enableCoalMine; public static ConfigEntry<Biome> _coalMineBiome; public static ConfigEntry<int> _coalMineCount; public static ConfigEntry<float> _coalMineMinDistanceFromGroup; public static ConfigEntry<float> _coalMineSpawnAltitudeMin; public static ConfigEntry<float> _coalMineSpawnAltitudeMax; public static ConfigEntry<float> _coalMineSpawnDistanceMin; public static ConfigEntry<float> _coalMineSpawnDistanceMax; public static ConfigEntry<Toggle> _enableIronMine; public static ConfigEntry<Biome> _ironMineBiome; public static ConfigEntry<int> _ironMineCount; public static ConfigEntry<float> _ironMineMinDistanceFromGroup; public static ConfigEntry<float> _ironMineSpawnAltitudeMin; public static ConfigEntry<float> _ironMineSpawnAltitudeMax; public static ConfigEntry<float> _ironMineSpawnDistanceMin; public static ConfigEntry<float> _ironMineSpawnDistanceMax; public static ConfigEntry<Toggle> _enableSilverMine; public static ConfigEntry<Biome> _silverMineBiome; public static ConfigEntry<int> _silverMineCount; public static ConfigEntry<float> _silverMineMinDistanceFromGroup; public static ConfigEntry<float> _silverMineSpawnAltitudeMin; public static ConfigEntry<float> _silverMineSpawnAltitudeMax; public static ConfigEntry<float> _silverMineSpawnDistanceMin; public static ConfigEntry<float> _silverMineSpawnDistanceMax; public static ConfigEntry<Toggle> _enableBlackMetalMine; public static ConfigEntry<Biome> _blackMetalMineBiome; public static ConfigEntry<int> _blackMetalMineCount; public static ConfigEntry<float> _blackMetalMineMinDistanceFromGroup; public static ConfigEntry<float> _blackMetalMineSpawnAltitudeMin; public static ConfigEntry<float> _blackMetalMineSpawnAltitudeMax; public static ConfigEntry<float> _blackMetalMineSpawnDistanceMin; public static ConfigEntry<float> _blackMetalMineSpawnDistanceMax; public static ConfigEntry<Toggle> _enableFlametalMine; public static ConfigEntry<Biome> _flametalMineBiome; public static ConfigEntry<int> _flametalMineCount; public static ConfigEntry<float> _flametalMineMinDistanceFromGroup; public static ConfigEntry<float> _flametalMineSpawnAltitudeMin; public static ConfigEntry<float> _flametalMineSpawnAltitudeMax; public static ConfigEntry<float> _flametalMineSpawnDistanceMin; public static ConfigEntry<float> _flametalMineSpawnDistanceMax; private const string _generalSection = "02- General"; private const string _flintSection = "03- Flint Mine"; private const string _copperSection = "04- Copper Mine"; private const string _tinSection = "05- Tin Mine"; private const string _ironSection = "06- Iron Mine"; private const string _coalSection = "07- Coal Mine"; private const string _silverSection = "08- Silver Mine"; private const string _blackMetalSection = "09- BlackMetal Mine"; private const string _flametalSection = "10- Flametal Mine"; private ConfigEntry<T> config<T>(string group, string name, T value, ConfigDescription description, bool synchronizedConfig = true) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown ConfigDescription val = new ConfigDescription(description.Description + (synchronizedConfig ? " [Synced with Server]" : " [Not Synced with Server]"), description.AcceptableValues, description.Tags); ConfigEntry<T> val2 = ((BaseUnityPlugin)this).Config.Bind<T>(group, name, value, val); _configSync.AddConfigEntry<T>(val2).SynchronizedConfig = synchronizedConfig; return val2; } public void Awake() { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Expected O, but got Unknown //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Expected O, but got Unknown //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Expected O, but got Unknown //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Expected O, but got Unknown //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Expected O, but got Unknown //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Expected O, but got Unknown //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Expected O, but got Unknown //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Expected O, but got Unknown //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Expected O, but got Unknown //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Expected O, but got Unknown //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Expected O, but got Unknown //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Expected O, but got Unknown //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Expected O, but got Unknown //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Expected O, but got Unknown //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Expected O, but got Unknown //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Expected O, but got Unknown //IL_0321: Unknown result type (might be due to invalid IL or missing references) //IL_032c: Expected O, but got Unknown //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Expected O, but got Unknown //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Expected O, but got Unknown //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03b4: Expected O, but got Unknown //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03e2: Expected O, but got Unknown //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Expected O, but got Unknown //IL_0430: Unknown result type (might be due to invalid IL or missing references) //IL_043b: Expected O, but got Unknown //IL_045b: Unknown result type (might be due to invalid IL or missing references) //IL_0466: Expected O, but got Unknown //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_0491: Expected O, but got Unknown //IL_04b1: Unknown result type (might be due to invalid IL or missing references) //IL_04bc: Expected O, but got Unknown //IL_04dc: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Expected O, but got Unknown //IL_0503: Unknown result type (might be due to invalid IL or missing references) //IL_050e: Expected O, but got Unknown //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_0535: Expected O, but got Unknown //IL_0552: Unknown result type (might be due to invalid IL or missing references) //IL_055d: Expected O, but got Unknown //IL_058b: Unknown result type (might be due to invalid IL or missing references) //IL_0596: Expected O, but got Unknown //IL_05b9: Unknown result type (might be due to invalid IL or missing references) //IL_05c4: Expected O, but got Unknown //IL_05e7: Unknown result type (might be due to invalid IL or missing references) //IL_05f2: Expected O, but got Unknown //IL_0612: Unknown result type (might be due to invalid IL or missing references) //IL_061d: Expected O, but got Unknown //IL_063d: Unknown result type (might be due to invalid IL or missing references) //IL_0648: Expected O, but got Unknown //IL_0668: Unknown result type (might be due to invalid IL or missing references) //IL_0673: Expected O, but got Unknown //IL_0693: Unknown result type (might be due to invalid IL or missing references) //IL_069e: Expected O, but got Unknown //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c9: Expected O, but got Unknown //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06f0: Expected O, but got Unknown //IL_070c: Unknown result type (might be due to invalid IL or missing references) //IL_0717: Expected O, but got Unknown //IL_0734: Unknown result type (might be due to invalid IL or missing references) //IL_073f: Expected O, but got Unknown //IL_076d: Unknown result type (might be due to invalid IL or missing references) //IL_0778: Expected O, but got Unknown //IL_079b: Unknown result type (might be due to invalid IL or missing references) //IL_07a6: Expected O, but got Unknown //IL_07c9: Unknown result type (might be due to invalid IL or missing references) //IL_07d4: Expected O, but got Unknown //IL_07f4: Unknown result type (might be due to invalid IL or missing references) //IL_07ff: Expected O, but got Unknown //IL_081f: Unknown result type (might be due to invalid IL or missing references) //IL_082a: Expected O, but got Unknown //IL_084a: Unknown result type (might be due to invalid IL or missing references) //IL_0855: Expected O, but got Unknown //IL_0875: Unknown result type (might be due to invalid IL or missing references) //IL_0880: Expected O, but got Unknown //IL_08a0: Unknown result type (might be due to invalid IL or missing references) //IL_08ab: Expected O, but got Unknown //IL_08c7: Unknown result type (might be due to invalid IL or missing references) //IL_08d2: Expected O, but got Unknown //IL_08ef: Unknown result type (might be due to invalid IL or missing references) //IL_08fa: Expected O, but got Unknown //IL_0917: Unknown result type (might be due to invalid IL or missing references) //IL_0922: Expected O, but got Unknown //IL_0950: Unknown result type (might be due to invalid IL or missing references) //IL_095b: Expected O, but got Unknown //IL_097e: Unknown result type (might be due to invalid IL or missing references) //IL_0989: Expected O, but got Unknown //IL_09ac: Unknown result type (might be due to invalid IL or missing references) //IL_09b7: Expected O, but got Unknown //IL_09d7: Unknown result type (might be due to invalid IL or missing references) //IL_09e2: Expected O, but got Unknown //IL_0a02: Unknown result type (might be due to invalid IL or missing references) //IL_0a0d: Expected O, but got Unknown //IL_0a2d: Unknown result type (might be due to invalid IL or missing references) //IL_0a38: Expected O, but got Unknown //IL_0a58: Unknown result type (might be due to invalid IL or missing references) //IL_0a63: Expected O, but got Unknown //IL_0a83: Unknown result type (might be due to invalid IL or missing references) //IL_0a8e: Expected O, but got Unknown //IL_0aaa: Unknown result type (might be due to invalid IL or missing references) //IL_0ab5: Expected O, but got Unknown //IL_0ad1: Unknown result type (might be due to invalid IL or missing references) //IL_0adc: Expected O, but got Unknown //IL_0af9: Unknown result type (might be due to invalid IL or missing references) //IL_0b04: Expected O, but got Unknown //IL_0b32: Unknown result type (might be due to invalid IL or missing references) //IL_0b3d: Expected O, but got Unknown //IL_0b60: Unknown result type (might be due to invalid IL or missing references) //IL_0b6b: Expected O, but got Unknown //IL_0b8e: Unknown result type (might be due to invalid IL or missing references) //IL_0b99: Expected O, but got Unknown //IL_0bb9: Unknown result type (might be due to invalid IL or missing references) //IL_0bc4: Expected O, but got Unknown //IL_0be4: Unknown result type (might be due to invalid IL or missing references) //IL_0bef: Expected O, but got Unknown //IL_0c0f: Unknown result type (might be due to invalid IL or missing references) //IL_0c1a: Expected O, but got Unknown //IL_0c3a: Unknown result type (might be due to invalid IL or missing references) //IL_0c45: Expected O, but got Unknown //IL_0c65: Unknown result type (might be due to invalid IL or missing references) //IL_0c70: Expected O, but got Unknown //IL_0c8c: Unknown result type (might be due to invalid IL or missing references) //IL_0c97: Expected O, but got Unknown //IL_0cb7: Unknown result type (might be due to invalid IL or missing references) //IL_0cc2: Expected O, but got Unknown //IL_0cdf: Unknown result type (might be due to invalid IL or missing references) //IL_0cea: Expected O, but got Unknown //IL_0d18: Unknown result type (might be due to invalid IL or missing references) //IL_0d23: Expected O, but got Unknown //IL_0d46: Unknown result type (might be due to invalid IL or missing references) //IL_0d51: Expected O, but got Unknown //IL_0d74: Unknown result type (might be due to invalid IL or missing references) //IL_0d7f: Expected O, but got Unknown //IL_0d9f: Unknown result type (might be due to invalid IL or missing references) //IL_0daa: Expected O, but got Unknown //IL_0dca: Unknown result type (might be due to invalid IL or missing references) //IL_0dd5: Expected O, but got Unknown //IL_0df5: Unknown result type (might be due to invalid IL or missing references) //IL_0e00: Expected O, but got Unknown //IL_0e20: Unknown result type (might be due to invalid IL or missing references) //IL_0e2b: Expected O, but got Unknown //IL_0e4b: Unknown result type (might be due to invalid IL or missing references) //IL_0e56: Expected O, but got Unknown //IL_0e72: Unknown result type (might be due to invalid IL or missing references) //IL_0e7d: Expected O, but got Unknown //IL_0e9a: Unknown result type (might be due to invalid IL or missing references) //IL_0ea5: Expected O, but got Unknown //IL_0ec2: Unknown result type (might be due to invalid IL or missing references) //IL_0ecd: Expected O, but got Unknown //IL_0efb: Unknown result type (might be due to invalid IL or missing references) //IL_0f06: Expected O, but got Unknown //IL_0f29: Unknown result type (might be due to invalid IL or missing references) //IL_0f34: Expected O, but got Unknown //IL_0f57: Unknown result type (might be due to invalid IL or missing references) //IL_0f62: Expected O, but got Unknown //IL_0f82: Unknown result type (might be due to invalid IL or missing references) //IL_0f8d: Expected O, but got Unknown //IL_0fad: Unknown result type (might be due to invalid IL or missing references) //IL_0fb8: Expected O, but got Unknown //IL_0fd8: Unknown result type (might be due to invalid IL or missing references) //IL_0fe3: Expected O, but got Unknown //IL_1003: Unknown result type (might be due to invalid IL or missing references) //IL_100e: Expected O, but got Unknown //IL_102e: Unknown result type (might be due to invalid IL or missing references) //IL_1039: Expected O, but got Unknown Localizer.Load(); ((BaseUnityPlugin)this).Config.SaveOnConfigSet = false; _serverConfigLocked = config("01- ServerSync", "Lock Configuration", Toggle.On, new ConfigDescription("If On, the configuration is locked and can be changed by server admins only.", (AcceptableValueBase)null, Array.Empty<object>())); _configSync.AddLockingConfigEntry<Toggle>(_serverConfigLocked); _enableReset = config("02- General", "Enable Mine Reset", Toggle.On, new ConfigDescription("If On, mines contents will be reset according to Reset Day value.", (AcceptableValueBase)null, Array.Empty<object>())); _resetDay = config("02- General", "Reset Day", 15, new ConfigDescription("How many in-game days needed to reset the content of the mine.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 500), Array.Empty<object>())); _oreSpawnChance = config("02- General", "Ore Veins Spawn Chance", 50f, new ConfigDescription("Percentage chance that the ore veins will spawn upon mine generation and reset.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 100f), Array.Empty<object>())); _consumableKeys = config("02- General", "Consumable Keys", Toggle.Off, new ConfigDescription("If On, keys are consumed when you open a mine.", (AcceptableValueBase)null, Array.Empty<object>())); _stackableKeys = config("02- General", "Stackable Keys", Toggle.Off, new ConfigDescription("If On, keys are stackable upto 10. (Requires a Logout)", (AcceptableValueBase)null, Array.Empty<object>())); _enableFlintMine = config("03- Flint Mine", "Enable", Toggle.On, new ConfigDescription("Enable/Disables flint mine from generating into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _flintMineBiome = config<Biome>("03- Flint Mine", "Biome", (Biome)1, new ConfigDescription("Biome where to generate flint mines at world generation.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _flintMineCount = config("03- Flint Mine", "Max", 70, new ConfigDescription("Maximum amount of flint mine to generate into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _flintDepositDropChance = config("03- Flint Mine", "Flint Deposit DropChance", 1f, new ConfigDescription("Flint drop chance percentage.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); _flintDepositDropMin = config("03- Flint Mine", "Flint Deposit DropMin", 6, new ConfigDescription("Minimum drops from flint deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>())); _flintDepositDropMax = config("03- Flint Mine", "Flint Deposit DropMax", 8, new ConfigDescription("Maximum drops from flint deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 15), Array.Empty<object>())); _flintMineSpawnAltitudeMin = config("03- Flint Mine", "Spawn Altitude Min", 0.5f, new ConfigDescription("Minimum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _flintMineSpawnAltitudeMax = config("03- Flint Mine", "Spawn Altitude Max", 150f, new ConfigDescription("Maximum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _flintMineSpawnDistanceMin = config("03- Flint Mine", "Spawn Distance Min", 400f, new ConfigDescription("Minimum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _flintMineSpawnDistanceMax = config("03- Flint Mine", "Spawn Distance Max", 10000f, new ConfigDescription("Maximum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _flintMineMinDistanceFromGroup = config("03- Flint Mine", "Minimum Distance From Group", 400f, new ConfigDescription("Mininum distance from other mines.", (AcceptableValueBase)null, Array.Empty<object>())); _enableCopperMine = config("04- Copper Mine", "Enable", Toggle.On, new ConfigDescription("Enable/Disables copper mine from generating into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _copperMineBiome = config<Biome>("04- Copper Mine", "Biome", (Biome)8, new ConfigDescription("Biome where to generate copper mines at world generation.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _copperMineCount = config("04- Copper Mine", "Max", 70, new ConfigDescription("Maximum amount of copper mine to generate into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _copperDepositDropChance = config("04- Copper Mine", "Copper Deposit DropChance", 1f, new ConfigDescription("Copper ore drop chance percentage.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); _copperDepositDropMin = config("04- Copper Mine", "Copper Deposit DropMin", 4, new ConfigDescription("Minimum drops from copper ore deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>())); _copperDepositDropMax = config("04- Copper Mine", "Copper Deposit DropMax", 6, new ConfigDescription("Maximum drops from copper ore deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 15), Array.Empty<object>())); _copperMineSpawnAltitudeMin = config("04- Copper Mine", "Spawn Altitude Min", 0.5f, new ConfigDescription("Minimum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _copperMineSpawnAltitudeMax = config("04- Copper Mine", "Spawn Altitude Max", 150f, new ConfigDescription("Maximum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _copperMineSpawnDistanceMin = config("04- Copper Mine", "Spawn Distance Min", 400f, new ConfigDescription("Minimum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _copperMineSpawnDistanceMax = config("04- Copper Mine", "Spawn Distance Max", 10000f, new ConfigDescription("Maximum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _copperMineMinDistanceFromGroup = config("04- Copper Mine", "Minimum Distance From Group", 400f, new ConfigDescription("Minimum distance from other mines.", (AcceptableValueBase)null, Array.Empty<object>())); _enableTinMine = config("05- Tin Mine", "Enable", Toggle.On, new ConfigDescription("Enable/Disables tin mine from generating into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _tinMineBiome = config<Biome>("05- Tin Mine", "Biome", (Biome)8, new ConfigDescription("Biome where to generate tin mines at world generation.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _tinMineCount = config("05- Tin Mine", "Max", 70, new ConfigDescription("Maximum amount of tin mine to generate into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _tinDepositDropChance = config("05- Tin Mine", "Tin Deposit DropChance", 1f, new ConfigDescription("Tin ore drop chance percentage.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); _tinDepositDropMin = config("05- Tin Mine", "Tin Deposit DropMin", 6, new ConfigDescription("Minimum drops from tin ore deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>())); _tinDepositDropMax = config("05- Tin Mine", "TinMine DropMax", 8, new ConfigDescription("Maximum drops from tin deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 15), Array.Empty<object>())); _tinMineSpawnAltitudeMin = config("05- Tin Mine", "Spawn Altitude Min", 0.5f, new ConfigDescription("Minimum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _tinMineSpawnAltitudeMax = config("05- Tin Mine", "Spawn Altitude Max", 150f, new ConfigDescription("Maximum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _tinMineSpawnDistanceMin = config("05- Tin Mine", "Spawn Distance Min", 400f, new ConfigDescription("Minimum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _tinMineSpawnDistanceMax = config("05- Tin Mine", "Spawn Distance Max", 10000f, new ConfigDescription("Maximum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _tinMinDistanceFromGroup = config("05- Tin Mine", "Minimum Distance From Group", 400f, new ConfigDescription("Minimum distance from other mines.", (AcceptableValueBase)null, Array.Empty<object>())); _enableCoalMine = config("07- Coal Mine", "Enable", Toggle.On, new ConfigDescription("Enable/Disables coal mine from generating into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _coalMineBiome = config<Biome>("07- Coal Mine", "Biome", (Biome)6, new ConfigDescription("Biome where to generate coal mines at world generation.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _coalMineCount = config("07- Coal Mine", "Max", 70, new ConfigDescription("Maximum amount of coal mine to generate into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _coalDepositDropChance = config("07- Coal Mine", "Coal Deposit DropChance", 1f, new ConfigDescription("Coal ore drop chance percentage.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); _coalDepositDropMin = config("07- Coal Mine", "Coal Deposit DropMin", 6, new ConfigDescription("Minimum drops from coal deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>())); _coalDepositDropMax = config("07- Coal Mine", "Coal Deposit DropMax", 8, new ConfigDescription("Maximum drops from coal deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 15), Array.Empty<object>())); _coalMineSpawnAltitudeMin = config("07- Coal Mine", "Spawn Altitude Min", 0.5f, new ConfigDescription("Minimum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _coalMineSpawnAltitudeMax = config("07- Coal Mine", "Spawn Altitude Max", 1000f, new ConfigDescription("Maximum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _coalMineSpawnDistanceMin = config("07- Coal Mine", "Spawn Distance Min", 400f, new ConfigDescription("Minimum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _coalMineSpawnDistanceMax = config("07- Coal Mine", "Spawn Distance Max", 10000f, new ConfigDescription("Maximum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _coalMineMinDistanceFromGroup = config("07- Coal Mine", "Minimum Distance From Group", 400f, new ConfigDescription("Minimum distance from other mines.", (AcceptableValueBase)null, Array.Empty<object>())); _enableIronMine = config("06- Iron Mine", "Enable", Toggle.On, new ConfigDescription("Enable/disables iron mine from generating into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _ironMineBiome = config<Biome>("06- Iron Mine", "Biome", (Biome)18, new ConfigDescription("Biome where to generate iron mine at world generation.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _ironMineCount = config("06- Iron Mine", "Max", 70, new ConfigDescription("Maximum amount of iron mine to generate into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _ironDepositDropChance = config("06- Iron Mine", "Iron Deposit DropChance", 1f, new ConfigDescription("Iron ore drop chance percentage.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); _ironDepositDropMin = config("06- Iron Mine", "Iron Deposit DropMin", 4, new ConfigDescription("Minimum drops from iron ore deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 15), Array.Empty<object>())); _ironDepositDropMax = config("06- Iron Mine", "Iron Deposit DropMax", 6, new ConfigDescription("Maximum drops from iron ore deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 15), Array.Empty<object>())); _ironMineSpawnAltitudeMin = config("06- Iron Mine", "Spawn Altitude Min", 0.5f, new ConfigDescription("Minimum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _ironMineSpawnAltitudeMax = config("06- Iron Mine", "Spawn Altitude Max", 150f, new ConfigDescription("Maximum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _ironMineSpawnDistanceMin = config("06- Iron Mine", "Spawn Distance Min", 400f, new ConfigDescription("Minimum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _ironMineSpawnDistanceMax = config("06- Iron Mine", "Spawn Distance Max", 10000f, new ConfigDescription("Maximum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _ironMineMinDistanceFromGroup = config("06- Iron Mine", "Minimum Distance From Group", 400f, new ConfigDescription("Minimum distance from other mines.", (AcceptableValueBase)null, Array.Empty<object>())); _enableSilverMine = config("08- Silver Mine", "Enable", Toggle.On, new ConfigDescription("Enable/Disables silver mine from generating into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _silverMineBiome = config<Biome>("08- Silver Mine", "Biome", (Biome)4, new ConfigDescription("Biome where to generate silver mine at world generation.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _silverMineCount = config("08- Silver Mine", "Max", 70, new ConfigDescription("Maximum amount of silver mine to generate into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _silverDepositDropChance = config("08- Silver Mine", "Silver Deposit DropChance", 1f, new ConfigDescription("Silver ore drop chance percentage.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); _silverDepositDropMin = config("08- Silver Mine", "Silver Deposit DropMin", 4, new ConfigDescription("Minimum drops from silver ore deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>())); _silverDepositDropMax = config("08- Silver Mine", "Silver Deposit DropMax", 6, new ConfigDescription("Maximum drops from silver ore deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 15), Array.Empty<object>())); _silverMineSpawnAltitudeMin = config("08- Silver Mine", "Spawn Altitude Min", 0.5f, new ConfigDescription("Minimum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _silverMineSpawnAltitudeMax = config("08- Silver Mine", "Spawn Altitude Max", 1000f, new ConfigDescription("Maximum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _silverMineSpawnDistanceMin = config("08- Silver Mine", "Spawn Distance Min", 300f, new ConfigDescription("Minimum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _silverMineSpawnDistanceMax = config("08- Silver Mine", "Spawn Distance Max", 10000f, new ConfigDescription("Maximum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _silverMineMinDistanceFromGroup = config("08- Silver Mine", "Minimum Distance From Group", 300f, new ConfigDescription("Minimum distance from other mines.", (AcceptableValueBase)null, Array.Empty<object>())); _enableBlackMetalMine = config("09- BlackMetal Mine", "Enable", Toggle.On, new ConfigDescription("Enable/Disables blackmetal mine from generating into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _blackMetalMineBiome = config<Biome>("09- BlackMetal Mine", "Biome", (Biome)528, new ConfigDescription("Biome where to generate blackmetal mine at world generation.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _blackMetalMineCount = config("09- BlackMetal Mine", "Max", 70, new ConfigDescription("Maximum amount of blackmetal mine to generate into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _blackMetalDepositDropChance = config("09- BlackMetal Mine", "BlackMetal Deposit DropChance", 1f, new ConfigDescription("Blackmetal scrap drop chance percentage.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); _blackMetalDepositDropMin = config("09- BlackMetal Mine", "BlackMetal Deposit DropMin", 4, new ConfigDescription("Minimum drops from blackmetal scrap deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>())); _blackMetalDepositDropMax = config("09- BlackMetal Mine", "BlackMetal Deposit DropMax", 6, new ConfigDescription("Maximum drops from blackmetal scrap deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 15), Array.Empty<object>())); _blackMetalMineSpawnAltitudeMin = config("09- BlackMetal Mine", "Spawn Altitude Min", 0.5f, new ConfigDescription("Minimum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _blackMetalMineSpawnAltitudeMax = config("09- BlackMetal Mine", "Spawn Altitude Max", 1000f, new ConfigDescription("Maximum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _blackMetalMineSpawnDistanceMin = config("09- BlackMetal Mine", "Spawn Distance Min", 400f, new ConfigDescription("Minimum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _blackMetalMineSpawnDistanceMax = config("09- BlackMetal Mine", "Spawn Distance Max", 10000f, new ConfigDescription("Maximum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _blackMetalMineMinDistanceFromGroup = config("09- BlackMetal Mine", "Minimum Distance From Group", 400f, new ConfigDescription("Minimum distance from other mines.", (AcceptableValueBase)null, Array.Empty<object>())); _enableFlametalMine = config("10- Flametal Mine", "Enable", Toggle.On, new ConfigDescription("Enable/Disables flametal mine from generating into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _flametalMineBiome = config<Biome>("10- Flametal Mine", "Biome", (Biome)32, new ConfigDescription("Biome where to generate flametal mine at world generation.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _flametalMineCount = config("10- Flametal Mine", "Max", 70, new ConfigDescription("Maximum amount of flametal mine to generate into the world.\nOnly applies at world generation.", (AcceptableValueBase)null, Array.Empty<object>())); _flametalDepositDropChance = config("10- Flametal Mine", "Flametal Deposit DropChance", 1f, new ConfigDescription("Flametal ore drop chance percentage.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); _flametalDepositDropMin = config("10- Flametal Mine", "Flametal Deposit DropMin", 4, new ConfigDescription("Minimum drops from flametal ore deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>())); _flametalDepositDropMax = config("10- Flametal Mine", "Flametal Deposit DropMax", 6, new ConfigDescription("Maximum drops from flametal ore deposits.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 15), Array.Empty<object>())); _flametalMineSpawnAltitudeMin = config("10- Flametal Mine", "Spawn Altitude Min", 0.5f, new ConfigDescription("Minimum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _flametalMineSpawnAltitudeMax = config("10- Flametal Mine", "Spawn Altitude Max", 150f, new ConfigDescription("Maximum altitude of the mine.", (AcceptableValueBase)null, Array.Empty<object>())); _flametalMineSpawnDistanceMin = config("10- Flametal Mine", "Spawn Distance Min", 300f, new ConfigDescription("Minimum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _flametalMineSpawnDistanceMax = config("10- Flametal Mine", "Spawn Distance Max", 10000f, new ConfigDescription("Maximum range from the center of the map.", (AcceptableValueBase)null, Array.Empty<object>())); _flametalMineMinDistanceFromGroup = config("10- Flametal Mine", "Minimum Distance From Group", 300f, new ConfigDescription("Minimum distance from other mines.", (AcceptableValueBase)null, Array.Empty<object>())); MineSetup.Init(); ((BaseUnityPlugin)this).Config.SaveOnConfigSet = true; ((BaseUnityPlugin)this).Config.Save(); Assembly executingAssembly = Assembly.GetExecutingAssembly(); _harmony.PatchAll(executingAssembly); } private void OnDestroy() { ((BaseUnityPlugin)this).Config.Save(); } } } namespace OreMines.Functions { public static class MineSetup { private static AssetBundle _mineBundle; private static GameObject _flintMine01; private static GameObject _flintMine02; private static GameObject _copperMine01; private static GameObject _copperMine02; private static GameObject _tinMine01; private static GameObject _tinMine02; private static GameObject _coalMine01; private static GameObject _coalMine02; private static GameObject _ironMine01; private static GameObject _ironMine02; private static GameObject _silverMine01; private static GameObject _silverMine02; private static GameObject _blackMetalMine01; private static GameObject _blackMetalMine02; private static GameObject _flametalMine01; private static GameObject _flametalMine02; public static void Init() { //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_0748: Unknown result type (might be due to invalid IL or missing references) //IL_074d: Unknown result type (might be due to invalid IL or missing references) //IL_0754: Unknown result type (might be due to invalid IL or missing references) //IL_09de: Unknown result type (might be due to invalid IL or missing references) //IL_09e3: Unknown result type (might be due to invalid IL or missing references) //IL_09ea: Unknown result type (might be due to invalid IL or missing references) //IL_0cc8: Unknown result type (might be due to invalid IL or missing references) //IL_0ccd: Unknown result type (might be due to invalid IL or missing references) //IL_0cd4: Unknown result type (might be due to invalid IL or missing references) //IL_0f88: Unknown result type (might be due to invalid IL or missing references) //IL_0f8d: Unknown result type (might be due to invalid IL or missing references) //IL_0f94: Unknown result type (might be due to invalid IL or missing references) //IL_121e: Unknown result type (might be due to invalid IL or missing references) //IL_1223: Unknown result type (might be due to invalid IL or missing references) //IL_122a: Unknown result type (might be due to invalid IL or missing references) //IL_155c: Unknown result type (might be due to invalid IL or missing references) //IL_1561: Unknown result type (might be due to invalid IL or missing references) //IL_1568: Unknown result type (might be due to invalid IL or missing references) //IL_1846: Unknown result type (might be due to invalid IL or missing references) //IL_184b: Unknown result type (might be due to invalid IL or missing references) //IL_1852: Unknown result type (might be due to invalid IL or missing references) //IL_1b84: Unknown result type (might be due to invalid IL or missing references) //IL_1b89: Unknown result type (might be due to invalid IL or missing references) //IL_1b90: Unknown result type (might be due to invalid IL or missing references) //IL_1e6e: Unknown result type (might be due to invalid IL or missing references) //IL_1e73: Unknown result type (might be due to invalid IL or missing references) //IL_1e7a: Unknown result type (might be due to invalid IL or missing references) //IL_2104: Unknown result type (might be due to invalid IL or missing references) //IL_2109: Unknown result type (might be due to invalid IL or missing references) //IL_2110: Unknown result type (might be due to invalid IL or missing references) //IL_23c4: Unknown result type (might be due to invalid IL or missing references) //IL_23c9: Unknown result type (might be due to invalid IL or missing references) //IL_23d0: Unknown result type (might be due to invalid IL or missing references) //IL_265a: Unknown result type (might be due to invalid IL or missing references) //IL_265f: Unknown result type (might be due to invalid IL or missing references) //IL_2666: Unknown result type (might be due to invalid IL or missing references) //IL_2944: Unknown result type (might be due to invalid IL or missing references) //IL_2949: Unknown result type (might be due to invalid IL or missing references) //IL_2950: Unknown result type (might be due to invalid IL or missing references) _mineBundle = Location.PrefabManager.RegisterAssetBundle("minebundle"); Location.ConfigurationEnabled = true; _flintMine01 = _mineBundle.LoadAsset<GameObject>("BOM_FlintMine01"); Location obj = new Location(_flintMine01) { CanSpawn = (Plugin._enableFlintMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._flintMineBiome.Value, SpawnArea = (BiomeArea)2, Count = Plugin._flintMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._flintMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 1f), SpawnAltitude = new LocationManager.Range(Plugin._flintMineSpawnAltitudeMin.Value, Plugin._flintMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._flintMineSpawnDistanceMin.Value, Plugin._flintMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_flintMine01); obj.CreatureSpawner.Add("Spawner_Neck", "Neck"); obj.CreatureSpawner.Add("Spawner_Neck2", "Neck"); obj.CreatureSpawner.Add("Spawner_Neck3", "Neck"); obj.CreatureSpawner.Add("Spawner_Neck4", "Neck"); obj.CreatureSpawner.Add("Spawner_Neck5", "Neck"); obj.CreatureSpawner.Add("Spawner_Neck6", "Neck"); obj.CreatureSpawner.Add("Spawner_Neck7", "Neck"); obj.CreatureSpawner.Add("Spawner_Neck8", "Neck"); obj.CreatureSpawner.Add("Spawner_Neck9", "Neck"); obj.CreatureSpawner.Add("Spawner_Neck10", "Neck"); obj.CreatureSpawner.Add("ExteriorSpawner_Neck", "Neck"); obj.CreatureSpawner.Add("ExteriorSpawner_Neck (1)", "Neck"); obj.CreatureSpawner.Add("ExteriorSpawner_Neck (2)", "Neck"); obj.CreatureSpawner.Add("ExteriorSpawner_Neck (3)", "Neck"); _flintMine02 = _mineBundle.LoadAsset<GameObject>("BOM_FlintMine02"); Location obj2 = new Location(_flintMine02) { CanSpawn = (Plugin._enableFlintMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._flintMineBiome.Value, SpawnArea = (BiomeArea)1, Count = Plugin._flintMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._flintMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 1f), SpawnAltitude = new LocationManager.Range(Plugin._flintMineSpawnAltitudeMin.Value, Plugin._flintMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._flintMineSpawnDistanceMin.Value, Plugin._flintMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_flintMine02); obj2.CreatureSpawner.Add("Spawner_Neck", "Neck"); obj2.CreatureSpawner.Add("Spawner_Neck2", "Neck"); obj2.CreatureSpawner.Add("Spawner_Neck3", "Neck"); obj2.CreatureSpawner.Add("Spawner_Neck4", "Neck"); obj2.CreatureSpawner.Add("Spawner_Neck5", "Neck"); obj2.CreatureSpawner.Add("Spawner_Neck6", "Neck"); obj2.CreatureSpawner.Add("Spawner_Neck7", "Neck"); obj2.CreatureSpawner.Add("Spawner_Neck8", "Neck"); obj2.CreatureSpawner.Add("Spawner_Neck9", "Neck"); obj2.CreatureSpawner.Add("Spawner_Neck10", "Neck"); obj2.CreatureSpawner.Add("ExteriorSpawner_Boar", "Boar"); obj2.CreatureSpawner.Add("ExteriorSpawner_Boar (1)", "Boar"); obj2.CreatureSpawner.Add("ExteriorSpawner_Boar (2)", "Boar"); obj2.CreatureSpawner.Add("ExteriorSpawner_Boar (3)", "Boar"); _copperMine01 = _mineBundle.LoadAsset<GameObject>("BOM_CopperMine01"); Location obj3 = new Location(_copperMine01) { CanSpawn = (Plugin._enableCopperMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._copperMineBiome.Value, SpawnArea = (BiomeArea)2, Count = Plugin._copperMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._copperMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._copperMineSpawnAltitudeMin.Value, Plugin._copperMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._copperMineSpawnDistanceMin.Value, Plugin._copperMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_copperMine01); obj3.CreatureSpawner.Add("Spawner_Skeleton", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton2", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton3", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton4", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton5", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton6", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton7", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton8", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton9", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton10", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton11", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton12", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton13", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton14", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton15", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton16", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton17", "Skeleton"); obj3.CreatureSpawner.Add("Spawner_Skeleton18", "Skeleton"); obj3.CreatureSpawner.Add("ExteriorSpawner_Skeleton", "Skeleton"); obj3.CreatureSpawner.Add("ExteriorSpawner_Skeleton (1)", "Skeleton"); obj3.CreatureSpawner.Add("ExteriorSpawner_Skeleton (2)", "Skeleton"); obj3.CreatureSpawner.Add("ExteriorSpawner_Skeleton (3)", "Skeleton"); _copperMine02 = _mineBundle.LoadAsset<GameObject>("BOM_CopperMine02"); Location obj4 = new Location(_copperMine02) { CanSpawn = (Plugin._enableCopperMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._copperMineBiome.Value, SpawnArea = (BiomeArea)1, Count = Plugin._copperMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._copperMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._copperMineSpawnAltitudeMin.Value, Plugin._copperMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._copperMineSpawnDistanceMin.Value, Plugin._copperMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_copperMine02); obj4.CreatureSpawner.Add("Spawner_Skeleton", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton2", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton3", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton4", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton5", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton6", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton7", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton8", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton9", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton10", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton11", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton12", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton13", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton14", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton15", "Skeleton"); obj4.CreatureSpawner.Add("Spawner_Skeleton16", "Skeleton"); obj4.CreatureSpawner.Add("ExteriorSpawner_Skeleton", "Skeleton"); obj4.CreatureSpawner.Add("ExteriorSpawner_Skeleton (1)", "Skeleton"); obj4.CreatureSpawner.Add("ExteriorSpawner_Skeleton (2)", "Skeleton"); obj4.CreatureSpawner.Add("ExteriorSpawner_Skeleton (3)", "Skeleton"); _tinMine01 = _mineBundle.LoadAsset<GameObject>("BOM_TinMine01"); Location obj5 = new Location(_tinMine01) { CanSpawn = (Plugin._enableTinMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._tinMineBiome.Value, SpawnArea = (BiomeArea)2, Count = Plugin._tinMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._tinMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._tinMineSpawnAltitudeMin.Value, Plugin._tinMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._tinMineSpawnDistanceMin.Value, Plugin._tinMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_tinMine01); obj5.CreatureSpawner.Add("Spawner_Skeleton", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton2", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton3", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton4", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton5", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton6", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton7", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton8", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton9", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton10", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton11", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton12", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton13", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton14", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton15", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton16", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton17", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton18", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton19", "Skeleton"); obj5.CreatureSpawner.Add("Spawner_Skeleton20", "Skeleton"); obj5.CreatureSpawner.Add("ExteriorSpawner_Greydwarf", "Greydwarf"); obj5.CreatureSpawner.Add("ExteriorSpawner_Greydwarf (1)", "Greydwarf"); obj5.CreatureSpawner.Add("ExteriorSpawner_Greydwarf (2)", "Greydwarf"); obj5.CreatureSpawner.Add("ExteriorSpawner_GreydwarfElite(3)", "Greydwarf_Elite"); _tinMine02 = _mineBundle.LoadAsset<GameObject>("BOM_TinMine02"); Location obj6 = new Location(_tinMine02) { CanSpawn = (Plugin._enableTinMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._tinMineBiome.Value, SpawnArea = (BiomeArea)1, Count = Plugin._tinMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._tinMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._tinMineSpawnAltitudeMin.Value, Plugin._tinMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._tinMineSpawnDistanceMin.Value, Plugin._tinMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_tinMine02); obj6.CreatureSpawner.Add("Spawner_Skeleton", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton2", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton3", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton4", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton5", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton6", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton7", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton8", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton9", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton10", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton11", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton12", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton13", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton14", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton15", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton16", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton17", "Skeleton"); obj6.CreatureSpawner.Add("Spawner_Skeleton18", "Skeleton"); obj6.CreatureSpawner.Add("ExteriorSpawner_Greydwarf", "Greydwarf"); obj6.CreatureSpawner.Add("ExteriorSpawner_Greydwarf (1)", "Greydwarf"); obj6.CreatureSpawner.Add("ExteriorSpawner_Greydwarf (2)", "Greydwarf"); obj6.CreatureSpawner.Add("ExteriorSpawner_GreydwarfShaman (3)", "Greydwarf_Shaman"); _coalMine01 = _mineBundle.LoadAsset<GameObject>("BOM_CoalMine01"); Location obj7 = new Location(_coalMine01) { CanSpawn = (Plugin._enableCoalMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._coalMineBiome.Value, SpawnArea = (BiomeArea)2, Count = Plugin._coalMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._coalMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._coalMineSpawnAltitudeMin.Value, Plugin._coalMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._coalMineSpawnDistanceMin.Value, Plugin._coalMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_coalMine01); obj7.CreatureSpawner.Add("Spawner_Skeleton", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton2", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton3", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton4", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton5", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton6", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton7", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton8", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton9", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton10", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton11", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton12", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton13", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton14", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton15", "Skeleton"); obj7.CreatureSpawner.Add("Spawner_Skeleton16", "Skeleton"); obj7.CreatureSpawner.Add("ExteriorSpawner_Skeleton", "Skeleton"); obj7.CreatureSpawner.Add("ExteriorSpawner_Skeleton (1)", "Skeleton"); obj7.CreatureSpawner.Add("ExteriorSpawner_Skeleton (2)", "Skeleton"); obj7.CreatureSpawner.Add("ExteriorSpawner_Skeleton (3)", "Skeleton"); _coalMine02 = _mineBundle.LoadAsset<GameObject>("BOM_CoalMine02"); Location obj8 = new Location(_coalMine02) { CanSpawn = (Plugin._enableCoalMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._coalMineBiome.Value, SpawnArea = (BiomeArea)1, Count = Plugin._coalMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._coalMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._coalMineSpawnAltitudeMin.Value, Plugin._coalMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._coalMineSpawnDistanceMin.Value, Plugin._coalMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_coalMine02); obj8.CreatureSpawner.Add("Spawner_Skeleton", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton2", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton3", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton4", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton5", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton6", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton7", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton8", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton9", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton10", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton11", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton12", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton13", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton14", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton15", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton16", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton17", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton18", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton19", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton20", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton21", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton22", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton23", "Skeleton"); obj8.CreatureSpawner.Add("Spawner_Skeleton24", "Skeleton"); obj8.CreatureSpawner.Add("ExteriorSpawner_Skeleton", "Skeleton"); obj8.CreatureSpawner.Add("ExteriorSpawner_Skeleton (1)", "Skeleton"); obj8.CreatureSpawner.Add("ExteriorSpawner_Skeleton (2)", "Skeleton"); obj8.CreatureSpawner.Add("ExteriorSpawner_Skeleton (3)", "Skeleton"); _ironMine01 = _mineBundle.LoadAsset<GameObject>("BOM_IronMine01"); Location obj9 = new Location(_ironMine01) { CanSpawn = (Plugin._enableIronMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._ironMineBiome.Value, SpawnArea = (BiomeArea)2, Count = Plugin._ironMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._ironMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._ironMineSpawnAltitudeMin.Value, Plugin._ironMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._ironMineSpawnDistanceMin.Value, Plugin._ironMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_ironMine01); obj9.CreatureSpawner.Add("Spawner_Draugr", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr2", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr3", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr4", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr5", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr6", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr7", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr8", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr9", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr10", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr11", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr12", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr13", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr14", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr15", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr16", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr17", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr18", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr19", "Draugr"); obj9.CreatureSpawner.Add("Spawner_Draugr20", "Draugr"); obj9.CreatureSpawner.Add("ExteriorSpawner_Draugr", "Draugr"); obj9.CreatureSpawner.Add("ExteriorSpawner_Draugr (1)", "Draugr"); obj9.CreatureSpawner.Add("ExteriorSpawner_Draugr (2)", "Draugr"); obj9.CreatureSpawner.Add("ExteriorSpawner_Draugr (3)", "Draugr"); _ironMine02 = _mineBundle.LoadAsset<GameObject>("BOM_IronMine02"); Location obj10 = new Location(_ironMine02) { CanSpawn = (Plugin._enableIronMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._ironMineBiome.Value, SpawnArea = (BiomeArea)1, Count = Plugin._ironMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._ironMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._ironMineSpawnAltitudeMin.Value, Plugin._ironMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._ironMineSpawnDistanceMin.Value, Plugin._ironMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_ironMine02); obj10.CreatureSpawner.Add("Spawner_Draugr", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr2", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr3", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr4", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr5", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr6", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr7", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr8", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr9", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr10", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr11", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr12", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr13", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr14", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr15", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr16", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr17", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr18", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr19", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr20", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr21", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr22", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr23", "Draugr"); obj10.CreatureSpawner.Add("Spawner_Draugr24", "Draugr"); obj10.CreatureSpawner.Add("ExteriorSpawner_Draugr", "Draugr"); obj10.CreatureSpawner.Add("ExteriorSpawner_Draugr (1)", "Draugr"); obj10.CreatureSpawner.Add("ExteriorSpawner_Draugr (2)", "Draugr"); obj10.CreatureSpawner.Add("ExteriorSpawner_Draugr (3)", "Draugr"); _silverMine01 = _mineBundle.LoadAsset<GameObject>("BOM_SilverMine01"); Location obj11 = new Location(_silverMine01) { CanSpawn = (Plugin._enableSilverMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._silverMineBiome.Value, SpawnArea = (BiomeArea)3, Count = Plugin._silverMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._silverMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 1f), SpawnAltitude = new LocationManager.Range(Plugin._silverMineSpawnAltitudeMin.Value, Plugin._silverMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._silverMineSpawnDistanceMin.Value, Plugin._silverMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_silverMine01); obj11.CreatureSpawner.Add("Spawner_Fenring", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring2", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring3", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring4", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring5", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring6", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring7", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring8", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring9", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring10", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring11", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring12", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring13", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring14", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring15", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring16", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring17", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring18", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring19", "Fenring"); obj11.CreatureSpawner.Add("Spawner_Fenring20", "Fenring"); obj11.CreatureSpawner.Add("ExteriorSpawner_Wolf", "Wolf"); obj11.CreatureSpawner.Add("ExteriorSpawner_Wolf (1)", "Wolf"); obj11.CreatureSpawner.Add("ExteriorSpawner_Wolf (2)", "Wolf"); obj11.CreatureSpawner.Add("ExteriorSpawner_Wolf (3)", "Wolf"); _silverMine02 = _mineBundle.LoadAsset<GameObject>("BOM_SilverMine02"); Location obj12 = new Location(_silverMine02) { CanSpawn = (Plugin._enableSilverMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._silverMineBiome.Value, SpawnArea = (BiomeArea)3, Count = Plugin._silverMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._silverMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 1f), SpawnAltitude = new LocationManager.Range(Plugin._silverMineSpawnAltitudeMin.Value, Plugin._silverMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._silverMineSpawnDistanceMin.Value, Plugin._silverMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_silverMine02); obj12.CreatureSpawner.Add("Spawner_Fenring", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring2", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring3", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring4", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring5", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring6", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring7", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring8", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring9", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring10", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring11", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring12", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring13", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring14", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring15", "Fenring"); obj12.CreatureSpawner.Add("Spawner_Fenring16", "Fenring"); obj12.CreatureSpawner.Add("ExteriorSpawner_Wolf", "Wolf"); obj12.CreatureSpawner.Add("ExteriorSpawner_Wolf (1)", "Wolf"); obj12.CreatureSpawner.Add("ExteriorSpawner_Wolf (2)", "Wolf"); obj12.CreatureSpawner.Add("ExteriorSpawner_Wolf (3)", "Wolf"); _blackMetalMine01 = _mineBundle.LoadAsset<GameObject>("BOM_BlackMetalMine01"); Location obj13 = new Location(_blackMetalMine01) { CanSpawn = (Plugin._enableBlackMetalMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._blackMetalMineBiome.Value, SpawnArea = (BiomeArea)2, Count = Plugin._blackMetalMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._blackMetalMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._blackMetalMineSpawnAltitudeMin.Value, Plugin._blackMetalMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._blackMetalMineSpawnDistanceMin.Value, Plugin._blackMetalMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_blackMetalMine01); obj13.CreatureSpawner.Add("Spawner_Goblin", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin2", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin3", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin4", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin5", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin6", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin7", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin8", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin9", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin10", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin11", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin12", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin13", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin14", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin15", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin16", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin17", "Goblin"); obj13.CreatureSpawner.Add("Spawner_Goblin18", "Goblin"); obj13.CreatureSpawner.Add("ExteriorSpawner_Goblin", "Goblin"); obj13.CreatureSpawner.Add("ExteriorSpawner_Goblin (1)", "Goblin"); obj13.CreatureSpawner.Add("ExteriorSpawner_Goblin (2)", "Goblin"); obj13.CreatureSpawner.Add("ExteriorSpawner_GoblinBrute (3)", "GoblinBrute"); _blackMetalMine02 = _mineBundle.LoadAsset<GameObject>("BOM_BlackMetalMine02"); Location obj14 = new Location(_blackMetalMine02) { CanSpawn = (Plugin._enableBlackMetalMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._blackMetalMineBiome.Value, SpawnArea = (BiomeArea)1, Count = Plugin._blackMetalMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._blackMetalMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._blackMetalMineSpawnAltitudeMin.Value, Plugin._blackMetalMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._blackMetalMineSpawnDistanceMin.Value, Plugin._blackMetalMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_blackMetalMine02); obj14.CreatureSpawner.Add("Spawner_Goblin", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin2", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin3", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin4", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin5", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin6", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin7", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin8", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin9", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin10", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin11", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin12", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin13", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin14", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin15", "Goblin"); obj14.CreatureSpawner.Add("Spawner_Goblin16", "Goblin"); obj14.CreatureSpawner.Add("ExteriorSpawner_Goblin", "Goblin"); obj14.CreatureSpawner.Add("ExteriorSpawner_Goblin (1)", "Goblin"); obj14.CreatureSpawner.Add("ExteriorSpawner_Goblin (2)", "Goblin"); obj14.CreatureSpawner.Add("ExteriorSpawner_GoblinShaman (3)", "GoblinShaman"); _flametalMine01 = _mineBundle.LoadAsset<GameObject>("BOM_FlametalMine01"); Location obj15 = new Location(_flametalMine01) { CanSpawn = (Plugin._enableFlametalMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._flametalMineBiome.Value, SpawnArea = (BiomeArea)2, Count = Plugin._flametalMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._flametalMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._flametalMineSpawnAltitudeMin.Value, Plugin._flametalMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._flametalMineSpawnDistanceMin.Value, Plugin._flametalMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_flametalMine01); obj15.CreatureSpawner.Add("Spawner_CharredMelee", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee2", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee3", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee4", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee5", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee6", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee7", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee8", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee9", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee10", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee11", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee12", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee13", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee14", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee15", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee16", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee17", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee18", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee19", "Charred_Melee"); obj15.CreatureSpawner.Add("Spawner_CharredMelee20", "Charred_Melee"); obj15.CreatureSpawner.Add("ExteriorSpawner_CharredMelee", "Charred_Melee"); obj15.CreatureSpawner.Add("ExteriorSpawner_CharredMelee (1)", "Charred_Melee"); obj15.CreatureSpawner.Add("ExteriorSpawner_CharredMelee (2)", "Charred_Melee"); obj15.CreatureSpawner.Add("ExteriorSpawner_CharredArcher (3)", "Charred_Archer"); _flametalMine02 = _mineBundle.LoadAsset<GameObject>("BOM_FlametalMine02"); Location obj16 = new Location(_flametalMine02) { CanSpawn = (Plugin._enableFlametalMine.Value == Plugin.Toggle.On), ClearArea = true, Biome = Plugin._flametalMineBiome.Value, SpawnArea = (BiomeArea)1, Count = Plugin._flametalMineCount.Value, GroupName = "OreMines", MinimumDistanceFromGroup = Plugin._flametalMineMinDistanceFromGroup.Value, Rotation = Rotation.Slope, HeightDelta = new LocationManager.Range(0f, 40f), ForestThreshold = new LocationManager.Range(0f, 3f), SpawnAltitude = new LocationManager.Range(Plugin._flametalMineSpawnAltitudeMin.Value, Plugin._flametalMineSpawnAltitudeMax.Value), SpawnDistance = new LocationManager.Range(Plugin._flametalMineSpawnDistanceMin.Value, Plugin._flametalMineSpawnDistanceMax.Value) }; ShaderReplacer.Replace(_flametalMine02); obj16.CreatureSpawner.Add("Spawner_CharredMelee", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee2", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee3", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee4", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee5", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee6", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee7", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee8", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee9", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee10", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee11", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee12", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee13", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee14", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee15", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee16", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee17", "Charred_Melee"); obj16.CreatureSpawner.Add("Spawner_CharredMelee18", "Charred_Melee"); obj16.CreatureSpawner.Add("ExteriorSpawner_CharredMelee", "Charred_Melee"); obj16.CreatureSpawner.Add("ExteriorSpawner_CharredMelee (1)", "Charred_Melee"); obj16.CreatureSpawner.Add("ExteriorSpawner_CharredMelee (2)", "Charred_Melee"); obj16.CreatureSpawner.Add("ExteriorSpawner_CharredMage (3)", "Charred_Mage"); ShaderReplacer.Replace(_mineBundle.LoadAsset<GameObject>("bom_InteriorEnvironmentZoneForce")); Item item = new Item(_mineBundle, "BOM_BonemassKey"); item.DropsFrom.Add("Bonemass", 1f, 1, 1, levelMultiplier: false); item.Configurable = Configurability.Disabled; Item item2 = new Item(_mineBundle, "BOM_EikthyrKey"); item2.DropsFrom.Add("Eikthyr", 1f, 1, 1, levelMultiplier: false); item2.Configurable = Configurability.Disabled; Item item3 = new Item(_mineBundle, "BOM_CrystalKey"); item3.DropsFrom.Add("Dragon", 1f, 1, 1, levelMultiplier: false); item3.Configurable = Configurability.Disabled; Item item4 = new Item(_mineBundle, "BOM_LavaKey"); item4.DropsFrom.Add("SeekerQueen", 1f, 1, 1, levelMultiplier: false); item4.Configurable = Configurability.Disabled; PrefabManager.RegisterPrefab(_mineBundle, "bom_sfx_rock_destroyed"); PrefabManager.RegisterPrefab(_mineBundle, "bom_sfx_rock_hit"); PrefabManager.RegisterPrefab(_mineBundle, "bom_vfx_RockDestroyed_Obsidian"); PrefabManager.RegisterPrefab(_mineBundle, "bom_vfx_RockHit_Obsidian"); PrefabManager.RegisterPrefab(_mineBundle, "bom_sfx_metalgate_close"); PrefabManager.RegisterPrefab(_mineBundle, "bom_sfx_metalgate_open"); } public static void InitMine(ZNetScene zNetScene) { FlintMine01(zNetScene); FlintMine02(zNetScene); CopperMine01(zNetScene); CopperMine02(zNetScene); TinMine01(zNetScene); TinMine02(zNetScene); CoalMine01(zNetScene); CoalMine02(zNetScene); IronMine01(zNetScene); IronMine02(zNetScene); SilverMine01(zNetScene); SilverMine02(zNetScene); BlackMetalMine01(zNetScene); BlackMetalMine02(zNetScene); FlametalMine01(zNetScene); FlametalMine02(zNetScene); } private static void FlintMine01(ZNetScene zNetScene) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) DropOnDestroyed[] componentsInChildren = _flintMine01.GetComponentsInChildren<DropOnDestroyed>(true); if (componentsInChildren == null) { return; } DropOnDestroyed[] array = componentsInChildren; foreach (DropOnDestroyed drop in array) { drop.m_dropWhenDestroyed.m_drops = new List<DropData>(1) { new DropData { m_item = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("Flint")), m_stackMin = 1, m_stackMax = 1, m_weight = 1f } }; Plugin._flintDepositDropChance.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropChance = Plugin._flintDepositDropChance.Value; }; drop.m_dropWhenDestroyed.m_dropChance = Plugin._flintDepositDropChance.Value; Plugin._flintDepositDropMin.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMin = Plugin._flintDepositDropMin.Value; }; drop.m_dropWhenDestroyed.m_dropMin = Plugin._flintDepositDropMin.Value; Plugin._flintDepositDropMax.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMax = Plugin._flintDepositDropMax.Value; }; drop.m_dropWhenDestroyed.m_dropMax = Plugin._flintDepositDropMax.Value; } } private static void FlintMine02(ZNetScene zNetScene) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) DropOnDestroyed[] componentsInChildren = _flintMine02.GetComponentsInChildren<DropOnDestroyed>(true); if (componentsInChildren == null) { return; } DropOnDestroyed[] array = componentsInChildren; foreach (DropOnDestroyed drop in array) { drop.m_dropWhenDestroyed.m_drops = new List<DropData>(1) { new DropData { m_item = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("Flint")), m_stackMin = 1, m_stackMax = 1, m_weight = 1f } }; Plugin._flintDepositDropChance.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropChance = Plugin._flintDepositDropChance.Value; }; drop.m_dropWhenDestroyed.m_dropChance = Plugin._flintDepositDropChance.Value; Plugin._flintDepositDropMin.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMin = Plugin._flintDepositDropMin.Value; }; drop.m_dropWhenDestroyed.m_dropMin = Plugin._flintDepositDropMin.Value; Plugin._flintDepositDropMax.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMax = Plugin._flintDepositDropMax.Value; }; drop.m_dropWhenDestroyed.m_dropMax = Plugin._flintDepositDropMax.Value; } } private static void CopperMine01(ZNetScene zNetScene) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) MineRock[] componentsInChildren = _copperMine01.GetComponentsInChildren<MineRock>(true); if (componentsInChildren != null) { MineRock[] array = componentsInChildren; foreach (MineRock mine in array) { mine.m_dropItems.m_drops = new List<DropData>(2) { new DropData { m_item = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("CopperOre")), m_stackMin = 1, m_stackMax = 1, m_weight = 0.85f }, new DropData { m_item = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("Stone")), m_stackMin = 1, m_stackMax = 1, m_weight = 1f } }; Plugin._copperDepositDropChance.SettingChanged += delegate { mine.m_dropItems.m_dropChance = Plugin._copperDepositDropChance.Value; }; mine.m_dropItems.m_dropChance = Plugin._copperDepositDropChance.Value; Plugin._copperDepositDropMin.SettingChanged += delegate { mine.m_dropItems.m_dropMin = Plugin._copperDepositDropMin.Value; }; mine.m_dropItems.m_dropMin = Plugin._copperDepositDropMin.Value; Plugin._copperDepositDropMax.SettingChanged += delegate { mine.m_dropItems.m_dropMax = Plugin._copperDepositDropMax.Value; }; mine.m_dropItems.m_dropMax = Plugin._copperDepositDropMax.Value; } } Door componentInChildren = _copperMine01.GetComponentInChildren<Door>(true); if (!((Object)(object)componentInChildren == (Object)null)) { componentInChildren.m_keyItem = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("BOM_EikthyrKey")).GetComponent<ItemDrop>(); componentInChildren.m_keyItem.m_itemData.m_shared.m_maxStackSize = ((Plugin._stackableKeys.Value != Plugin.Toggle.On) ? 1 : 10); } } private static void CopperMine02(ZNetScene zNetScene) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) MineRock[] componentsInChildren = _copperMine02.GetComponentsInChildren<MineRock>(true); if (componentsInChildren != null) { MineRock[] array = componentsInChildren; foreach (MineRock mine in array) { mine.m_dropItems.m_drops = new List<DropData>(2) { new DropData { m_item = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("CopperOre")), m_stackMin = 1, m_stackMax = 1, m_weight = 0.85f }, new DropData { m_item = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("Stone")), m_stackMin = 1, m_stackMax = 1, m_weight = 1f } }; Plugin._copperDepositDropChance.SettingChanged += delegate { mine.m_dropItems.m_dropChance = Plugin._copperDepositDropChance.Value; }; mine.m_dropItems.m_dropChance = Plugin._copperDepositDropChance.Value; Plugin._copperDepositDropMin.SettingChanged += delegate { mine.m_dropItems.m_dropMin = Plugin._copperDepositDropMin.Value; }; mine.m_dropItems.m_dropMin = Plugin._copperDepositDropMin.Value; Plugin._copperDepositDropMax.SettingChanged += delegate { mine.m_dropItems.m_dropMax = Plugin._copperDepositDropMax.Value; }; mine.m_dropItems.m_dropMax = Plugin._copperDepositDropMax.Value; } } Door componentInChildren = _copperMine02.GetComponentInChildren<Door>(true); if (!((Object)(object)componentInChildren == (Object)null)) { componentInChildren.m_keyItem = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("BOM_EikthyrKey")).GetComponent<ItemDrop>(); componentInChildren.m_keyItem.m_itemData.m_shared.m_maxStackSize = ((Plugin._stackableKeys.Value != Plugin.Toggle.On) ? 1 : 10); } } private static void TinMine01(ZNetScene zNetScene) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) DropOnDestroyed[] componentsInChildren = _tinMine01.GetComponentsInChildren<DropOnDestroyed>(true); if (componentsInChildren != null) { DropOnDestroyed[] array = componentsInChildren; foreach (DropOnDestroyed drop in array) { drop.m_dropWhenDestroyed.m_drops = new List<DropData>(1) { new DropData { m_item = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("TinOre")), m_stackMin = 1, m_stackMax = 1, m_weight = 1f } }; Plugin._tinDepositDropChance.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropChance = Plugin._tinDepositDropChance.Value; }; drop.m_dropWhenDestroyed.m_dropChance = Plugin._tinDepositDropChance.Value; Plugin._tinDepositDropMin.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMin = Plugin._tinDepositDropMin.Value; }; drop.m_dropWhenDestroyed.m_dropMin = Plugin._tinDepositDropMin.Value; Plugin._tinDepositDropMax.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMax = Plugin._tinDepositDropMax.Value; }; drop.m_dropWhenDestroyed.m_dropMax = Plugin._tinDepositDropMax.Value; } } Door componentInChildren = _tinMine01.GetComponentInChildren<Door>(true); if (!((Object)(object)componentInChildren == (Object)null)) { componentInChildren.m_keyItem = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("BOM_EikthyrKey")).GetComponent<ItemDrop>(); componentInChildren.m_keyItem.m_itemData.m_shared.m_maxStackSize = ((Plugin._stackableKeys.Value != Plugin.Toggle.On) ? 1 : 10); } } private static void TinMine02(ZNetScene zNetScene) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) DropOnDestroyed[] componentsInChildren = _tinMine02.GetComponentsInChildren<DropOnDestroyed>(true); if (componentsInChildren != null) { DropOnDestroyed[] array = componentsInChildren; foreach (DropOnDestroyed drop in array) { drop.m_dropWhenDestroyed.m_drops = new List<DropData>(1) { new DropData { m_item = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("TinOre")), m_stackMin = 1, m_stackMax = 1, m_weight = 1f } }; Plugin._tinDepositDropChance.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropChance = Plugin._tinDepositDropChance.Value; }; drop.m_dropWhenDestroyed.m_dropChance = Plugin._tinDepositDropChance.Value; Plugin._tinDepositDropMin.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMin = Plugin._tinDepositDropMin.Value; }; drop.m_dropWhenDestroyed.m_dropMin = Plugin._tinDepositDropMin.Value; Plugin._tinDepositDropMax.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMax = Plugin._tinDepositDropMax.Value; }; drop.m_dropWhenDestroyed.m_dropMax = Plugin._tinDepositDropMax.Value; } } Door componentInChildren = _tinMine02.GetComponentInChildren<Door>(true); if (!((Object)(object)componentInChildren == (Object)null)) { componentInChildren.m_keyItem = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("BOM_EikthyrKey")).GetComponent<ItemDrop>(); componentInChildren.m_keyItem.m_itemData.m_shared.m_maxStackSize = ((Plugin._stackableKeys.Value != Plugin.Toggle.On) ? 1 : 10); } } private static void CoalMine01(ZNetScene zNetScene) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) DropOnDestroyed[] componentsInChildren = _coalMine01.GetComponentsInChildren<DropOnDestroyed>(true); if (componentsInChildren != null) { DropOnDestroyed[] array = componentsInChildren; foreach (DropOnDestroyed drop in array) { drop.m_dropWhenDestroyed.m_drops = new List<DropData>(1) { new DropData { m_item = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("Coal")), m_stackMin = 1, m_stackMax = 1, m_weight = 1f } }; Plugin._coalDepositDropChance.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropChance = Plugin._coalDepositDropChance.Value; }; drop.m_dropWhenDestroyed.m_dropChance = Plugin._coalDepositDropChance.Value; Plugin._coalDepositDropMin.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMin = Plugin._coalDepositDropMin.Value; }; drop.m_dropWhenDestroyed.m_dropMin = Plugin._coalDepositDropMin.Value; Plugin._coalDepositDropMax.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMax = Plugin._coalDepositDropMax.Value; }; drop.m_dropWhenDestroyed.m_dropMax = Plugin._coalDepositDropMax.Value; } } Door componentInChildren = _coalMine01.GetComponentInChildren<Door>(true); if (!((Object)(object)componentInChildren == (Object)null)) { componentInChildren.m_keyItem = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("CryptKey")).GetComponent<ItemDrop>(); componentInChildren.m_keyItem.m_itemData.m_shared.m_maxStackSize = ((Plugin._stackableKeys.Value != Plugin.Toggle.On) ? 1 : 10); } } private static void CoalMine02(ZNetScene zNetScene) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) DropOnDestroyed[] componentsInChildren = _coalMine02.GetComponentsInChildren<DropOnDestroyed>(true); if (componentsInChildren != null) { DropOnDestroyed[] array = componentsInChildren; foreach (DropOnDestroyed drop in array) { drop.m_dropWhenDestroyed.m_drops = new List<DropData>(1) { new DropData { m_item = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("Coal")), m_stackMin = 1, m_stackMax = 1, m_weight = 1f } }; Plugin._coalDepositDropChance.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropChance = Plugin._coalDepositDropChance.Value; }; drop.m_dropWhenDestroyed.m_dropChance = Plugin._coalDepositDropChance.Value; Plugin._coalDepositDropMin.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMin = Plugin._coalDepositDropMin.Value; }; drop.m_dropWhenDestroyed.m_dropMin = Plugin._coalDepositDropMin.Value; Plugin._coalDepositDropMax.SettingChanged += delegate { drop.m_dropWhenDestroyed.m_dropMax = Plugin._coalDepositDropMax.Value; }; drop.m_dropWhenDestroyed.m_dropMax = Plugin._coalDepositDropMax.Value; } } Door componentInChildren = _coalMine02.GetComponentInChildren<Door>(true); if (!((Object)(object)componentInChildren == (Object)null)) { componentInChildren.m_keyItem = zNetScene.GetPrefab(StringExtensionMethods.GetStableHashCode("CryptKey")).GetComponent<ItemDrop>(); componentInChildren.m_keyItem.m_itemData.m_shared.m_maxStackSize = ((Plugin._stackableKeys.Value != Plugin.Toggle.On) ? 1 : 10); } } private static void IronMine01(ZNetScene zNetScene) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) MineRock[] componentsInChildren = _ironMine01.GetComponentsInChildren<MineRock>(true); if (componentsInChildren != null) { MineRock[] array = compone