Decompiled source of Fruit Trees v1.3.3

FruitTrees.dll

Decompiled 3 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("FruitTrees")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("FruitTrees")]
[assembly: AssemblyCopyright("Copyright ©  2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("CA520BCE-14A3-4820-BF77-39A39D19BF44")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
public class ShaderReplacer : MonoBehaviour
{
	[Tooltip("Use this Field For Normal Renderers")]
	[SerializeField]
	internal Renderer[] renderers = (Renderer[])(object)new Renderer[0];

	private void OnEnable()
	{
		if (renderers == null)
		{
			return;
		}
		Renderer[] array = renderers;
		foreach (Renderer val in array)
		{
			Material[] sharedMaterials = val.sharedMaterials;
			foreach (Material val2 in sharedMaterials)
			{
				string name = ((Object)val2.shader).name;
				val2.shader = Shader.Find(name);
			}
		}
	}
}
namespace FruitTrees;

[BepInPlugin("horemvore.FruitTrees", "FruitTrees", "1.3.3")]
[BepInIncompatibility("Azumatt.AzuDevMod")]
[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
internal class FruitTrees : BaseUnityPlugin
{
	public const string PluginGUID = "horemvore.FruitTrees";

	public const string PluginName = "FruitTrees";

	public const string PluginVersion = "1.3.3";

	public static bool isModded = true;

	public static GameObject TreeBanana;

	public static GameObject TreeApple;

	public static GameObject TreeAppleGreen;

	public static GameObject TreePear;

	public static GameObject TreePeach;

	public static GameObject TreeOrange;

	public static GameObject TreeMango;

	public static GameObject TreeLemon;

	public static GameObject TreeLime;

	public static GameObject TreeCherry;

	public static GameObject TreeAvocado;

	public static GameObject TreeGuava;

	public static GameObject TreeCoconut;

	public static GameObject TreeWalnut;

	public static GameObject BushPineapple;

	public static GameObject BushBlackGrape;

	public static GameObject BushGrape;

	public static GameObject BushBlackcurrent;

	public static GameObject BushRedcurrent;

	public static GameObject SaplingBanana;

	public static GameObject SaplingApple;

	public static GameObject SaplingAppleGreen;

	public static GameObject SaplingPear;

	public static GameObject SaplingPeach;

	public static GameObject SaplingOrange;

	public static GameObject SaplingMango;

	public static GameObject SaplingLemon;

	public static GameObject SaplingLime;

	public static GameObject SaplingCherry;

	public static GameObject SaplingAvocado;

	public static GameObject SaplingPapaya;

	public static GameObject SaplingCoconut;

	public static GameObject SaplingPineapple;

	public static GameObject SaplingBlackGrape;

	public static GameObject SaplingGrape;

	public static GameObject SaplingBlackcurrent;

	public static GameObject SaplingRedcurrent;

	public AssetBundle fruitTreesBundle;

	private CustomLocalization Localization;

	public string[] prefabList = new string[8] { "Spawner_LakePerch_FT", "Spawner_LakePike_FT", "Spawner_LakeSalmon_FT", "Spawner_ChinookSalmon_FT", "VFX_Dust_Piece_FT", "VFX_Pickable_Pick_FT", "LakeLiquid18_FT", "LakeLiquid24_FT" };

	public string[] itemList = new string[23]
	{
		"SockeyeSalmon_Fish_FT", "YellowPerch_Fish_FT", "SpottedPike_Fish_FT", "ChinookSalmon_Fish_FT", "Apple_SC", "Apple_DoD", "Banana_DoD", "Pear_SC", "Peach_SC", "Orange_SC",
		"Mango_SC", "Lemon_SC", "Lime_SC", "Avocado_Food_FT", "Cherry_Food_FT", "Guava_Food_FT", "Walnut_Food_FT", "Coconut_SC", "Pineapple_Food_FT", "Grapes_SC",
		"Grapes_FT", "Blackcurrent_Food_FT", "Redcurrent_Food_FT"
	};

	public string[] sfxList = new string[3] { "SFX_Pickable_Pick_FT", "SFX_SmallTree_Falling_FT", "SFX_Wood_Chop_FT" };

	public ConfigEntry<bool> LocationsEnable;

	public ConfigEntry<bool> LoggingEnable;

	private void Awake()
	{
		CreateConfigurationValues();
		LoadBundle();
		AddLocalizations();
		AddPrefabs();
		AddSFX();
		CreateItems();
		CreateSeeds();
		AddCustomFruitTrees();
		AddCustomFruitBushes();
		AddSaplings();
		CreateFishRecipe();
		ZoneManager.OnVanillaLocationsAvailable += AddLocations;
		PrefabManager.OnPrefabsRegistered += FixSFX;
	}

	private void CreateConfigurationValues()
	{
		//IL_0021: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Unknown result type (might be due to invalid IL or missing references)
		//IL_002f: Expected O, but got Unknown
		//IL_002f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0039: Expected O, but got Unknown
		//IL_005e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_006c: Expected O, but got Unknown
		//IL_006c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0076: Expected O, but got Unknown
		LocationsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("66 Oasis", "Enable", true, new ConfigDescription("Set to true to spawn Oasis location's on world generation.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		LoggingEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("99 Logging", "Enable", false, new ConfigDescription("Enables logging.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		SynchronizationManager.OnConfigurationSynchronized += delegate(object obj, ConfigurationSynchronizationEventArgs attr)
		{
			if (attr.InitialSynchronization)
			{
				Logger.LogMessage((object)"Initial Config sync event received for Fruit Trees");
			}
			else
			{
				Logger.LogMessage((object)"Config sync event received for Fruit Trees");
			}
		};
		SynchronizationManager.OnAdminStatusChanged += delegate
		{
			Logger.LogMessage((object)("Admin status sync event received, Fruit Trees: " + (SynchronizationManager.Instance.PlayerIsAdmin ? "You're admin now" : "Downvoted, boy")));
		};
	}

	private void AddLocalizations()
	{
		try
		{
			Localization = LocalizationManager.Instance.GetLocalization();
			CustomLocalization localization = Localization;
			string text = "English";
			localization.AddTranslation(ref text, new Dictionary<string, string>
			{
				{ "fish_sockeye_ft", "Sockeye Salmon" },
				{ "fish_sockeye_desc_ft", "Tasty" },
				{ "fish_chinook_ft", "Chinook Salmon" },
				{ "fish_chinook_desc_ft", "Tasty" },
				{ "fish_spotted_ft", "Spotted Pike" },
				{ "fish_spotted_desc_ft", "Tasty" },
				{ "fish_yellow_ft", "Yellow Perch" },
				{ "fish_yellow_desc_ft", "Tasty" },
				{ "item_redcurrentseed_ft", "Redcurrent Seed" },
				{ "item_redcurrentseed_desc_ft", "Can be planted" },
				{ "item_blackcurrentseed_ft", "Blackcurrent Seed" },
				{ "item_blackcurrentseed_desc_ft", "Can be planted" },
				{ "item_grapeseed_ft", "Grape Seed" },
				{ "item_grapeseed_desc_ft", "Can be planted" },
				{ "item_grapeseedred_ft", "Black Grape Seed" },
				{ "item_grapeseedred_desc_ft", "Can be planted" },
				{ "item_pineappleseed_ft", "Pineapple Seed" },
				{ "item_pineappleseed_desc_ft", "Can be planted" },
				{ "item_limeseed_ft", "Lime Seed" },
				{ "item_limeseed_desc_ft", "Can be planted" },
				{ "item_lemonseed_ft", "Lemon Seed" },
				{ "item_lemonseed_desc_ft", "Can be planted" },
				{ "item_mangoseed_ft", "Mango Seed" },
				{ "item_mangoseed_desc_ft", "Can be planted" },
				{ "item_orangeseed_ft", "Orange Seed" },
				{ "item_orangeseed_desc_ft", "Can be planted" },
				{ "item_peachseed_ft", "Peach Seed" },
				{ "item_peachseed_desc_ft", "Can be planted" },
				{ "item_pearseed_ft", "Pear Seed" },
				{ "item_pearseed_desc_ft", "Can be planted" },
				{ "item_avocadoseed_ft", "Avocado Seed" },
				{ "item_avocadoseed_description_ft", "Can be planted" },
				{ "item_cherryseed_ft", "Cherry Seed" },
				{ "item_cherryseed_description_ft", "Can be planted" },
				{ "item_papayaseed_ft", "Papaya Seed" },
				{ "item_papayaseed_description_ft", "Can be planted" },
				{ "item_bananaseed_ft", "Lady Finger Banana Seed" },
				{ "item_bananaseed_description_ft", "Can be planted" },
				{ "item_appleseed_ft", "Pink Lady Seed" },
				{ "item_appleseed_description_ft", "Can be planted" },
				{ "item_applegrannyseed_ft", "Granny Smiths Seed" },
				{ "item_applegrannyseed_desc_ft", "Can be planted" },
				{ "prop_applesapling_ft", "Apple Sapling" },
				{ "prop_applesapling_desc_ft", "A baby apple tree. Requires Meadows biome." },
				{ "prop_cherrysapling_ft", "Cherry Sapling" },
				{ "prop_cherrysapling_desc_ft", "A baby cherry tree. Requires Meadows biome." },
				{ "prop_pearsapling_ft", "Pear Sapling" },
				{ "prop_pearsapling_desc_ft", "A baby pear tree. Requires Meadows biome." },
				{ "prop_avocadosapling_ft", "Avocado Sapling" },
				{ "prop_avocadosapling_desc_ft", "A baby avocado tree. Requires Meadows biome." },
				{ "prop_bananasapling_ft", "Banana Sapling" },
				{ "prop_bananasapling_desc_ft", "A baby banana tree. Requires Plains biome." },
				{ "prop_lemonsapling_ft", "Lemon Sapling" },
				{ "prop_lemonsapling_desc_ft", "A baby lemon tree. Requires Meadows biome." },
				{ "prop_limesapling_ft", "Lime Sapling" },
				{ "prop_limesapling_desc_ft", "A baby lime tree. Requires Meadows biome." },
				{ "prop_orangesapling_ft", "Orange Sapling" },
				{ "prop_orangesapling_desc_ft", "A baby orange tree. Requires Meadows biome." },
				{ "prop_peachsapling_ft", "Peach Sapling" },
				{ "prop_peachsapling_desc_ft", "A baby peach tree. Requires Meadows biome." },
				{ "prop_mangosapling_ft", "Mango Sapling" },
				{ "prop_mangosapling_desc_ft", "A baby mango tree. Requires Meadows biome." },
				{ "prop_coconutsapling_ft", "Coconut Sapling" },
				{ "prop_coconutsapling_desc_ft", "A baby coconut tree. Requires Plains biome." },
				{ "prop_papayasapling_ft", "Papaya Sapling" },
				{ "prop_papayasapling_desc_ft", "A baby papaya tree. Requires Plains biome." },
				{ "prop_pineapplesapling_ft", "Pineapple Seedling" },
				{ "prop_pineapplesapling_desc_ft", "A baby pineapple bush. Requires Plains biome." },
				{ "prop_blackgrapesapling_ft", "Black Grape Seedling" },
				{ "prop_blackgrapesapling_desc_ft", "A baby grape vine. Requires Meadows biome." },
				{ "prop_grapesapling_ft", "Grape Seedling" },
				{ "prop_grapesapling_desc_ft", "A baby grape vine. Requires Meadows biome." },
				{ "prop_blackcurrentsapling_ft", "Blackcurrent Sapling" },
				{ "prop_blackcurrentsapling_desc_ft", "A baby blackcurrent bush. Requires Meadows biome." },
				{ "prop_redcurrentsapling_ft", "Redcurrent Sapling" },
				{ "prop_redcurrentsapling_desc_ft", "A baby redcurrent bush. Requires Meadows biome." },
				{ "prop_blackcurrent_ft", "Blackcurrent Bush" },
				{ "prop_redcurrent_ft", "Redcurrent Bush" },
				{ "prop_grapevine_ft", "Grape Vine" },
				{ "prop_pineapplebush_ft", "Pineable Bush" },
				{ "prop_plumtree_ft", "Plum Tree" },
				{ "prop_peartree_ft", "Pear Tree" },
				{ "prop_peachtree_ft", "Peach Tree" },
				{ "prop_orangetree_ft", "Orange Tree" },
				{ "prop_mangotree_ft", "Mango Tree" },
				{ "prop_lemontree_ft", "Lemon Tree" },
				{ "prop_limetree_ft", "Lime Tree" },
				{ "prop_cherrytree_ft", "Cherry Tree" },
				{ "prop_avocadotree_ft", "Avocado Tree" },
				{ "prop_figtree_ft", "Fig Tree" },
				{ "prop_guavatree_ft", "Papaya Tree" },
				{ "prop_olivetree_ft", "Olive Tree" },
				{ "prop_coconuttree_ft", "Coconut Tree" },
				{ "prop_walnuttree_ft", "Walnut Tree" },
				{ "prop_pinkladytree_ft", "Apple Tree" },
				{ "prop_grannysmithtree_ft", "Apple Tree" },
				{ "prop_bananatree_ft", "Banana Tree" },
				{ "item_redcurrent_ft", "Redcurrent" },
				{ "item_redcurrent_desc_ft", "Found in clear space's" },
				{ "item_blackcurrent_ft", "Blackcurrent" },
				{ "item_blackcurrent_desc_ft", "Found in clear space's" },
				{ "item_grapes_sc", "Grapes" },
				{ "item_grapes_desc_sc", "Found in clear space's" },
				{ "item_grapes_ft", "Grapes" },
				{ "item_grapes_desc_ft", "Found in clear space's" },
				{ "item_pineapple_ft", "Pineapple" },
				{ "item_pineapple_desc_ft", "Found in clear space's" },
				{ "item_coconut_sc", "Coconut" },
				{ "item_coconut_desc_sc", "Found near coast" },
				{ "item_walnut_ft", "Walnut" },
				{ "item_walnut_desc_ft", "Gathered from Forest's" },
				{ "item_lime_sc", "Lime" },
				{ "item_lime_desc_sc", "Gathered from Forest's" },
				{ "item_lemon_sc", "Lemon" },
				{ "item_lemon_desc_sc", "Gathered from Forest's" },
				{ "item_mango_sc", "Mango" },
				{ "item_mango_desc_sc", "Gathered from Forest's" },
				{ "item_orange_sc", "Orange" },
				{ "item_orange_desc_sc", "Gathered from Forest's" },
				{ "item_peach_sc", "Peach" },
				{ "item_peach_desc_sc", "Gathered from Forest's" },
				{ "item_pear_sc", "Pear" },
				{ "item_pear_desc_sc", "Gathered from Forest's" },
				{ "item_avocado_ft", "Avocado" },
				{ "item_avocado_description_ft", "Gathered from Forest's" },
				{ "item_cherry_ft", "Cherry" },
				{ "item_cherry_description_ft", "Gathered from Forest's" },
				{ "item_guava_ft", "Papaya" },
				{ "item_guava_description_ft", "Gathered from Forest's" },
				{ "item_banana_dod", "Lady Finger Banana" },
				{ "item_banana_description_dod", "Gathered from Banana Tree's in the Plains and Swamp" },
				{ "item_apple_dod", "Pink Lady" },
				{ "item_apple_description_dod", "Gathered from Forest's" },
				{ "item_apple_sc", "Granny Smiths" },
				{ "item_apple_desc_sc", "Gathered from Forest's" }
			});
			CustomLocalization localization2 = Localization;
			text = "Russian";
			localization2.AddTranslation(ref text, new Dictionary<string, string>
			{
				{ "fish_sockeye_ft", "Нерка лосось" },
				{ "fish_sockeye_desc_ft", "Вкусный" },
				{ "fish_chinook_ft", "Чинух с лососем" },
				{ "fish_chinook_desc_ft", "Вкусный" },
				{ "fish_spotted_ft", "Пятнистая щука" },
				{ "fish_spotted_desc_ft", "Вкусный" },
				{ "fish_yellow_ft", "Желтый окунь" },
				{ "fish_yellow_desc_ft", "Вкусный" },
				{ "item_redcurrentseed_ft", "Семя красной смородины" },
				{ "item_redcurrentseed_desc_ft", "Может быть посажено" },
				{ "item_blackcurrentseed_ft", "Семя черной смородины" },
				{ "item_blackcurrentseed_desc_ft", "Может быть посажено" },
				{ "item_grapeseed_ft", "Семя винограда" },
				{ "item_grapeseed_desc_ft", "Может быть посажено" },
				{ "item_grapeseedred_ft", "Черная виноградная косточка" },
				{ "item_grapeseedred_desc_ft", "Может быть посажено" },
				{ "item_pineappleseed_ft", "Ананасовое семя" },
				{ "item_pineappleseed_desc_ft", "Может быть посажено" },
				{ "item_limeseed_ft", "Семена лайма" },
				{ "item_limeseed_desc_ft", "Может быть посажено" },
				{ "item_lemonseed_ft", "Семя Лимона" },
				{ "item_lemonseed_desc_ft", "Может быть посажено" },
				{ "item_mangoseed_ft", "Семя Манго" },
				{ "item_mangoseed_desc_ft", "Может быть посажено" },
				{ "item_orangeseed_ft", "Опельсиновая семечка" },
				{ "item_orangeseed_desc_ft", "Может быть посажено" },
				{ "item_peachseed_ft", "Персиковая семечка" },
				{ "item_peachseed_desc_ft", "Может быть посажено" },
				{ "item_pearseed_ft", "Семена груши" },
				{ "item_pearseed_desc_ft", "Может быть посажено" },
				{ "item_avocadoseed_ft", "Семеня Авокадо" },
				{ "item_avocadoseed_description_ft", "Может быть посажено" },
				{ "item_cherryseed_ft", "Вишневая косточка" },
				{ "item_cherryseed_description_ft", "Может быть посажено" },
				{ "item_papayaseed_ft", "Семя Папая" },
				{ "item_papayaseed_description_ft", "Может быть посажено" },
				{ "item_bananaseed_ft", "Банановое семя Леди Фингер" },
				{ "item_bananaseed_description_ft", "Может быть посажено" },
				{ "item_appleseed_ft", "Семя Розовой Леди" },
				{ "item_appleseed_description_ft", "Может быть посажено" },
				{ "item_applegrannyseed_ft", "Семя Гренни Смитс" },
				{ "item_applegrannyseed_desc_ft", "Может быть посажено" },
				{ "prop_applesapling_ft", "Саженец яблони" },
				{ "prop_applesapling_desc_ft", "Молодой побег Яблони. Требуется биом Луга." },
				{ "prop_cherrysapling_ft", "Саженец Вишни" },
				{ "prop_cherrysapling_desc_ft", "Молодой побег Вишни. Требуется биом Луга." },
				{ "prop_pearsapling_ft", "Саженец Груши" },
				{ "prop_pearsapling_desc_ft", "Молодой побег груши. Требуется биом Луга." },
				{ "prop_avocadosapling_ft", "Саженец Авокадо" },
				{ "prop_avocadosapling_desc_ft", "Молодой побег Авокадо. Требуется биом Луга." },
				{ "prop_bananasapling_ft", "Саженец Банана" },
				{ "prop_bananasapling_desc_ft", "Молодой побег Банана. Требуется биом Равнины." },
				{ "prop_lemonsapling_ft", "Саженец Лимона" },
				{ "prop_lemonsapling_desc_ft", "Молодой побег Лимона. Требуется биом Луга." },
				{ "prop_limesapling_ft", "Саженец Лайма" },
				{ "prop_limesapling_desc_ft", "Молодой побег лайма. Требуется биом Луга." },
				{ "prop_orangesapling_ft", "Саженец Апельсина" },
				{ "prop_orangesapling_desc_ft", "Молодой побег Апельсина. Требуется биом Луга." },
				{ "prop_peachsapling_ft", "Саженец Персика" },
				{ "prop_peachsapling_desc_ft", "Молодой побег персика. Требуется биом Луга." },
				{ "prop_mangosapling_ft", "Саженец Манго" },
				{ "prop_mangosapling_desc_ft", "Молодой побег манго. Требуется биом Луга." },
				{ "prop_coconutsapling_ft", "Саженец Кокоса" },
				{ "prop_coconutsapling_desc_ft", "Молодой побег Кокоса. Требуется биом Равнины." },
				{ "prop_papayasapling_ft", "Саженец Папая" },
				{ "prop_papayasapling_desc_ft", "Молодой побег Папая. Требуется биом Равнины." },
				{ "prop_pineapplesapling_ft", "Саженец Ананаса" },
				{ "prop_pineapplesapling_desc_ft", "Молодой куст Ананаса. Требуется биом Равнины." },
				{ "prop_blackgrapesapling_ft", "Саженец Черного винограда" },
				{ "prop_blackgrapesapling_desc_ft", "Молодые побеги Черного винорада . Требуется биом Луга." },
				{ "prop_grapesapling_ft", "Саженец винограда" },
				{ "prop_grapesapling_desc_ft", "Молодые побеги винорада . Требуется биом Луга." },
				{ "prop_blackcurrentsapling_ft", "Саженец черной смородины" },
				{ "prop_blackcurrentsapling_desc_ft", "Молодой куст Черной смородины. Требуется биом Луга." },
				{ "prop_redcurrentsapling_ft", "Саженец красной смородины" },
				{ "prop_redcurrentsapling_desc_ft", "Молодой куст красной смородины. Требуется биом Луга." },
				{ "prop_blackcurrent_ft", "Куст Черной смородины" },
				{ "prop_redcurrent_ft", "Куст Красной смородины" },
				{ "prop_grapevine_ft", "Виноградная лоза" },
				{ "prop_pineapplebush_ft", "Ананасовый куст" },
				{ "prop_plumtree_ft", "Слива" },
				{ "prop_peartree_ft", "Груша" },
				{ "prop_peachtree_ft", "Персик" },
				{ "prop_orangetree_ft", "Апельсин" },
				{ "prop_mangotree_ft", "Манго" },
				{ "prop_lemontree_ft", "Лемон" },
				{ "prop_limetree_ft", "Лайм" },
				{ "prop_cherrytree_ft", "Вишня" },
				{ "prop_avocadotree_ft", "Авокадо" },
				{ "prop_figtree_ft", "Инжир" },
				{ "prop_guavatree_ft", "Папая" },
				{ "prop_olivetree_ft", "Оливковое дерево" },
				{ "prop_coconuttree_ft", "Кокосовая пальма" },
				{ "prop_walnuttree_ft", "Ореховое дерево" },
				{ "prop_pinkladytree_ft", "Яблона Пинк леди" },
				{ "prop_grannysmithtree_ft", "Яблоня Гренни смит" },
				{ "prop_bananatree_ft", "Банановая пальма" },
				{ "item_redcurrent_ft", "Красная смородина" },
				{ "item_redcurrent_desc_ft", "Найден в чистом космосе" },
				{ "item_blackcurrent_ft", "Черная смородина" },
				{ "item_blackcurrent_desc_ft", "Найден в чистом космосе" },
				{ "item_grapes_sc", "Виноград" },
				{ "item_grapes_desc_sc", "Найден в чистом космосе" },
				{ "item_grapes_ft", "Виноград" },
				{ "item_grapes_desc_ft", "Найден в чистом космосе" },
				{ "item_pineapple_ft", "Ананас" },
				{ "item_pineapple_desc_ft", "Найден в чистом космосе" },
				{ "item_coconut_sc", "Кокос" },
				{ "item_coconut_desc_sc", "Найден недалеко от берега" },
				{ "item_walnut_ft", "Орех" },
				{ "item_walnut_desc_ft", "Собрано из леса" },
				{ "item_lime_sc", "Лимон" },
				{ "item_lime_desc_sc", "Собрано из леса" },
				{ "item_lemon_sc", "Лимон" },
				{ "item_lemon_desc_sc", "Собрано из леса" },
				{ "item_mango_sc", "Манго" },
				{ "item_mango_desc_sc", "Собрано из леса" },
				{ "item_orange_sc", "Апельсин" },
				{ "item_orange_desc_sc", "Собрано из леса" },
				{ "item_peach_sc", "Персик" },
				{ "item_peach_desc_sc", "Собрано из леса" },
				{ "item_pear_sc", "Груша" },
				{ "item_pear_desc_sc", "Собрано из леса" },
				{ "item_avocado_ft", "Авокадо" },
				{ "item_avocado_description_ft", "Собрано из леса" },
				{ "item_cherry_ft", "Вишня" },
				{ "item_cherry_description_ft", "Собрано из леса" },
				{ "item_guava_ft", "Папая" },
				{ "item_guava_description_ft", "Собрано из леса" },
				{ "item_banana_dod", "Банан Леди Фингер " },
				{ "item_banana_description_dod", "Собирается с банановых деревьев на равнинах и болотах." },
				{ "item_apple_dod", "Розовая леди" },
				{ "item_apple_description_dod", "Собрано из леса" },
				{ "item_apple_sc", "Гренни Смитс" },
				{ "item_apple_desc_sc", "Собрано из леса" }
			});
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Localication for Deds Army: {arg}");
		}
	}

	public void LoadBundle()
	{
		fruitTreesBundle = AssetUtils.LoadAssetBundleFromResources("fruittrees", Assembly.GetExecutingAssembly());
	}

	private void AddPrefabs()
	{
		//IL_0053: Unknown result type (might be due to invalid IL or missing references)
		//IL_005a: Expected O, but got Unknown
		try
		{
			string[] array = prefabList;
			foreach (string text in array)
			{
				GameObject prefab = PrefabManager.Instance.GetPrefab(text);
				if ((Object)(object)prefab == (Object)null)
				{
					GameObject val = fruitTreesBundle.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomPrefab val2 = new CustomPrefab(val, true);
						PrefabManager.Instance.AddPrefab(val2);
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text + " to the Object database"));
						}
					}
					else if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the Object database"));
					}
				}
				else if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)(text + "already exists"));
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Prefabs: {arg}");
		}
	}

	private void AddSFX()
	{
		//IL_0053: Unknown result type (might be due to invalid IL or missing references)
		//IL_005a: Expected O, but got Unknown
		try
		{
			string[] array = sfxList;
			foreach (string text in array)
			{
				GameObject prefab = PrefabManager.Instance.GetPrefab(text);
				if ((Object)(object)prefab == (Object)null)
				{
					GameObject val = fruitTreesBundle.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomPrefab val2 = new CustomPrefab(val, false);
						PrefabManager.Instance.AddPrefab(val2);
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text + " to the Object database"));
						}
					}
					else if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the Object database"));
					}
				}
				else if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)(text + " already exists"));
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding sfx prefabs: {arg}");
		}
	}

	private void CreateItems()
	{
		//IL_0053: Unknown result type (might be due to invalid IL or missing references)
		//IL_005a: Expected O, but got Unknown
		try
		{
			string[] array = itemList;
			foreach (string text in array)
			{
				GameObject prefab = PrefabManager.Instance.GetPrefab(text);
				if ((Object)(object)prefab == (Object)null)
				{
					GameObject val = fruitTreesBundle.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(val2);
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text + " to the Item database"));
						}
					}
					else if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the Item database"));
					}
				}
				else if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)(text + " already exists"));
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding class items: {arg}");
		}
	}

	private void CreateSeeds()
	{
		//IL_0015: Unknown result type (might be due to invalid IL or missing references)
		//IL_001c: Expected O, but got Unknown
		//IL_0045: Unknown result type (might be due to invalid IL or missing references)
		//IL_004a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Unknown result type (might be due to invalid IL or missing references)
		//IL_005f: Expected O, but got Unknown
		//IL_0067: Unknown result type (might be due to invalid IL or missing references)
		//IL_006d: Expected O, but got Unknown
		//IL_008c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0093: Expected O, but got Unknown
		//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d6: Expected O, but got Unknown
		//IL_00de: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e4: Expected O, but got Unknown
		//IL_0105: Unknown result type (might be due to invalid IL or missing references)
		//IL_010c: Expected O, but got Unknown
		//IL_0135: Unknown result type (might be due to invalid IL or missing references)
		//IL_013a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0146: Unknown result type (might be due to invalid IL or missing references)
		//IL_014f: Expected O, but got Unknown
		//IL_0157: Unknown result type (might be due to invalid IL or missing references)
		//IL_015e: Expected O, but got Unknown
		//IL_0180: Unknown result type (might be due to invalid IL or missing references)
		//IL_0187: Expected O, but got Unknown
		//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ca: Expected O, but got Unknown
		//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d9: Expected O, but got Unknown
		//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0202: Expected O, but got Unknown
		//IL_022b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0230: Unknown result type (might be due to invalid IL or missing references)
		//IL_023c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0245: Expected O, but got Unknown
		//IL_024d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0254: Expected O, but got Unknown
		//IL_0276: Unknown result type (might be due to invalid IL or missing references)
		//IL_027d: Expected O, but got Unknown
		//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c0: Expected O, but got Unknown
		//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_02cf: Expected O, but got Unknown
		//IL_02f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f8: Expected O, but got Unknown
		//IL_0321: Unknown result type (might be due to invalid IL or missing references)
		//IL_0326: Unknown result type (might be due to invalid IL or missing references)
		//IL_0332: Unknown result type (might be due to invalid IL or missing references)
		//IL_033b: Expected O, but got Unknown
		//IL_0343: Unknown result type (might be due to invalid IL or missing references)
		//IL_034a: Expected O, but got Unknown
		//IL_036c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0373: Expected O, but got Unknown
		//IL_039c: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_03b6: Expected O, but got Unknown
		//IL_03be: Unknown result type (might be due to invalid IL or missing references)
		//IL_03c5: Expected O, but got Unknown
		//IL_03e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ee: Expected O, but got Unknown
		//IL_0417: Unknown result type (might be due to invalid IL or missing references)
		//IL_041c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0428: Unknown result type (might be due to invalid IL or missing references)
		//IL_0431: Expected O, but got Unknown
		//IL_0439: Unknown result type (might be due to invalid IL or missing references)
		//IL_0440: Expected O, but got Unknown
		//IL_0462: Unknown result type (might be due to invalid IL or missing references)
		//IL_0469: Expected O, but got Unknown
		//IL_0492: Unknown result type (might be due to invalid IL or missing references)
		//IL_0497: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ac: Expected O, but got Unknown
		//IL_04b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_04bb: Expected O, but got Unknown
		//IL_04dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_04e4: Expected O, but got Unknown
		//IL_050d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0512: Unknown result type (might be due to invalid IL or missing references)
		//IL_051e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0527: Expected O, but got Unknown
		//IL_052f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0536: Expected O, but got Unknown
		//IL_0558: Unknown result type (might be due to invalid IL or missing references)
		//IL_055f: Expected O, but got Unknown
		//IL_0588: Unknown result type (might be due to invalid IL or missing references)
		//IL_058d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0599: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a2: Expected O, but got Unknown
		//IL_05aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b1: Expected O, but got Unknown
		//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_05da: Expected O, but got Unknown
		//IL_0603: Unknown result type (might be due to invalid IL or missing references)
		//IL_0608: Unknown result type (might be due to invalid IL or missing references)
		//IL_0614: Unknown result type (might be due to invalid IL or missing references)
		//IL_061d: Expected O, but got Unknown
		//IL_0625: Unknown result type (might be due to invalid IL or missing references)
		//IL_062c: Expected O, but got Unknown
		//IL_064e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0655: Expected O, but got Unknown
		//IL_067e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0683: Unknown result type (might be due to invalid IL or missing references)
		//IL_068f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0698: Expected O, but got Unknown
		//IL_06a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a7: Expected O, but got Unknown
		//IL_06c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d0: Expected O, but got Unknown
		//IL_06f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_06fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_070a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0713: Expected O, but got Unknown
		//IL_071b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0722: Expected O, but got Unknown
		//IL_0744: Unknown result type (might be due to invalid IL or missing references)
		//IL_074b: Expected O, but got Unknown
		//IL_0774: Unknown result type (might be due to invalid IL or missing references)
		//IL_0779: Unknown result type (might be due to invalid IL or missing references)
		//IL_0785: Unknown result type (might be due to invalid IL or missing references)
		//IL_078e: Expected O, but got Unknown
		//IL_0796: Unknown result type (might be due to invalid IL or missing references)
		//IL_079d: Expected O, but got Unknown
		//IL_07bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c6: Expected O, but got Unknown
		//IL_07ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0800: Unknown result type (might be due to invalid IL or missing references)
		//IL_0809: Expected O, but got Unknown
		//IL_0811: Unknown result type (might be due to invalid IL or missing references)
		//IL_0818: Expected O, but got Unknown
		try
		{
			GameObject val = fruitTreesBundle.LoadAsset<GameObject>("AppleSeed_FT");
			ItemConfig val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Apple_DoD",
					Amount = 1
				}
			};
			CustomItem val3 = new CustomItem(val, true, val2);
			ItemManager.Instance.AddItem(val3);
			GameObject val4 = fruitTreesBundle.LoadAsset<GameObject>("AppleGrannySeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Apple_SC",
					Amount = 1
				}
			};
			CustomItem val5 = new CustomItem(val4, true, val2);
			ItemManager.Instance.AddItem(val5);
			GameObject val6 = fruitTreesBundle.LoadAsset<GameObject>("AvocadoSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Avocado_Food_FT",
					Amount = 1
				}
			};
			CustomItem val7 = new CustomItem(val6, true, val2);
			ItemManager.Instance.AddItem(val7);
			GameObject val8 = fruitTreesBundle.LoadAsset<GameObject>("BananaSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Banana_DoD",
					Amount = 1
				}
			};
			CustomItem val9 = new CustomItem(val8, true, val2);
			ItemManager.Instance.AddItem(val9);
			GameObject val10 = fruitTreesBundle.LoadAsset<GameObject>("BlackcurrentSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Blackcurrent_Food_FT",
					Amount = 1
				}
			};
			CustomItem val11 = new CustomItem(val10, true, val2);
			ItemManager.Instance.AddItem(val11);
			GameObject val12 = fruitTreesBundle.LoadAsset<GameObject>("CherrySeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Cherry_Food_FT",
					Amount = 1
				}
			};
			CustomItem val13 = new CustomItem(val12, true, val2);
			ItemManager.Instance.AddItem(val13);
			GameObject val14 = fruitTreesBundle.LoadAsset<GameObject>("GrapeSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Grapes_FT",
					Amount = 1
				}
			};
			CustomItem val15 = new CustomItem(val14, true, val2);
			ItemManager.Instance.AddItem(val15);
			GameObject val16 = fruitTreesBundle.LoadAsset<GameObject>("GrapeSeedRed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Grapes_SC",
					Amount = 1
				}
			};
			CustomItem val17 = new CustomItem(val16, true, val2);
			ItemManager.Instance.AddItem(val17);
			GameObject val18 = fruitTreesBundle.LoadAsset<GameObject>("PapayaSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Guava_Food_FT",
					Amount = 1
				}
			};
			CustomItem val19 = new CustomItem(val18, true, val2);
			ItemManager.Instance.AddItem(val19);
			GameObject val20 = fruitTreesBundle.LoadAsset<GameObject>("LemonSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Lemon_SC",
					Amount = 1
				}
			};
			CustomItem val21 = new CustomItem(val20, true, val2);
			ItemManager.Instance.AddItem(val21);
			GameObject val22 = fruitTreesBundle.LoadAsset<GameObject>("LimeSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Lime_SC",
					Amount = 1
				}
			};
			CustomItem val23 = new CustomItem(val22, true, val2);
			ItemManager.Instance.AddItem(val23);
			GameObject val24 = fruitTreesBundle.LoadAsset<GameObject>("MangoSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Mango_SC",
					Amount = 1
				}
			};
			CustomItem val25 = new CustomItem(val24, true, val2);
			ItemManager.Instance.AddItem(val25);
			GameObject val26 = fruitTreesBundle.LoadAsset<GameObject>("OrangeSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Orange_SC",
					Amount = 1
				}
			};
			CustomItem val27 = new CustomItem(val26, true, val2);
			ItemManager.Instance.AddItem(val27);
			GameObject val28 = fruitTreesBundle.LoadAsset<GameObject>("PeachSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Peach_SC",
					Amount = 1
				}
			};
			CustomItem val29 = new CustomItem(val28, true, val2);
			ItemManager.Instance.AddItem(val29);
			GameObject val30 = fruitTreesBundle.LoadAsset<GameObject>("PearSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Pear_SC",
					Amount = 1
				}
			};
			CustomItem val31 = new CustomItem(val30, true, val2);
			ItemManager.Instance.AddItem(val31);
			GameObject val32 = fruitTreesBundle.LoadAsset<GameObject>("PineappleSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Pineapple_Food_FT",
					Amount = 1
				}
			};
			CustomItem val33 = new CustomItem(val32, true, val2);
			ItemManager.Instance.AddItem(val33);
			GameObject val34 = fruitTreesBundle.LoadAsset<GameObject>("RedcurrentSeed_FT");
			val2 = new ItemConfig();
			val2.Amount = 4;
			val2.CraftingStation = "piece_workbench";
			val2.MinStationLevel = 1;
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Redcurrent_Food_FT",
					Amount = 1
				}
			};
			CustomItem val35 = new CustomItem(val34, true, val2);
			ItemManager.Instance.AddItem(val35);
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Seeds for Fruit Trees: {arg}");
		}
	}

	private void CreateFishRecipe()
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_0008: Expected O, but got Unknown
		//IL_0035: Unknown result type (might be due to invalid IL or missing references)
		//IL_003a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0046: Unknown result type (might be due to invalid IL or missing references)
		//IL_004f: Expected O, but got Unknown
		//IL_0051: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Unknown result type (might be due to invalid IL or missing references)
		//IL_0062: Unknown result type (might be due to invalid IL or missing references)
		//IL_006b: Expected O, but got Unknown
		//IL_006d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0072: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0087: Expected O, but got Unknown
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_008e: Unknown result type (might be due to invalid IL or missing references)
		//IL_009a: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a3: Expected O, but got Unknown
		//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bb: Expected O, but got Unknown
		try
		{
			RecipeConfig val = new RecipeConfig();
			val.Item = "FishRaw";
			val.Amount = 1;
			val.QualityResultAmountMultiplier = 3;
			val.RequireOnlyOneIngredient = true;
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
			{
				new RequirementConfig
				{
					Item = "SockeyeSalmon_Fish_FT",
					Amount = 1
				},
				new RequirementConfig
				{
					Item = "YellowPerch_Fish_FT",
					Amount = 1
				},
				new RequirementConfig
				{
					Item = "SpottedPike_Fish_FT",
					Amount = 1
				},
				new RequirementConfig
				{
					Item = "ChinookSalmon_Fish_FT",
					Amount = 1
				}
			};
			RecipeConfig val2 = val;
			ItemManager.Instance.AddRecipe(new CustomRecipe(val2));
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding custom recipes: {arg}");
		}
	}

	private void AddCustomFruitTrees()
	{
		//IL_012e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0135: Expected O, but got Unknown
		//IL_017d: Unknown result type (might be due to invalid IL or missing references)
		//IL_01be: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c4: Expected O, but got Unknown
		//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01dd: Expected O, but got Unknown
		//IL_0225: Unknown result type (might be due to invalid IL or missing references)
		//IL_0289: Unknown result type (might be due to invalid IL or missing references)
		//IL_028f: Expected O, but got Unknown
		//IL_02a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a8: Expected O, but got Unknown
		//IL_02f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0354: Unknown result type (might be due to invalid IL or missing references)
		//IL_035a: Expected O, but got Unknown
		//IL_036c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0373: Expected O, but got Unknown
		//IL_03bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_03fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0402: Expected O, but got Unknown
		//IL_0414: Unknown result type (might be due to invalid IL or missing references)
		//IL_041b: Expected O, but got Unknown
		//IL_0463: Unknown result type (might be due to invalid IL or missing references)
		//IL_04c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ce: Expected O, but got Unknown
		//IL_04e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_04e8: Expected O, but got Unknown
		//IL_0530: Unknown result type (might be due to invalid IL or missing references)
		//IL_0594: Unknown result type (might be due to invalid IL or missing references)
		//IL_059b: Expected O, but got Unknown
		//IL_05ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b5: Expected O, but got Unknown
		//IL_05fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0661: Unknown result type (might be due to invalid IL or missing references)
		//IL_0668: Expected O, but got Unknown
		//IL_067b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0682: Expected O, but got Unknown
		//IL_06ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_070b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0712: Expected O, but got Unknown
		//IL_0725: Unknown result type (might be due to invalid IL or missing references)
		//IL_072c: Expected O, but got Unknown
		//IL_0774: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_07bc: Expected O, but got Unknown
		//IL_07cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d6: Expected O, but got Unknown
		//IL_081e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0882: Unknown result type (might be due to invalid IL or missing references)
		//IL_0889: Expected O, but got Unknown
		//IL_089c: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a3: Expected O, but got Unknown
		//IL_08eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_094f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0956: Expected O, but got Unknown
		//IL_0969: Unknown result type (might be due to invalid IL or missing references)
		//IL_0970: Expected O, but got Unknown
		//IL_09b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_09f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_09fe: Expected O, but got Unknown
		//IL_0a11: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a18: Expected O, but got Unknown
		//IL_0a60: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ac4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0acb: Expected O, but got Unknown
		//IL_0ade: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ae5: Expected O, but got Unknown
		//IL_0b2d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b91: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b98: Expected O, but got Unknown
		try
		{
			TreeWalnut = fruitTreesBundle.LoadAsset<GameObject>("Walnut_Pickable_FT");
			TreeGuava = fruitTreesBundle.LoadAsset<GameObject>("Pomelo_Pickable_FT");
			TreeAvocado = fruitTreesBundle.LoadAsset<GameObject>("Avocado_Pickable_FT");
			TreePear = fruitTreesBundle.LoadAsset<GameObject>("Pear_Pickable_FT");
			TreePeach = fruitTreesBundle.LoadAsset<GameObject>("Peach_Pickable_FT");
			TreeOrange = fruitTreesBundle.LoadAsset<GameObject>("Orange_Pickable_FT");
			TreeMango = fruitTreesBundle.LoadAsset<GameObject>("Mango_Pickable_FT");
			TreeLemon = fruitTreesBundle.LoadAsset<GameObject>("Lemon_Pickable_FT");
			TreeLime = fruitTreesBundle.LoadAsset<GameObject>("Lime_Pickable_FT");
			TreeCherry = fruitTreesBundle.LoadAsset<GameObject>("Cherry_Pickable_FT");
			TreeBanana = fruitTreesBundle.LoadAsset<GameObject>("Tree_Banana_Pickable_DoD");
			TreeApple = fruitTreesBundle.LoadAsset<GameObject>("Tree_Apple_Pickable_DoD");
			TreeCoconut = fruitTreesBundle.LoadAsset<GameObject>("Coconut_Pickable_FT");
			TreeAppleGreen = fruitTreesBundle.LoadAsset<GameObject>("Tree_AppleGreen_Pickable_DoD");
			GameObject treeCoconut = TreeCoconut;
			VegetationConfig val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj = val;
			Biome[] array = new Biome[5];
			RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array);
			val.MinAltitude = 0.1f;
			val.MaxAltitude = 1.5f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val2 = new CustomVegetation(treeCoconut, true, val);
			ZoneManager.Instance.AddCustomVegetation(val2);
			GameObject treeWalnut = TreeWalnut;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj2 = val;
			Biome[] array2 = new Biome[4];
			RuntimeHelpers.InitializeArray(array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj2.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array2);
			val.MinAltitude = 1f;
			val.MaxAltitude = 75f;
			val.InForest = true;
			val.ForestThresholdMin = 0.25f;
			val.ForestThresholdMax = 0.75f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val3 = new CustomVegetation(treeWalnut, true, val);
			ZoneManager.Instance.AddCustomVegetation(val3);
			GameObject treeAvocado = TreeAvocado;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj3 = val;
			Biome[] array3 = new Biome[4];
			RuntimeHelpers.InitializeArray(array3, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj3.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array3);
			val.MinAltitude = 1f;
			val.MaxAltitude = 75f;
			val.InForest = true;
			val.ForestThresholdMin = 0f;
			val.ForestThresholdMax = 0.5f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val4 = new CustomVegetation(treeAvocado, true, val);
			ZoneManager.Instance.AddCustomVegetation(val4);
			GameObject treeGuava = TreeGuava;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj4 = val;
			Biome[] array4 = new Biome[4];
			RuntimeHelpers.InitializeArray(array4, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj4.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array4);
			val.MinAltitude = 0.5f;
			val.MaxAltitude = 2f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val5 = new CustomVegetation(treeGuava, true, val);
			ZoneManager.Instance.AddCustomVegetation(val5);
			GameObject treePear = TreePear;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj5 = val;
			Biome[] array5 = new Biome[4];
			RuntimeHelpers.InitializeArray(array5, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj5.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array5);
			val.MinAltitude = 1f;
			val.MaxAltitude = 75f;
			val.InForest = true;
			val.ForestThresholdMin = 0.5f;
			val.ForestThresholdMax = 1f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val6 = new CustomVegetation(treePear, true, val);
			ZoneManager.Instance.AddCustomVegetation(val6);
			GameObject treePeach = TreePeach;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj6 = val;
			Biome[] array6 = new Biome[4];
			RuntimeHelpers.InitializeArray(array6, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj6.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array6);
			val.MinAltitude = 1f;
			val.MaxAltitude = 75f;
			val.InForest = true;
			val.ForestThresholdMin = 0.25f;
			val.ForestThresholdMax = 0.75f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val7 = new CustomVegetation(treePeach, true, val);
			ZoneManager.Instance.AddCustomVegetation(val7);
			GameObject treeOrange = TreeOrange;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj7 = val;
			Biome[] array7 = new Biome[4];
			RuntimeHelpers.InitializeArray(array7, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj7.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array7);
			val.MinAltitude = 1f;
			val.MaxAltitude = 75f;
			val.InForest = true;
			val.ForestThresholdMin = 0.75f;
			val.ForestThresholdMax = 1.25f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val8 = new CustomVegetation(treeOrange, true, val);
			ZoneManager.Instance.AddCustomVegetation(val8);
			GameObject treeMango = TreeMango;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj8 = val;
			Biome[] array8 = new Biome[5];
			RuntimeHelpers.InitializeArray(array8, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj8.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array8);
			val.MinAltitude = -0.1f;
			val.MaxAltitude = 1.5f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val9 = new CustomVegetation(treeMango, true, val);
			ZoneManager.Instance.AddCustomVegetation(val9);
			GameObject treeLemon = TreeLemon;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj9 = val;
			Biome[] array9 = new Biome[4];
			RuntimeHelpers.InitializeArray(array9, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj9.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array9);
			val.MinAltitude = 0.1f;
			val.MaxAltitude = 2f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val10 = new CustomVegetation(treeLemon, true, val);
			ZoneManager.Instance.AddCustomVegetation(val10);
			GameObject treeLime = TreeLime;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj10 = val;
			Biome[] array10 = new Biome[4];
			RuntimeHelpers.InitializeArray(array10, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj10.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array10);
			val.MinAltitude = 0.01f;
			val.MaxAltitude = 1f;
			val.InForest = true;
			val.ForestThresholdMin = 0f;
			val.ForestThresholdMax = 0.5f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val11 = new CustomVegetation(treeLime, true, val);
			ZoneManager.Instance.AddCustomVegetation(val11);
			GameObject treeCherry = TreeCherry;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj11 = val;
			Biome[] array11 = new Biome[4];
			RuntimeHelpers.InitializeArray(array11, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj11.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array11);
			val.MinAltitude = 1f;
			val.MaxAltitude = 75f;
			val.InForest = true;
			val.ForestThresholdMin = 0f;
			val.ForestThresholdMax = 0.7f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val12 = new CustomVegetation(treeCherry, true, val);
			ZoneManager.Instance.AddCustomVegetation(val12);
			GameObject treeBanana = TreeBanana;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			val.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)new Biome[2]
			{
				(Biome)2,
				(Biome)16
			});
			val.MinAltitude = 0.5f;
			val.MaxAltitude = 75f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val13 = new CustomVegetation(treeBanana, true, val);
			ZoneManager.Instance.AddCustomVegetation(val13);
			GameObject treeApple = TreeApple;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj12 = val;
			Biome[] array12 = new Biome[4];
			RuntimeHelpers.InitializeArray(array12, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj12.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array12);
			val.MinAltitude = 1f;
			val.MaxAltitude = 75f;
			val.InForest = true;
			val.ForestThresholdMin = 0f;
			val.ForestThresholdMax = 0.7f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val14 = new CustomVegetation(treeApple, true, val);
			ZoneManager.Instance.AddCustomVegetation(val14);
			GameObject treeAppleGreen = TreeAppleGreen;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 1;
			val.GroupSizeMax = 2;
			val.GroupRadius = 10f;
			val.BlockCheck = true;
			VegetationConfig obj13 = val;
			Biome[] array13 = new Biome[4];
			RuntimeHelpers.InitializeArray(array13, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj13.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array13);
			val.MinAltitude = 1f;
			val.MaxAltitude = 75f;
			val.InForest = true;
			val.ForestThresholdMin = 0f;
			val.ForestThresholdMax = 0.7f;
			val.GroundOffset = -0.15f;
			val.MaxTilt = 50f;
			CustomVegetation val15 = new CustomVegetation(treeAppleGreen, true, val);
			ZoneManager.Instance.AddCustomVegetation(val15);
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Trees for Fruit Trees: {arg}");
		}
	}

	private void AddSaplings()
	{
		//IL_0182: Unknown result type (might be due to invalid IL or missing references)
		//IL_0189: Expected O, but got Unknown
		//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01be: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01cf: Expected O, but got Unknown
		//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01dd: Expected O, but got Unknown
		//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f6: Expected O, but got Unknown
		//IL_021a: Unknown result type (might be due to invalid IL or missing references)
		//IL_021f: Unknown result type (might be due to invalid IL or missing references)
		//IL_022b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0233: Unknown result type (might be due to invalid IL or missing references)
		//IL_023c: Expected O, but got Unknown
		//IL_0244: Unknown result type (might be due to invalid IL or missing references)
		//IL_024a: Expected O, but got Unknown
		//IL_025c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0263: Expected O, but got Unknown
		//IL_0287: Unknown result type (might be due to invalid IL or missing references)
		//IL_028c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0298: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a9: Expected O, but got Unknown
		//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b7: Expected O, but got Unknown
		//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d0: Expected O, but got Unknown
		//IL_02f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0305: Unknown result type (might be due to invalid IL or missing references)
		//IL_030d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0316: Expected O, but got Unknown
		//IL_031e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0324: Expected O, but got Unknown
		//IL_0336: Unknown result type (might be due to invalid IL or missing references)
		//IL_033d: Expected O, but got Unknown
		//IL_0361: Unknown result type (might be due to invalid IL or missing references)
		//IL_0366: Unknown result type (might be due to invalid IL or missing references)
		//IL_0372: Unknown result type (might be due to invalid IL or missing references)
		//IL_037a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0383: Expected O, but got Unknown
		//IL_038b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0392: Expected O, but got Unknown
		//IL_03a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ac: Expected O, but got Unknown
		//IL_03d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f2: Expected O, but got Unknown
		//IL_03fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0401: Expected O, but got Unknown
		//IL_0414: Unknown result type (might be due to invalid IL or missing references)
		//IL_041b: Expected O, but got Unknown
		//IL_043f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0444: Unknown result type (might be due to invalid IL or missing references)
		//IL_0450: Unknown result type (might be due to invalid IL or missing references)
		//IL_0458: Unknown result type (might be due to invalid IL or missing references)
		//IL_0461: Expected O, but got Unknown
		//IL_0469: Unknown result type (might be due to invalid IL or missing references)
		//IL_0470: Expected O, but got Unknown
		//IL_0483: Unknown result type (might be due to invalid IL or missing references)
		//IL_048a: Expected O, but got Unknown
		//IL_04ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_04bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_04c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_04d0: Expected O, but got Unknown
		//IL_04d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_04df: Expected O, but got Unknown
		//IL_04f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f9: Expected O, but got Unknown
		//IL_051d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0522: Unknown result type (might be due to invalid IL or missing references)
		//IL_052e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0536: Unknown result type (might be due to invalid IL or missing references)
		//IL_053f: Expected O, but got Unknown
		//IL_0547: Unknown result type (might be due to invalid IL or missing references)
		//IL_054e: Expected O, but got Unknown
		//IL_0561: Unknown result type (might be due to invalid IL or missing references)
		//IL_0568: Expected O, but got Unknown
		//IL_058c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0591: Unknown result type (might be due to invalid IL or missing references)
		//IL_059d: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ae: Expected O, but got Unknown
		//IL_05b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_05bd: Expected O, but got Unknown
		//IL_05d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_05d7: Expected O, but got Unknown
		//IL_05fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0600: Unknown result type (might be due to invalid IL or missing references)
		//IL_060c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0614: Unknown result type (might be due to invalid IL or missing references)
		//IL_061d: Expected O, but got Unknown
		//IL_0625: Unknown result type (might be due to invalid IL or missing references)
		//IL_062c: Expected O, but got Unknown
		//IL_063f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0646: Expected O, but got Unknown
		//IL_066a: Unknown result type (might be due to invalid IL or missing references)
		//IL_066f: Unknown result type (might be due to invalid IL or missing references)
		//IL_067b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0683: Unknown result type (might be due to invalid IL or missing references)
		//IL_068c: Expected O, but got Unknown
		//IL_0694: Unknown result type (might be due to invalid IL or missing references)
		//IL_069b: Expected O, but got Unknown
		//IL_06ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b5: Expected O, but got Unknown
		//IL_06d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_06de: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_06fb: Expected O, but got Unknown
		//IL_0703: Unknown result type (might be due to invalid IL or missing references)
		//IL_070a: Expected O, but got Unknown
		//IL_071d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0724: Expected O, but got Unknown
		//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_0759: Unknown result type (might be due to invalid IL or missing references)
		//IL_0761: Unknown result type (might be due to invalid IL or missing references)
		//IL_076a: Expected O, but got Unknown
		//IL_0772: Unknown result type (might be due to invalid IL or missing references)
		//IL_0779: Expected O, but got Unknown
		//IL_078c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0793: Expected O, but got Unknown
		//IL_07b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_07bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d9: Expected O, but got Unknown
		//IL_07e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_07e8: Expected O, but got Unknown
		//IL_07fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0802: Expected O, but got Unknown
		//IL_0826: Unknown result type (might be due to invalid IL or missing references)
		//IL_082b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0837: Unknown result type (might be due to invalid IL or missing references)
		//IL_083f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0848: Expected O, but got Unknown
		//IL_0850: Unknown result type (might be due to invalid IL or missing references)
		//IL_0857: Expected O, but got Unknown
		//IL_086a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0871: Expected O, but got Unknown
		//IL_0895: Unknown result type (might be due to invalid IL or missing references)
		//IL_089a: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_08b7: Expected O, but got Unknown
		//IL_08bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_08c6: Expected O, but got Unknown
		//IL_08d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e0: Expected O, but got Unknown
		//IL_0904: Unknown result type (might be due to invalid IL or missing references)
		//IL_0909: Unknown result type (might be due to invalid IL or missing references)
		//IL_0915: Unknown result type (might be due to invalid IL or missing references)
		//IL_091d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0926: Expected O, but got Unknown
		//IL_092e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0935: Expected O, but got Unknown
		try
		{
			SaplingPapaya = fruitTreesBundle.LoadAsset<GameObject>("Papaya_Sapling_FT");
			SaplingAvocado = fruitTreesBundle.LoadAsset<GameObject>("Avocado_Sapling_FT");
			SaplingPear = fruitTreesBundle.LoadAsset<GameObject>("Pear_Sapling_FT");
			SaplingPeach = fruitTreesBundle.LoadAsset<GameObject>("Peach_Sapling_FT");
			SaplingOrange = fruitTreesBundle.LoadAsset<GameObject>("Orange_Sapling_FT");
			SaplingMango = fruitTreesBundle.LoadAsset<GameObject>("Mango_Sapling_FT");
			SaplingLemon = fruitTreesBundle.LoadAsset<GameObject>("Lemon_Sapling_FT");
			SaplingLime = fruitTreesBundle.LoadAsset<GameObject>("Lime_Sapling_FT");
			SaplingCherry = fruitTreesBundle.LoadAsset<GameObject>("Cherry_Sapling_FT");
			SaplingBanana = fruitTreesBundle.LoadAsset<GameObject>("Banana_Sapling_FT");
			SaplingApple = fruitTreesBundle.LoadAsset<GameObject>("Apple_Sapling_FT");
			SaplingAppleGreen = fruitTreesBundle.LoadAsset<GameObject>("AppleGreen_Sapling_FT");
			SaplingCoconut = fruitTreesBundle.LoadAsset<GameObject>("Coconut_Sapling_FT");
			SaplingPineapple = fruitTreesBundle.LoadAsset<GameObject>("Pineapple_Sapling_FT");
			SaplingBlackGrape = fruitTreesBundle.LoadAsset<GameObject>("BlackGrape_Sapling_FT");
			SaplingGrape = fruitTreesBundle.LoadAsset<GameObject>("Grape_Sapling_FT");
			SaplingBlackcurrent = fruitTreesBundle.LoadAsset<GameObject>("Blackcurrent_Sapling_FT");
			SaplingRedcurrent = fruitTreesBundle.LoadAsset<GameObject>("Redcurrent_Sapling_FT");
			GameObject saplingRedcurrent = SaplingRedcurrent;
			PieceConfig val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "RedcurrentSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val2 = new CustomPiece(saplingRedcurrent, true, val);
			PieceManager.Instance.AddPiece(val2);
			GameObject saplingBlackcurrent = SaplingBlackcurrent;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "BlackcurrentSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val3 = new CustomPiece(saplingBlackcurrent, true, val);
			PieceManager.Instance.AddPiece(val3);
			GameObject saplingBlackGrape = SaplingBlackGrape;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "GrapeSeedRed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val4 = new CustomPiece(saplingBlackGrape, true, val);
			PieceManager.Instance.AddPiece(val4);
			GameObject saplingGrape = SaplingGrape;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "GrapeSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val5 = new CustomPiece(saplingGrape, true, val);
			PieceManager.Instance.AddPiece(val5);
			GameObject saplingPineapple = SaplingPineapple;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "PineappleSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val6 = new CustomPiece(saplingPineapple, true, val);
			PieceManager.Instance.AddPiece(val6);
			GameObject saplingCoconut = SaplingCoconut;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Coconut_SC",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val7 = new CustomPiece(saplingCoconut, true, val);
			PieceManager.Instance.AddPiece(val7);
			GameObject saplingPapaya = SaplingPapaya;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "PapayaSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val8 = new CustomPiece(saplingPapaya, true, val);
			PieceManager.Instance.AddPiece(val8);
			GameObject saplingAvocado = SaplingAvocado;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "AvocadoSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val9 = new CustomPiece(saplingAvocado, true, val);
			PieceManager.Instance.AddPiece(val9);
			GameObject saplingCherry = SaplingCherry;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "CherrySeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val10 = new CustomPiece(saplingCherry, true, val);
			PieceManager.Instance.AddPiece(val10);
			GameObject saplingLime = SaplingLime;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "LimeSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val11 = new CustomPiece(saplingLime, true, val);
			PieceManager.Instance.AddPiece(val11);
			GameObject saplingLemon = SaplingLemon;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "LemonSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val12 = new CustomPiece(saplingLemon, true, val);
			PieceManager.Instance.AddPiece(val12);
			GameObject saplingMango = SaplingMango;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "MangoSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val13 = new CustomPiece(saplingMango, true, val);
			PieceManager.Instance.AddPiece(val13);
			GameObject saplingOrange = SaplingOrange;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "OrangeSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val14 = new CustomPiece(saplingOrange, true, val);
			PieceManager.Instance.AddPiece(val14);
			GameObject saplingPeach = SaplingPeach;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "PeachSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val15 = new CustomPiece(saplingPeach, true, val);
			PieceManager.Instance.AddPiece(val15);
			GameObject saplingPear = SaplingPear;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "PearSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val16 = new CustomPiece(saplingPear, true, val);
			PieceManager.Instance.AddPiece(val16);
			GameObject saplingAppleGreen = SaplingAppleGreen;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "AppleGrannySeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val17 = new CustomPiece(saplingAppleGreen, true, val);
			PieceManager.Instance.AddPiece(val17);
			GameObject saplingApple = SaplingApple;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "AppleSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val18 = new CustomPiece(saplingApple, true, val);
			PieceManager.Instance.AddPiece(val18);
			GameObject saplingBanana = SaplingBanana;
			val = new PieceConfig();
			val.PieceTable = "_CultivatorPieceTable";
			val.Category = "Misc";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "BananaSeed_FT",
					Amount = 1,
					Recover = false
				}
			};
			CustomPiece val19 = new CustomPiece(saplingBanana, true, val);
			PieceManager.Instance.AddPiece(val19);
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Saplings for Fruit Trees: {arg}");
		}
	}

	private void AddCustomFruitBushes()
	{
		//IL_0071: Unknown result type (might be due to invalid IL or missing references)
		//IL_0078: Expected O, but got Unknown
		//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_010a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0110: Expected O, but got Unknown
		//IL_0122: Unknown result type (might be due to invalid IL or missing references)
		//IL_0129: Expected O, but got Unknown
		//IL_0171: Unknown result type (might be due to invalid IL or missing references)
		//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c1: Expected O, but got Unknown
		//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01da: Expected O, but got Unknown
		//IL_0222: Unknown result type (might be due to invalid IL or missing references)
		//IL_026c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0272: Expected O, but got Unknown
		//IL_0284: Unknown result type (might be due to invalid IL or missing references)
		//IL_028b: Expected O, but got Unknown
		//IL_02d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_031d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0323: Expected O, but got Unknown
		//IL_0335: Unknown result type (might be due to invalid IL or missing references)
		//IL_033c: Expected O, but got Unknown
		//IL_0384: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d5: Expected O, but got Unknown
		try
		{
			BushPineapple = fruitTreesBundle.LoadAsset<GameObject>("Pineapple_Pickable_FT");
			BushBlackGrape = fruitTreesBundle.LoadAsset<GameObject>("BlackGrape_Pickable_FT");
			BushGrape = fruitTreesBundle.LoadAsset<GameObject>("Grape_Pickable_FT");
			BushBlackcurrent = fruitTreesBundle.LoadAsset<GameObject>("Blackcurrent_Pickable_FT");
			BushRedcurrent = fruitTreesBundle.LoadAsset<GameObject>("Redcurrent_Pickable_FT");
			GameObject bushPineapple = BushPineapple;
			VegetationConfig val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 2;
			val.GroupSizeMax = 3;
			val.GroupRadius = 5f;
			val.BlockCheck = true;
			VegetationConfig obj = val;
			Biome[] array = new Biome[3];
			RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array);
			val.MinAltitude = 0.1f;
			val.MaxAltitude = 50f;
			val.GroundOffset = -0.1f;
			val.InForest = false;
			val.MaxTilt = 50f;
			CustomVegetation val2 = new CustomVegetation(bushPineapple, true, val);
			ZoneManager.Instance.AddCustomVegetation(val2);
			GameObject bushBlackGrape = BushBlackGrape;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 2;
			val.GroupSizeMax = 3;
			val.GroupRadius = 5f;
			val.BlockCheck = true;
			VegetationConfig obj2 = val;
			Biome[] array2 = new Biome[3];
			RuntimeHelpers.InitializeArray(array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj2.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array2);
			val.MinAltitude = 0.1f;
			val.MaxAltitude = 50f;
			val.GroundOffset = -0.1f;
			val.InForest = false;
			val.MaxTilt = 50f;
			CustomVegetation val3 = new CustomVegetation(bushBlackGrape, true, val);
			ZoneManager.Instance.AddCustomVegetation(val3);
			GameObject bushGrape = BushGrape;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 2;
			val.GroupSizeMax = 3;
			val.GroupRadius = 5f;
			val.BlockCheck = true;
			VegetationConfig obj3 = val;
			Biome[] array3 = new Biome[3];
			RuntimeHelpers.InitializeArray(array3, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj3.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array3);
			val.MinAltitude = 0.1f;
			val.MaxAltitude = 50f;
			val.GroundOffset = -0.1f;
			val.InForest = false;
			val.MaxTilt = 50f;
			CustomVegetation val4 = new CustomVegetation(bushGrape, true, val);
			ZoneManager.Instance.AddCustomVegetation(val4);
			GameObject bushBlackcurrent = BushBlackcurrent;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 2;
			val.GroupSizeMax = 3;
			val.GroupRadius = 5f;
			val.BlockCheck = true;
			VegetationConfig obj4 = val;
			Biome[] array4 = new Biome[3];
			RuntimeHelpers.InitializeArray(array4, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj4.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array4);
			val.MinAltitude = 0.1f;
			val.MaxAltitude = 50f;
			val.GroundOffset = -0.1f;
			val.InForest = false;
			val.MaxTilt = 50f;
			CustomVegetation val5 = new CustomVegetation(bushBlackcurrent, true, val);
			ZoneManager.Instance.AddCustomVegetation(val5);
			GameObject bushRedcurrent = BushRedcurrent;
			val = new VegetationConfig();
			val.Max = 1f;
			val.GroupSizeMin = 2;
			val.GroupSizeMax = 3;
			val.GroupRadius = 5f;
			val.BlockCheck = true;
			VegetationConfig obj5 = val;
			Biome[] array5 = new Biome[3];
			RuntimeHelpers.InitializeArray(array5, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			obj5.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array5);
			val.MinAltitude = 0.1f;
			val.MaxAltitude = 50f;
			val.GroundOffset = -0.1f;
			val.InForest = false;
			val.MaxTilt = 50f;
			CustomVegetation val6 = new CustomVegetation(bushRedcurrent, true, val);
			ZoneManager.Instance.AddCustomVegetation(val6);
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Bushes for Fruit Trees: {arg}");
		}
	}

	private void AddLocations()
	{
		//IL_0085: Unknown result type (might be due to invalid IL or missing references)
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0093: Unknown result type (might be due to invalid IL or missing references)
		//IL_009c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e1: Expected O, but got Unknown
		//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e6: Expected O, but got Unknown
		//IL_014d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0152: Unknown result type (might be due to invalid IL or missing references)
		//IL_015a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0163: Unknown result type (might be due to invalid IL or missing references)
		//IL_016b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0177: Unknown result type (might be due to invalid IL or missing references)
		//IL_0183: Unknown result type (might be due to invalid IL or missing references)
		//IL_018f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0197: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a8: Expected O, but got Unknown
		//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ad: Expected O, but got Unknown
		try
		{
			AudioSource prefab = Cache.GetPrefab<AudioSource>("Music_FulingCamp");
			if (!LocationsEnable.Value)
			{
				return;
			}
			GameObject val = ZoneManager.Instance.CreateLocationContainer(fruitTreesBundle.LoadAsset<GameObject>("Loc_LakePlains_FT"));
			if ((Object)(object)val != (Object)null)
			{
				AudioSource componentInChildren = val.GetComponentInChildren<AudioSource>();
				if ((Object)(object)componentInChildren != (Object)null && (Object)(object)prefab != (Object)null)
				{
					componentInChildren.outputAudioMixerGroup = prefab.outputAudioMixerGroup;
				}
				ZoneManager.Instance.AddCustomLocation(new CustomLocation(val, true, new LocationConfig
				{
					Biome = (Biome)16,
					Quantity = 25,
					Priotized = true,
					ExteriorRadius = 28f,
					MinAltitude = 15f,
					MaxAltitude = 60f,
					ClearArea = true,
					MinDistanceFromSimilar = 500f
				}));
			}
			GameObject val2 = ZoneManager.Instance.CreateLocationContainer(fruitTreesBundle.LoadAsset<GameObject>("Loc_LakeMeadows_FT"));
			if ((Object)(object)val2 != (Object)null)
			{
				AudioSource componentInChildren2 = val.GetComponentInChildren<AudioSource>();
				if ((Object)(object)componentInChildren2 != (Object)null && (Object)(object)prefab != (Object)null)
				{
					componentInChildren2.outputAudioMixerGroup = prefab.outputAudioMixerGroup;
				}
				ZoneManager.Instance.AddCustomLocation(new CustomLocation(val2, true, new LocationConfig
				{
					Biome = (Biome)1,
					Quantity = 25,
					Priotized = true,
					ExteriorRadius = 22f,
					MinAltitude = 15f,
					MaxAltitude = 60f,
					ClearArea = true,
					MinDistanceFromSimilar = 500f
				}));
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding custom Locations: {arg}");
		}
		finally
		{
			ZoneManager.OnVanillaLocationsAvailable -= AddLocations;
			fruitTreesBundle.Unload(false);
		}
	}

	private void FixSFX()
	{
		try
		{
			AudioSource prefab = Cache.GetPrefab<AudioSource>("sfx_arrow_hit");
			string[] array = sfxList;
			foreach (string text in array)
			{
				GameObject prefab2 = Cache.GetPrefab<GameObject>(text);
				prefab2.GetComponentInChildren<AudioSource>().outputAudioMixerGroup = prefab.outputAudioMixerGroup;
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Audio Mixer set on: " + text));
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while fixing custom audio: {arg}");
		}
		finally
		{
			PrefabManager.OnPrefabsRegistered -= FixSFX;
		}
	}
}