Decompiled source of OreMines v1.1.7

OreMines.dll

Decompiled 2 weeks ago
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: AssemblyTitle("OreMines")]
[assembly: AssemblyDescription("https://thunderstore.io/c/valheim/p/blacks7ar/OreMines/")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("blacks7ar")]
[assembly: AssemblyProduct("OreMines")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("41E3DA5A-E3B3-4DB1-910A-BFA3A359B1CA")]
[assembly: AssemblyFileVersion("1.1.7")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.1.7.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.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
	[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.1.7")]
	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.1.7";

		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.1.7",
			MinimumRequiredVersion = "1.1.7",
			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