Decompiled source of RavenwoodAsia v1.0.1

plugins/RavenwoodAsia/RavenwoodAsia.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using HarmonyLib;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using Microsoft.CodeAnalysis;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("RavenwoodAsia")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("MagicMike")]
[assembly: AssemblyProduct("RavenwoodAsia")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("1.0.1")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.1.0")]
[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 RavenwoodEgypt
{
	internal class SoundPatches
	{
		[HarmonyPatch(typeof(ZNetScene), "Awake")]
		private static class ZNetSceneAwakePatch
		{
			private static void Postfix(ZNetScene __instance)
			{
				GameObject prefab = __instance.GetPrefab("sfx_pyramid_door");
				try
				{
					prefab.GetComponentInChildren<AudioSource>().outputAudioMixerGroup = AudioMan.instance.m_ambientMixer;
				}
				catch
				{
					Logger.LogError((object)"Error with ZNetSceneAwakePatch!");
				}
			}
		}
	}
}
namespace RavenwoodAsia
{
	public class AddAsia
	{
		public static EffectList buildWood;

		public static EffectList breakWood;

		public static EffectList hitWood;

		public static EffectList buildStone;

		public static EffectList breakStone;

		public static EffectList hitStone;

		public static EffectList buildMetal;

		public static EffectList breakMetal;

		public static EffectList hitMetal;

		public static EffectList addFuel;

		public static EffectList doorOpen;

		public static EffectList doorClose;

		public static ItemDrop fuelWood;

		public static ItemDrop fuelResin;

		public static void LoadPieces()
		{
			SetupGamePrefabs();
			AddAsiaHouse01();
			AddAsiaHouse02();
			AddAsiaHouse03();
			AddAsiaHouse01DoorDouble();
			AddAsiaHouse01Door();
			AddAsiaHouse02DoorDouble();
			AddAsiaHouse03DoorDouble();
			AddAsiaHouse03Door();
			AddAsiaShrine();
			AddAsiaWall();
			AddAsiaWallArch();
			AddAsiaWallCorner();
			AddDragonStatue();
			AddLionStatue();
			AddOniMask();
			AddOniMask02();
			AddLantern();
			AddLantern02();
			AddSamuraiSword();
			AddSupportWeapons();
			AddAsianBell();
			AddAsianPartition();
			AddBambooPlants();
		}

		public static void SetupGamePrefabs()
		{
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Expected O, but got Unknown
			//IL_0091: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Expected O, but got Unknown
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Expected O, but got Unknown
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Expected O, but got Unknown
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Expected O, but got Unknown
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f2: Expected O, but got Unknown
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0105: Expected O, but got Unknown
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0114: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Expected O, but got Unknown
			//IL_0128: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Expected O, but got Unknown
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Expected O, but got Unknown
			//IL_0153: Unknown result type (might be due to invalid IL or missing references)
			//IL_015a: Expected O, but got Unknown
			//IL_0164: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Expected O, but got Unknown
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Expected O, but got Unknown
			//IL_018f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0194: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: Expected O, but got Unknown
			//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Expected O, but got Unknown
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c8: Expected O, but got Unknown
			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01db: Expected O, but got Unknown
			//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f3: Expected O, but got Unknown
			//IL_01ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0206: Expected O, but got Unknown
			//IL_0210: Unknown result type (might be due to invalid IL or missing references)
			//IL_0215: Unknown result type (might be due to invalid IL or missing references)
			//IL_021e: Expected O, but got Unknown
			//IL_022a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0231: Expected O, but got Unknown
			//IL_023b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0240: Unknown result type (might be due to invalid IL or missing references)
			//IL_0249: Expected O, but got Unknown
			//IL_0255: Unknown result type (might be due to invalid IL or missing references)
			//IL_025c: Expected O, but got Unknown
			//IL_0266: Unknown result type (might be due to invalid IL or missing references)
			//IL_026b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0274: Expected O, but got Unknown
			//IL_0276: Unknown result type (might be due to invalid IL or missing references)
			//IL_027b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0284: 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");
			GameObject prefab4 = Cache.GetPrefab<GameObject>("sfx_build_hammer_stone");
			GameObject prefab5 = Cache.GetPrefab<GameObject>("sfx_rock_hit");
			GameObject prefab6 = Cache.GetPrefab<GameObject>("sfx_build_hammer_metal");
			GameObject prefab7 = Cache.GetPrefab<GameObject>("sfx_metal_blocked");
			GameObject prefab8 = Cache.GetPrefab<GameObject>("vfx_walltorch_addFuel");
			GameObject prefab9 = Cache.GetPrefab<GameObject>("sfx_FireAddFuel");
			GameObject prefab10 = Cache.GetPrefab<GameObject>("sfx_door_open");
			GameObject prefab11 = Cache.GetPrefab<GameObject>("sfx_door_close");
			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;
			val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[1]
			{
				new EffectData
				{
					m_prefab = prefab4
				}
			};
			buildStone = val;
			val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[1]
			{
				new EffectData
				{
					m_prefab = prefab5
				}
			};
			breakStone = val;
			val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[1]
			{
				new EffectData
				{
					m_prefab = prefab5
				}
			};
			hitStone = val;
			val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[1]
			{
				new EffectData
				{
					m_prefab = prefab6
				}
			};
			buildMetal = val;
			val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[1]
			{
				new EffectData
				{
					m_prefab = prefab7
				}
			};
			breakMetal = val;
			val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[1]
			{
				new EffectData
				{
					m_prefab = prefab7
				}
			};
			hitMetal = val;
			val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[1]
			{
				new EffectData
				{
					m_prefab = prefab10
				}
			};
			doorOpen = val;
			val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[1]
			{
				new EffectData
				{
					m_prefab = prefab11
				}
			};
			doorClose = val;
			val = new EffectList();
			val.m_effectPrefabs = (EffectData[])(object)new EffectData[2]
			{
				new EffectData
				{
					m_prefab = prefab8
				},
				new EffectData
				{
					m_prefab = prefab9
				}
			};
			addFuel = val;
			fuelWood = Cache.GetPrefab<GameObject>("Wood").GetComponent<ItemDrop>();
			fuelResin = Cache.GetPrefab<GameObject>("Resin").GetComponent<ItemDrop>();
		}

		public static void AddAsiaHouse01()
		{
			//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_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Expected O, but got Unknown
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Expected O, but got Unknown
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_asia_house_01");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1000,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Flint",
					Amount = 120,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsiaHouse02()
		{
			//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_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Expected O, but got Unknown
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Expected O, but got Unknown
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_asia_house_02");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 600,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Flint",
					Amount = 90,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsiaHouse03()
		{
			//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_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Expected O, but got Unknown
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Expected O, but got Unknown
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_asia_house_03");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1000,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Flint",
					Amount = 120,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsiaHouse01DoorDouble()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_house_01_door_double");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 20,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			Door component = val.GetComponent<Door>();
			component.m_openEffects = doorOpen;
			component.m_closeEffects = doorClose;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsiaHouse01Door()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_house_01_door");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 10,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			Door component = val.GetComponent<Door>();
			component.m_openEffects = doorOpen;
			component.m_closeEffects = doorClose;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsiaHouse02DoorDouble()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_house_02_door_double");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 20,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			Door component = val.GetComponent<Door>();
			component.m_openEffects = doorOpen;
			component.m_closeEffects = doorClose;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsiaHouse03DoorDouble()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_house_03_door_double");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 20,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			Door component = val.GetComponent<Door>();
			component.m_openEffects = doorOpen;
			component.m_closeEffects = doorClose;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsiaHouse03Door()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_house_03_door");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 10,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			Door component = val.GetComponent<Door>();
			component.m_openEffects = doorOpen;
			component.m_closeEffects = doorClose;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsiaShrine()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Expected O, but got Unknown
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Expected O, but got Unknown
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_shrine");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 100,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 50,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Stone",
					Amount = 50,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Flint",
					Amount = 30,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsiaWall()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Expected O, but got Unknown
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_japanese_wall");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_stonecutter";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Stone",
					Amount = 50,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Flint",
					Amount = 30,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildStone;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsiaWallArch()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Expected O, but got Unknown
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_japanese_wall_arch");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_stonecutter";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Stone",
					Amount = 50,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Flint",
					Amount = 30,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildStone;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsiaWallCorner()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Expected O, but got Unknown
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_japanese_wall_corner");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_stonecutter";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Stone",
					Amount = 25,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Flint",
					Amount = 15,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildStone;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddDragonStatue()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_dragon_statue");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "forge";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Bronze",
					Amount = 60,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildMetal;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddLionStatue()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Expected O, but got Unknown
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_lion_statue");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "forge";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Stone",
					Amount = 20,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Bronze",
					Amount = 20,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildStone;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddOniMask()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_oni_mask");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 25,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddOniMask02()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_oni_mask_02");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 25,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddLantern()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: 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_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Expected O, but got Unknown
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Expected O, but got Unknown
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Expected O, but got Unknown
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: 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_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Expected O, but got Unknown
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_lantern");
			PieceConfig val2 = new PieceConfig();
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
			{
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 5,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Coal",
					Amount = 5,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Resin",
					Amount = 5,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Honey",
					Amount = 5,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddLantern02()
		{
			//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 = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_lantern_02");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
			{
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 5,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Coal",
					Amount = 5,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Resin",
					Amount = 5,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Honey",
					Amount = 5,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddSamuraiSword()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Expected O, but got Unknown
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Expected O, but got Unknown
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_samurai_sword_holder");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "forge";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 20,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 5,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Coins",
					Amount = 20,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddSupportWeapons()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Expected O, but got Unknown
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_support_weapons");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "forge";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 50,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 15,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Coins",
					Amount = 50,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsianBell()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Expected O, but got Unknown
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_asian_bell");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "forge";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 50,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 50,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddAsianPartition()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Expected O, but got Unknown
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_asian_partition");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 50,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Coins",
					Amount = 50,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}

		public static void AddBambooPlants()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			GameObject val = RavenwoodAsiaPlugin.magicBundle.LoadAsset<GameObject>("mm_bamboo_plants");
			PieceConfig val2 = new PieceConfig();
			val2.CraftingStation = "piece_workbench";
			val2.PieceTable = "_HammerPieceTable";
			val2.Category = "Ravenwood-Asia";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 25,
					Recover = true
				}
			};
			CustomPiece val3 = new CustomPiece(val, false, val2);
			val.GetComponent<Piece>().m_placeEffect = buildWood;
			PieceManager.Instance.AddPiece(val3);
		}
	}
	[BepInPlugin("MagicMike.RavenwoodAsia", "RavenwoodAsia", "1.0.1")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
	public class RavenwoodAsiaPlugin : BaseUnityPlugin
	{
		public const string PluginName = "RavenwoodAsia";

		public const string PluginVersion = "1.0.1";

		public const string PluginAuthor = "MagicMike";

		public const string PluginGUID = "MagicMike.RavenwoodAsia";

		public static AssetBundle magicBundle;

		private void Awake()
		{
			Game.isModded = true;
			LoadBundle();
			PrefabManager.OnVanillaPrefabsAvailable += LoadRavenwoodAsia;
		}

		private void LoadBundle()
		{
			try
			{
				magicBundle = AssetUtils.LoadAssetBundleFromResources("ravenwoodasia", Assembly.GetExecutingAssembly());
			}
			catch (Exception ex)
			{
				Logger.LogError((object)("Exception caught while loading bundle: " + ex.Message));
			}
		}

		private void LoadRavenwoodAsia()
		{
			try
			{
				AddAsia.LoadPieces();
			}
			catch (Exception ex)
			{
				Logger.LogError((object)("Exception caught while loading Asia Pieces: " + ex.Message));
			}
			finally
			{
				PrefabManager.OnVanillaPrefabsAvailable -= LoadRavenwoodAsia;
			}
		}
	}
}