Decompiled source of CoreWoodExtras v2.0.3

plugins/CoreWoodExtras.dll

Decompiled 8 hours ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using CoreWoodExtras.Containers;
using CoreWoodExtras.TextureUtils;
using CoreWoodExtras.Updates;
using HarmonyLib;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Extensions;
using Jotunn.Managers;
using Jotunn.Utils;
using Microsoft.CodeAnalysis;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("CoreWoodExtras")]
[assembly: AssemblyDescription("https://www.nexusmods.com/valheim/mods/2806")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("MagicMike")]
[assembly: AssemblyProduct("CoreWoodExtras")]
[assembly: AssemblyCopyright("Copyright © MagicMike 2025CoreWoodExtras")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("2.0.3")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("2.0.3.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace CoreWoodExtras
{
	internal class AddMarket
	{
		public static EffectList buildWood;

		public static EffectList breakWood;

		public static EffectList hitWood;

		public static void LoadPieces()
		{
			AddFX();
			AddCoreWoodMarketStallMeat();
			AddCrateAskvinMeat();
			AddCrateBoarMeat();
			AddCrateChickenMeat();
			AddCrateDeerMeat();
			AddCrateHareMeat();
			AddCrateLoxMeat();
			AddCrateVoltureMeat();
			AddCrateWolfMeat();
			AddCoreWoodMarketStallFish();
			AddCrateAnglerFish();
			AddCrateHerringFish();
			AddCratePerchFish();
			AddCrateSerpentFlesh();
			AddCrateTrollFish();
			AddCrateTunaFish();
			AddCoreWoodMarketStallVeg();
			AddCrateBlueberries();
			AddCrateCloudberry();
			AddCrateRaspberry();
			AddCrateCarrot();
			AddCrateOnion();
			AddCrateTurnip();
			AddCoreWoodMarketStallSeeds();
			AddSackBeechSeeds();
			AddSackBirchSeeds();
			AddSackOakSeeds();
			AddSackPineSeeds();
			AddSackCarrotSeeds();
			AddSackOnionSeeds();
			AddSackTurnipSeeds();
			AddSackAncientSeeds();
			AddSackMysticalSeeds();
			AddCoreWoodMarketStallHotFood();
			AddAsksvinMeatTray();
			AddBoarMeatTray();
			AddChickenMeatTray();
			AddDeerMeatTray();
			AddLoxMeatTray();
			AddSerpentMeatTray();
			AddVoltureMeatTray();
			AddWolfMeatTray();
		}

		public static void AddFX()
		{
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Expected O, but got Unknown
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Expected O, but got Unknown
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Expected O, but got Unknown
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Expected O, but got Unknown
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Expected O, but got Unknown
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Expected O, but got Unknown
			GameObject prefab = Cache.GetPrefab<GameObject>("sfx_build_hammer_wood");
			GameObject prefab2 = Cache.GetPrefab<GameObject>("sfx_wood_break");
			GameObject prefab3 = Cache.GetPrefab<GameObject>("sfx_wood_hit");
			EffectList val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[1]
			{
				new EffectData
				{
					m_prefab = prefab
				}
			};
			buildWood = val;
			val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[1]
			{
				new EffectData
				{
					m_prefab = prefab2
				}
			};
			breakWood = val;
			val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[1]
			{
				new EffectData
				{
					m_prefab = prefab3
				}
			};
			hitWood = val;
		}

		public static void AddCoreWoodMarketStallMeat()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_0094: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Expected O, but got Unknown
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_market_stall_meat");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig
				{
					Item = "RoundLog",
					Amount = 8,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 6,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "FreezeGland",
					Amount = 4,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, true, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddCrateLoxMeat()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_lox_meat");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "LoxMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "LoxMeat" });
		}

		public static void AddCrateChickenMeat()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_chicken_meat");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "ChickenMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "ChickenMeat" });
		}

		public static void AddCrateDeerMeat()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_deer_meat");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "DeerMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "DeerMeat" });
		}

		public static void AddCrateHareMeat()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_hare_meat");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "HareMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "HareMeat" });
		}

		public static void AddCrateVoltureMeat()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_volture_meat");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "VoltureMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "VoltureMeat" });
		}

		public static void AddCrateWolfMeat()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_wolf_meat");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "WolfMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "WolfMeat" });
		}

		public static void AddCrateBoarMeat()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_boar_meat_new");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "RawMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "RawMeat" });
		}

		public static void AddCrateAskvinMeat()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_asksvin_meat");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "AsksvinMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "AsksvinMeat" });
		}

		public static void AddCoreWoodMarketStallFish()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_0094: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Expected O, but got Unknown
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_market_stall_fish");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig
				{
					Item = "RoundLog",
					Amount = 8,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 6,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "FreezeGland",
					Amount = 4,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, true, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddCrateAnglerFish()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_angler_fish");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Fish9",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Fish9" });
		}

		public static void AddCrateTrollFish()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_trollfish");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Fish5",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Fish5" });
		}

		public static void AddCrateHerringFish()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_herring_fish");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Fish6",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Fish6" });
		}

		public static void AddCratePerchFish()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_perch_fish");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Fish1",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Fish1" });
		}

		public static void AddCrateTunaFish()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_tuna_fish");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Fish3",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Fish3" });
		}

		public static void AddCrateSerpentFlesh()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_serpent_flesh");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "SerpentMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "SerpentMeat" });
		}

		public static void AddCoreWoodMarketStallVeg()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_market_stall_veg");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "RoundLog",
					Amount = 8,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 6,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, true, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddCrateBlueberries()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_blueberry");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Blueberries",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Blueberries" });
		}

		public static void AddCrateRaspberry()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_raspberry");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Raspberry",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Raspberry" });
		}

		public static void AddCrateCloudberry()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_cloudberry");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Cloudberry",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Cloudberry" });
		}

		public static void AddCrateOnion()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_onion");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Onion",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Onion" });
		}

		public static void AddCrateTurnip()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_turnip");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Turnip",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Turnip" });
		}

		public static void AddCrateCarrot()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_crate_carrot");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Carrot",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.PrepareContainer(val);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Carrot" });
		}

		public static void AddCoreWoodMarketStallSeeds()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_market_stall_seeds");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "RoundLog",
					Amount = 8,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 6,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, true, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddSackOakSeeds()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_sack_oak_seeds");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Acorn",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "Acorn" });
		}

		public static void AddSackBirchSeeds()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_sack_birch_seeds");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "BirchSeeds",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "BirchSeeds" });
		}

		public static void AddSackBeechSeeds()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_sack_beech_seeds");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "BeechSeeds",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "BeechSeeds" });
		}

		public static void AddSackPineSeeds()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_sack_pine_seeds");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "PineCone",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "PineCone" });
		}

		public static void AddSackCarrotSeeds()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_sack_carrot_seeds");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "CarrotSeeds",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "CarrotSeeds" });
		}

		public static void AddSackTurnipSeeds()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_sack_turnip_seeds");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "TurnipSeeds",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "TurnipSeeds" });
		}

		public static void AddSackOnionSeeds()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_sack_onion_seeds");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "OnionSeeds",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "OnionSeeds" });
		}

		public static void AddSackMysticalSeeds()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_sack_mystical_seeds");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "mm_mystical_seed",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "mm_mystical_seed" });
		}

		public static void AddSackAncientSeeds()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_sack_ancient_seeds");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "AncientSeed",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "AncientSeed" });
		}

		public static void AddCoreWoodMarketStallHotFood()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_0094: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Expected O, but got Unknown
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b5: 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_00c4: Expected O, but got Unknown
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d0: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_market_stall_hot_food");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
			{
				new RequirementConfig
				{
					Item = "RoundLog",
					Amount = 8,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "LinenThread",
					Amount = 6,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 4,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "SurtlingCore",
					Amount = 4,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, true, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsksvinMeatTray()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_tray_asksvin");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "CookedAsksvinMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "CookedAsksvinMeat" });
		}

		public static void AddBoarMeatTray()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_tray_boar");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "CookedMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "CookedMeat" });
		}

		public static void AddLoxMeatTray()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_tray_lox");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "CookedLoxMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "CookedLoxMeat" });
		}

		public static void AddWolfMeatTray()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_tray_wolf");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "CookedWolfMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "CookedWolfMeat" });
		}

		public static void AddDeerMeatTray()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_tray_deer");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "CookedDeerMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "CookedDeerMeat" });
		}

		public static void AddChickenMeatTray()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_tray_chicken");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "CookedChickenMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "CookedChickenMeat" });
		}

		public static void AddVoltureMeatTray()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_tray_volture");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "CookedVoltureMeat",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "CookedVoltureMeat" });
		}

		public static void AddSerpentMeatTray()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			GameObject val = CoreWoodPlugin.cwextras.LoadAsset<GameObject>("mm_corewood_tray_serpent");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "CoreWood-Market";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "SerpentMeatCooked",
					Amount = 1,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			WearNTear component = val.GetComponent<WearNTear>();
			component.m_destroyedEffect = breakWood;
			component.m_hitEffect = hitWood;
			PieceManager.Instance.AddPiece(val3);
			CoreWoodPlugin.allowedItemsByContainer.Add(val.GetComponent<Container>().m_name, new HashSet<string> { "SerpentMeatCooked" });
		}
	}
	public class LightPatches
	{
		[HarmonyPatch(typeof(ZNetScene), "Awake")]
		[HarmonyAfter(new string[] { "com.jotunn.jotunn" })]
		public static class CustomLightPatch
		{
			[HarmonyPostfix]
			public static void Postfix(ZNetScene __instance)
			{
				ModifySkullCandles(__instance, "mm_corewood_skull_candles", MainConfig.skullLightIntensity.Value, MainConfig.skullLightRange.Value);
				ModifyDeerChandelier(__instance, "mm_deerchandelier", MainConfig.chandelierLightIntensity.Value, MainConfig.chandelierLightRange.Value);
				ModifySurtlingLantern(__instance, "mm_corewood_surtling_lantern", MainConfig.surtlingLanternLightIntensity.Value, MainConfig.surtlingLanternLightRange.Value);
				ModifySurtlingSingle(__instance, "mm_corewood_surtling_lamppost_single", MainConfig.surtlingSingleLightIntensity.Value, MainConfig.surtlingSingleLightRange.Value);
				ModifySurtlingDouble(__instance, "mm_corewood_surtling_lamppost_double", MainConfig.surtlingDoubleLightIntensity.Value, MainConfig.surtlingDoubleLightRange.Value);
				ModifyWallLights(__instance, "mm_horn_walltorch", MainConfig.wallLightIntensity.Value, MainConfig.wallLightRange.Value);
				ModifyLavaLights(__instance, "mm_corewood_lavalantern", MainConfig.lavaLightIntensity.Value, MainConfig.lavaLightRange.Value);
				ModifyCrystalLights(__instance, "mm_corewood_crystal_light", MainConfig.crystalLightIntensity.Value, MainConfig.crystalLightRange.Value);
				ModifyRopeLights(__instance, "mm_corewood_rope_lights", MainConfig.ropeLightIntensity.Value, MainConfig.ropeLightRange.Value);
				ModifyBrazierLights(__instance, "mm_corewood_brazier", MainConfig.brazierLightIntensity.Value, MainConfig.brazierLightRange.Value);
				ModifyBeaconLights(__instance, "mm_corewood_palisade_beacon", MainConfig.beaconLightIntensity.Value, MainConfig.beaconLightRange.Value);
			}
		}

		public static void ModifySkullCandles(ZNetScene instance, string prefab, float intensity, float range)
		{
			GameObject prefab2 = instance.GetPrefab(prefab);
			if (!Object.op_Implicit((Object)(object)prefab2))
			{
				return;
			}
			Light[] componentsInChildren = prefab2.GetComponentsInChildren<Light>(true);
			foreach (Light val in componentsInChildren)
			{
				val.intensity = intensity;
				val.range = range;
				if (MainConfig.skullLightShadows.Value == MainConfig.ShadowsType.None)
				{
					val.shadows = (LightShadows)0;
				}
				else if (MainConfig.skullLightShadows.Value == MainConfig.ShadowsType.Hard)
				{
					val.shadows = (LightShadows)1;
				}
				else if (MainConfig.skullLightShadows.Value == MainConfig.ShadowsType.Soft)
				{
					val.shadows = (LightShadows)2;
				}
			}
		}

		public static void ModifyDeerChandelier(ZNetScene instance, string prefab, float intensity, float range)
		{
			GameObject prefab2 = instance.GetPrefab(prefab);
			if (!Object.op_Implicit((Object)(object)prefab2))
			{
				return;
			}
			Light[] componentsInChildren = prefab2.GetComponentsInChildren<Light>(true);
			foreach (Light val in componentsInChildren)
			{
				val.intensity = intensity;
				val.range = range;
				if (MainConfig.chandelierLightShadows.Value == MainConfig.ShadowsType.None)
				{
					val.shadows = (LightShadows)0;
				}
				else if (MainConfig.chandelierLightShadows.Value == MainConfig.ShadowsType.Hard)
				{
					val.shadows = (LightShadows)1;
				}
				else if (MainConfig.chandelierLightShadows.Value == MainConfig.ShadowsType.Soft)
				{
					val.shadows = (LightShadows)2;
				}
			}
		}

		public static void ModifySurtlingDouble(ZNetScene instance, string prefab, float intensity, float range)
		{
			GameObject prefab2 = instance.GetPrefab(prefab);
			if (!Object.op_Implicit((Object)(object)prefab2))
			{
				return;
			}
			Light[] componentsInChildren = prefab2.GetComponentsInChildren<Light>(true);
			foreach (Light val in componentsInChildren)
			{
				val.intensity = intensity;
				val.range = range;
				if (MainConfig.surtlingDoubleLightShadows.Value == MainConfig.ShadowsType.None)
				{
					val.shadows = (LightShadows)0;
				}
				else if (MainConfig.surtlingDoubleLightShadows.Value == MainConfig.ShadowsType.Hard)
				{
					val.shadows = (LightShadows)1;
				}
				else if (MainConfig.surtlingDoubleLightShadows.Value == MainConfig.ShadowsType.Soft)
				{
					val.shadows = (LightShadows)2;
				}
			}
		}

		public static void ModifyRopeLights(ZNetScene instance, string prefab, float intensity, float range)
		{
			GameObject prefab2 = instance.GetPrefab(prefab);
			if (!Object.op_Implicit((Object)(object)prefab2))
			{
				return;
			}
			Light[] componentsInChildren = prefab2.GetComponentsInChildren<Light>(true);
			foreach (Light val in componentsInChildren)
			{
				val.intensity = intensity;
				val.range = range;
				if (MainConfig.ropeLightShadows.Value == MainConfig.ShadowsType.None)
				{
					val.shadows = (LightShadows)0;
				}
				else if (MainConfig.ropeLightShadows.Value == MainConfig.ShadowsType.Hard)
				{
					val.shadows = (LightShadows)1;
				}
				else if (MainConfig.ropeLightShadows.Value == MainConfig.ShadowsType.Soft)
				{
					val.shadows = (LightShadows)2;
				}
			}
		}

		public static void ModifySurtlingLantern(ZNetScene instance, string slprefab, float slintensity, float slrange)
		{
			GameObject prefab = instance.GetPrefab(slprefab);
			if (Object.op_Implicit((Object)(object)prefab))
			{
				Light componentInChildren = prefab.GetComponentInChildren<Light>(true);
				componentInChildren.intensity = slintensity;
				componentInChildren.range = slrange;
				if (MainConfig.surtlingLanternLightShadows.Value == MainConfig.ShadowsType.None)
				{
					componentInChildren.shadows = (LightShadows)0;
				}
				else if (MainConfig.surtlingLanternLightShadows.Value == MainConfig.ShadowsType.Hard)
				{
					componentInChildren.shadows = (LightShadows)1;
				}
				else if (MainConfig.surtlingLanternLightShadows.Value == MainConfig.ShadowsType.Soft)
				{
					componentInChildren.shadows = (LightShadows)2;
				}
			}
		}

		public static void ModifySurtlingSingle(ZNetScene instance, string ssprefab, float ssintensity, float ssrange)
		{
			GameObject prefab = instance.GetPrefab(ssprefab);
			if (Object.op_Implicit((Object)(object)prefab))
			{
				Light componentInChildren = prefab.GetComponentInChildren<Light>(true);
				componentInChildren.intensity = ssintensity;
				componentInChildren.range = ssrange;
				if (MainConfig.surtlingSingleLightShadows.Value == MainConfig.ShadowsType.None)
				{
					componentInChildren.shadows = (LightShadows)0;
				}
				else if (MainConfig.surtlingSingleLightShadows.Value == MainConfig.ShadowsType.Hard)
				{
					componentInChildren.shadows = (LightShadows)1;
				}
				else if (MainConfig.surtlingSingleLightShadows.Value == MainConfig.ShadowsType.Soft)
				{
					componentInChildren.shadows = (LightShadows)2;
				}
			}
		}

		public static void ModifyWallLights(ZNetScene instance, string wlprefab, float wlintensity, float wlrange)
		{
			GameObject prefab = instance.GetPrefab(wlprefab);
			if (Object.op_Implicit((Object)(object)prefab))
			{
				Light componentInChildren = prefab.GetComponentInChildren<Light>(true);
				componentInChildren.intensity = wlintensity;
				componentInChildren.range = wlrange;
				if (MainConfig.wallLightShadows.Value == MainConfig.ShadowsType.None)
				{
					componentInChildren.shadows = (LightShadows)0;
				}
				else if (MainConfig.wallLightShadows.Value == MainConfig.ShadowsType.Hard)
				{
					componentInChildren.shadows = (LightShadows)1;
				}
				else if (MainConfig.wallLightShadows.Value == MainConfig.ShadowsType.Soft)
				{
					componentInChildren.shadows = (LightShadows)2;
				}
			}
		}

		public static void ModifyLavaLights(ZNetScene instance, string llprefab, float llintensity, float llrange)
		{
			GameObject prefab = instance.GetPrefab(llprefab);
			if (Object.op_Implicit((Object)(object)prefab))
			{
				Light componentInChildren = prefab.GetComponentInChildren<Light>(true);
				componentInChildren.intensity = llintensity;
				componentInChildren.range = llrange;
				if (MainConfig.lavaLightShadows.Value == MainConfig.ShadowsType.None)
				{
					componentInChildren.shadows = (LightShadows)0;
				}
				else if (MainConfig.lavaLightShadows.Value == MainConfig.ShadowsType.Hard)
				{
					componentInChildren.shadows = (LightShadows)1;
				}
				else if (MainConfig.lavaLightShadows.Value == MainConfig.ShadowsType.Soft)
				{
					componentInChildren.shadows = (LightShadows)2;
				}
			}
		}

		public static void ModifyCrystalLights(ZNetScene instance, string clprefab, float clintensity, float clrange)
		{
			GameObject prefab = instance.GetPrefab(clprefab);
			if (Object.op_Implicit((Object)(object)prefab))
			{
				Light componentInChildren = prefab.GetComponentInChildren<Light>(true);
				componentInChildren.intensity = clintensity;
				componentInChildren.range = clrange;
				if (MainConfig.crystalLightShadows.Value == MainConfig.ShadowsType.None)
				{
					componentInChildren.shadows = (LightShadows)0;
				}
				else if (MainConfig.crystalLightShadows.Value == MainConfig.ShadowsType.Hard)
				{
					componentInChildren.shadows = (LightShadows)1;
				}
				else if (MainConfig.crystalLightShadows.Value == MainConfig.ShadowsType.Soft)
				{
					componentInChildren.shadows = (LightShadows)2;
				}
			}
		}

		public static void ModifyBrazierLights(ZNetScene instance, string bprefab, float bintensity, float brange)
		{
			GameObject prefab = instance.GetPrefab(bprefab);
			if (Object.op_Implicit((Object)(object)prefab))
			{
				Light componentInChi