Decompiled source of Templeton Temples v0.2.3

ConstructionKit.dll

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

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("ConstructionKit")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ConstructionKit")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("b3da7c1f-db08-4a6c-8e2f-79ae4a985881")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace ConstructionKit;

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

	public const string PluginName = "Templeton Temples";

	public const string PluginVersion = "0.2.3";

	public static bool isModded = true;

	public ConfigEntry<bool> ModEnable;

	public ConfigEntry<bool> LoggingEnable;

	public ConfigEntry<bool> TempleDungeonEnable;

	public ConfigEntry<bool> DisableLocalization;

	public AssetBundle constructionAssets;

	public CustomLocalization LocalCK;

	public string[] pieceDEBeam1MList = new string[18]
	{
		"Piece_DE_RoofTopTrim_45_TM", "Piece_DE_RoofTrim_45_TM", "Piece_DE_CenterTrim_A_TM", "Piece_DE_CenterTrim_B_TM", "Piece_DE_EndTrim_A_TM", "Piece_DE_PoleDecor_A_1m_TM", "Piece_DE_Beam_A_1m_TM", "Piece_DE_Beam_B_1m_TM", "Piece_DE_Beam_C_1m_TM", "Piece_DE_Pole_A_1m_TM",
		"Piece_DE_Pole_B_1m_TM", "Piece_DE_Pole_C_1m_TM", "Piece_DE_RoundBeam_A_1m_TM", "Piece_DE_RoundBeam_B_1m_TM", "Piece_DE_RoundBeam_C_1m_TM", "Piece_DE_RoundPole_A_1m_TM", "Piece_DE_RoundPole_B_1m_TM", "Piece_DE_RoundPole_C_1m_TM"
	};

	public string[] pieceDEBeam2MList = new string[19]
	{
		"Piece_DE_RoofBeam_45_TM", "Piece_DE_BeamThin_A_2m_TM", "Piece_DE_PoleDecor_A_2m_TM", "Piece_DE_BeamDecor_A_2m_TM", "Piece_DE_PoleThin_A_2m_TM", "Piece_DE_PoleThin_B_2m_TM", "Piece_DE_PoleThin_C_2m_TM", "Piece_DE_Beam_A_2m_TM", "Piece_DE_Beam_B_2m_TM", "Piece_DE_Beam_C_2m_TM",
		"Piece_DE_Pole_A_2m_TM", "Piece_DE_Pole_B_2m_TM", "Piece_DE_Pole_C_2m_TM", "Piece_DE_RoundBeam_A_2m_TM", "Piece_DE_RoundBeam_B_2m_TM", "Piece_DE_RoundBeam_C_2m_TM", "Piece_DE_RoundPole_A_2m_TM", "Piece_DE_RoundPole_B_2m_TM", "Piece_DE_RoundPole_C_2m_TM"
	};

	public string[] pieceDEBeam3MList = new string[12]
	{
		"Piece_DE_Beam_A_3m_TM", "Piece_DE_Beam_B_3m_TM", "Piece_DE_Beam_C_3m_TM", "Piece_DE_Pole_A_3m_TM", "Piece_DE_Pole_B_3m_TM", "Piece_DE_Pole_C_3m_TM", "Piece_DE_RoundBeam_A_3m_TM", "Piece_DE_RoundBeam_B_3m_TM", "Piece_DE_RoundBeam_C_3m_TM", "Piece_DE_RoundPole_A_3m_TM",
		"Piece_DE_RoundPole_B_3m_TM", "Piece_DE_RoundPole_C_3m_TM"
	};

	public string[] pieceDESmallList = new string[6] { "Piece_DE_DoorBeamArch_2m_TM", "Piece_DE_Wall_Block_2x1_TM", "Piece_DE_RoofRailing_2m_TM", "Piece_DE_DoorBeam_2m_TM", "Piece_DE_Block_1m_TM", "Piece_DE_RoofBlock_1m_TM" };

	public string[] pieceDEMediumList = new string[16]
	{
		"Piece_DE_RoofWall_A_45_TM", "Piece_DE_RoofWall_B_45_TM", "Piece_DE_Wall_Block_2x2_TM", "Piece_DE_Pillar_A_2m_TM", "Piece_DE_Stairs_2x2x1_TM", "Piece_DE_StoneDoor_A_2m_TM", "Piece_DE_StoneDoor_B_2m_TM", "Piece_DE_RoofFlat_2x2_TM", "Piece_DE_RoofSlab_2x2_TM", "Piece_DE_RoofPaved_2x2_TM",
		"Piece_DE_Floor_2x2_TM", "Piece_DE_Wall_Decor_A_2x2_TM", "Piece_DE_Wall_Decor_B_2x2_TM", "Piece_DE_Wall_Decor_C_2x2_TM", "Piece_DE_Wall_Decor_D_2x2_TM", "Piece_DE_Wall_Decor_E_2x2_TM"
	};

	public string[] pieceDEMediumRoofList = new string[3] { "Piece_DE_TiledRoofTop_45_Statue_End_TM", "Piece_DE_TiledRoof_45_TM", "Piece_DE_TiledRoofTop_45_TM" };

	public string[] pieceDELargeList = new string[15]
	{
		"Piece_DE_PerimeterPillar_B_4m_TM", "Piece_DE_PerimeterWall_A_3m_TM", "Piece_DE_PerimeterPillar_A_4m_TM", "Piece_DE_PerimeterDoor_TM", "Piece_DE_PerimeterArch_TM", "Piece_DE_Pillar_A_3m_TM", "Piece_DE_Archway_2x2_TM", "Piece_DE_StoneDoor_A_3m_TM", "Piece_DE_StoneDoor_B_3m_TM", "Piece_DE_GlassDoor_A_3m_TM",
		"Piece_DE_GlassDoor_B_3m_TM", "Piece_DE_MainDoor_A_3m_TM", "Piece_DE_MainDoor_B_3m_TM", "Piece_DE_MetalDoor_A_3m_TM", "Piece_DE_Door_2x3x1_TM"
	};

	public string[] pieceDEWindowList = new string[17]
	{
		"Piece_DE_Wall_Block_FancyWindow_2x2_TM", "Piece_DE_Wall_Block_PortholeWindow_2x2_TM", "Piece_DE_Wall_Block_TeardropWindow_2x2_TM", "Piece_DE_Wall_Block_RoundWindow_2x2_TM", "Piece_DE_Wall_Block_HexWindow_2x2_TM", "Piece_DE_Wall_Block_HexWindowRed_2x2_TM", "Piece_DE_Wall_Block_HexWindowPurple_2x2_TM", "Piece_DE_Wall_Block_HalfRoundWindow_2x2_TM", "Piece_DE_Wall_Block_ElfWindow_2x2_TM", "Piece_DE_Wall_Block_ElfWindowRed_2x2_TM",
		"Piece_DE_Wall_Block_ElfWindowPurple_2x2_TM", "Piece_DE_WindowGlass_A_2x2_TM", "Piece_DE_WindowGlass_B_2x2_TM", "Piece_DE_WindowGlass_C_2x2_TM", "Piece_DE_WindowGlass_D_2x2_TM", "Piece_DE_StoneDoor_Glass_A_2m_TM", "Piece_DE_StoneDoor_Glass_B_2m_TM"
	};

	public string[] pieceSmallList = new string[17]
	{
		"Piece_DT_Wall_4x1_TM", "Piece_DT_Wall_2x1_TM", "Piece_DT_Wall_1x1_TM", "Piece_DT_Wall_1x2_TM", "Piece_DT_Wall_1x4_TM", "Piece_DT_Floor_4x1_TM", "Piece_DT_Floor_2x2_TM", "Piece_DT_Railing_Post_TM", "Piece_DT_Pillar_A_1m_TM", "Piece_DT_Pillar_B_1m_TM",
		"Piece_DT_Pillar_C_1m_TM", "Piece_DT_Pillar_D_1m_TM", "Piece_DT_Pillar_E_1m_TM", "Piece_TD_Pedestal_Tiny_TM", "Piece_TD_Pedestal_Small_TM", "Piece_TW_Railing_Post_1m_TM", "Piece_TW_GardenPillar_1m_TM"
	};

	public string[] pieceMediumList = new string[20]
	{
		"Piece_DT_Wall_2x2_TM", "Piece_DT_Floor_4x2_TM", "Piece_DT_Roof_Endcap_4m_TM", "Piece_DT_Railing_4x1_TM", "Piece_DT_Pillar_A_2m_TM", "Piece_DT_Pillar_B_2m_TM", "Piece_DT_Pillar_C_2m_TM", "Piece_DT_Pillar_D_2m_TM", "Piece_DT_Pillar_E_2m_TM", "Piece_TW_StackablePillar_2m_TM",
		"Piece_TW_CappedPillar_2m_TM", "Piece_TW_OuterPillar_Light_2m_TM", "Piece_TW_OuterPillar_2m_TM", "Piece_TW_OuterPillar_Decor_2m_TM", "Piece_TW_GardenWall_4x1_TM", "Piece_TW_GardenPillar_Light_1m_TM", "Piece_TW_Railing_Center_4x1_TM", "Piece_TW_Railing_Edge_4x1_TM", "Piece_TD_Pedestal_Medium_TM", "Piece_TD_Pedestal_Large_TM"
	};

	public string[] pieceLargeList = new string[52]
	{
		"Piece_DT_Wall_4x4_TM", "Piece_DT_Wall_4x2_TM", "Piece_DT_Wall_2x4_TM", "Piece_DT_Floor_4x4_TM", "Piece_DT_Roof_Straight_4x4_TM", "Piece_DT_Roof_Cross_4x4_TM", "Piece_DT_Pillar_A_4m_TM", "Piece_DT_Pillar_B_4m_TM", "Piece_DT_Pillar_C_4m_TM", "Piece_DT_Pillar_D_4m_TM",
		"Piece_DT_Pillar_E_4m_TM", "Piece_DT_Pillar_F_4m_TM", "Piece_DT_Pillar_G_4m_TM", "Piece_DT_Pillar_H_4m_TM", "Piece_DT_Pillar_I_4m_TM", "Piece_DT_Pillar_J_4m_TM", "Piece_DT_Pillar_K_4m_TM", "Piece_TW_CappedPillar_4m_TM", "Piece_TW_OuterWall_8x4_TM", "Piece_TW_OuterWall_8x2_TM",
		"Piece_TW_OuterPillar_4m_TM", "Piece_TW_OuterPillar_Stack_4m_TM", "Piece_TW_OuterArch_8x4_TM", "Piece_TW_OuterArch_4x2_TM", "Piece_TW_RoundPillar_A_4m_TM", "Piece_TW_RoundPillar_B_4m_TM", "Piece_TW_RoundPillar_C_4m_TM", "Piece_TW_PillarWall_4x4_TM", "Piece_TW_TemplePillar_A_4m_TM", "Piece_TW_TemplePillar_B_4m_TM",
		"Piece_TW_TemplePillar_C_4m_TM", "Piece_TW_Basic_4x4_TM", "Piece_TW_Basic_4x2_TM", "Piece_TW_Double_4x4_TM", "Piece_TW_Double_Decor_4x4_TM", "Piece_TW_Steps_4x4_TM", "Piece_TW_Steps_Decor_4x4_TM", "Piece_TD_PotteryGroup_A_TM", "Piece_TD_PotteryGroup_B_TM", "Piece_TD_PotteryGroup_C_TM",
		"Piece_TD_PotteryGroup_D_TM", "Piece_TD_PotteryGroup_E_TM", "Piece_TF_Ramp_4x4x1_TM", "Piece_TF_StairBase_4x2x1_TM", "Piece_TF_StairBase_B_4x2x1_TM", "Piece_TF_FoundationCurb_4x1_TM", "Piece_TF_Foundation_4x4x1_TM", "Piece_TF_Stairs_4x2x1_TM", "Piece_TF_Tiled_4x4_TM", "Piece_TF_Stone_4x4_TM",
		"Piece_TF_Stone_4x4x1_TM", "Piece_TF_Stone_8x8x1_TM"
	};

	public string[] roofList = new string[4] { "Piece_TR_InsideCorner_TM", "Piece_TR_EndLeft_TM", "Piece_TR_EndRight_TM", "Piece_TR_Straight_4m_TM" };

	public string[] roofGroupList = new string[4] { "Piece_TR_Corner_4m_TM", "Piece_TR_TopEnd_4m_TM", "Piece_TR_TopCorner_4m_TM", "Piece_TR_TopStraight_4m_TM" };

	public string[] beamList = new string[9] { "Piece_TW_SeamPillar_2m_TM", "Piece_TW_SeamPillar_4m_TM", "Piece_TR_Tiled_4x2_TM", "Piece_TR_Tiled_8x8_TM", "Piece_TR_Tiled_6x6_TM", "Piece_TR_Tiled_4x4_TM", "Piece_TR_Beam_4m_TM", "Piece_TR_Beam_6m_TM", "Piece_TR_Beam_8m_TM" };

	public string[] gateList = new string[4] { "Piece_DT_Door_A_TM", "Piece_DT_Door_B_TM", "Piece_TW_OuterGate_4x2_TM", "Piece_TW_Gate_4x4_TM" };

	public string[] grateList = new string[7] { "Piece_DT_Floor_4x4_Grate_TM", "Piece_DT_Floor_4x4_Grate_Center_TM", "Piece_DT_Floor_4x4_Grate_CenterDecor_TM", "Piece_DT_Floor_4x4_Grate_Cross_TM", "Piece_DT_Floor_4x4_Grate_End_TM", "Piece_DT_Floor_4x4_Grate_EndDouble_TM", "Piece_DT_Floor_4x4_Grate_T_TM" };

	public string[] windowList = new string[7] { "Piece_DT_Window_4x4_TM", "Piece_TWin_Steps_Decor_Small_4x4_TM", "Piece_TWin_Steps_Small_4x4_TM", "Piece_TWin_Double_Decor_Small_4x4_TM", "Piece_TWin_Double_Small_4x4_TM", "Piece_TWin_Basic_Medium_4x4_TM", "Piece_TWin_Basic_Small_4x4_TM" };

	public string[] itemList = new string[2] { "DT_TraderKey_TM", "Mortar_TM" };

	public string[] dungeonPropList = new string[75]
	{
		"Static_Prop_Floor_4x4_TM", "Static_Prop_Pillar_TM", "Static_Prop_StairsBottom_4x4_TM", "Static_Prop_StairsMiddle_4x4_TM", "Static_Prop_VaultCeling_4x4_TM", "Static_Prop_VaultCelingStraight_4x4_TM", "Static_Prop_Wall_4x4_TM", "Prop_DT_Banner_A_TM", "Prop_DT_Banner_B_TM", "Prop_DT_Banner_C_TM",
		"Prop_DT_Banner_D_TM", "Prop_DT_Banner_E_TM", "Prop_DT_Banner_F_TM", "Prop_DT_Banner_G_TM", "Prop_DT_Banner_H_TM", "Prop_DT_BonePile_A_TM", "Prop_DT_BonePile_B_TM", "Prop_DT_BonePile_C_TM", "Prop_DT_BonePile_D_TM", "Prop_DT_BonePile_E_TM",
		"Prop_DT_BonePile_F_TM", "Prop_DT_Bookcase_A_TM", "Prop_DT_Bookcase_B_TM", "Prop_DT_Bookcase_C_TM", "Prop_DT_Bookcase_D_TM", "Prop_DT_Bookcase_E_TM", "Prop_DT_Bookcase_F_TM", "Prop_DT_Bookcase_G_TM", "Prop_DT_Bottles_A_TM", "Prop_DT_Bottles_B_TM",
		"Prop_DT_Bottles_C_TM", "Prop_DT_Bottles_D_TM", "Prop_DT_Candles_A_TM", "Prop_DT_Candles_B_TM", "Prop_DT_Candles_C_TM", "Prop_DT_CoinPile_Medium_TM", "Prop_DT_CoinPile_Large_TM", "Prop_DT_Coins_3_TM", "Prop_DT_Coins_4_TM", "Prop_DT_Coins_6_TM",
		"Prop_DT_Coins_7_TM", "Prop_DT_Coins_11_TM", "Prop_DT_CoinStack_Tiny_TM", "Prop_DT_CoinStack_Small_TM", "Prop_DT_CoinStack_Medium_TM", "Prop_DT_CoinStack_Large_TM", "Prop_DT_Rug_A_TM", "Prop_DT_Rug_B_TM", "Prop_DT_Rug_C_TM", "Prop_DT_Rug_D_TM",
		"Prop_DT_Rug_E_TM", "Prop_DT_Rug_F_TM", "Prop_DT_Rug_G_TM", "Prop_DT_Rug_H_TM", "Prop_DT_Sarcophagus_A_TM", "Prop_DT_Sarcophagus_B_TM", "Prop_DT_Sarcophagus_C_TM", "Prop_DT_Sarcophagus_D_TM", "Prop_DT_Sarcophagus_E_TM", "Prop_DT_Sarcophagus_F_TM",
		"Prop_DT_Sarcophagus_G_TM", "Prop_DT_Sarcophagus_H_TM", "Prop_DT_StackedBooks_A_TM", "Prop_DT_StackedBooks_B_TM", "Prop_DT_StackedBooks_C_TM", "Prop_DT_StackedBooks_D_TM", "Prop_DT_StackedBooks_E_TM", "Prop_DT_StackedBooks_F_TM", "Prop_PedestalCandle_A_TM", "Prop_PedestalCandle_B_TM",
		"Prop_PedestalCandle_C_TM", "Prop_TD_Candelabra_A_TM", "Prop_TD_Candelabra_B_TM", "Prop_TD_Chandelier_A_TM", "Prop_TD_Chandelier_B_TM"
	};

	public string[] dungeonDoorList = new string[3] { "Dungeon_DT_Door_TM", "Dungeon_DT_RockFall_TM", "Dungeon_DT_TraderDoor_TM" };

	public PieceConfig pieceDarkElfWindowRecipe;

	public PieceConfig pieceDarkElfTinyRecipe;

	public PieceConfig pieceDarkElfSmallRecipe;

	public PieceConfig pieceDarkElfMediumRecipe;

	public PieceConfig pieceDarkElfLargeRecipe;

	public PieceConfig pieceDarkElfMediumRoofRecipe;

	public PieceConfig pieceTempleRecipe;

	public PieceConfig pieceTempleSmallRecipe;

	public PieceConfig pieceTempleMediumRecipe;

	public PieceConfig pieceTempleLargeRecipe;

	public PieceConfig pieceTempleRoofGroupRecipe;

	public PieceConfig pieceTempleRoofRecipe;

	public PieceConfig pieceTempleBeamRecipe;

	public PieceConfig pieceTempleGrateFloorRecipe;

	public PieceConfig pieceTempleGateRecipe;

	public PieceConfig pieceTempleWindowRecipe;

	public PieceConfig pieceDungeonRecipe;

	public PieceConfig pieceDungeonSmallRecipe;

	public PieceConfig pieceDungeonMediumRecipe;

	public PieceConfig pieceDungeonLargeRecipe;

	public PieceConfig pieceDungeonRoofGroupRecipe;

	public PieceConfig pieceDungeonRoofRecipe;

	public PieceConfig pieceDungeonBeamRecipe;

	public PieceConfig pieceDungeonGrateFloorRecipe;

	public PieceConfig pieceDungeonGateRecipe;

	public PieceConfig pieceDungeonWindowRecipe;

	public void CreateConfigurationValues()
	{
		//IL_002f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0034: Unknown result type (might be due to invalid IL or missing references)
		//IL_003d: Expected O, but got Unknown
		//IL_003d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0047: Expected O, but got Unknown
		//IL_006c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0071: Unknown result type (might be due to invalid IL or missing references)
		//IL_007a: Expected O, but got Unknown
		//IL_007a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0084: Expected O, but got Unknown
		//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b7: Expected O, but got Unknown
		//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c1: Expected O, but got Unknown
		//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f4: Expected O, but got Unknown
		//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fe: Expected O, but got Unknown
		try
		{
			((BaseUnityPlugin)this).Config.SaveOnConfigSet = true;
			ModEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1 Constuction Kit", "Enable", true, new ConfigDescription("Admin only, Enables this mod.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			TempleDungeonEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("2 Temple Dungeon", "Enable", true, new ConfigDescription("Admin only, Enables the Temple Dungeon and Props.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			DisableLocalization = ((BaseUnityPlugin)this).Config.Bind<bool>("2 Localization", "Disable", false, new ConfigDescription("Enable or Disable the hardcoded English localization.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			LoggingEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("99 Logging", "Enable", false, new ConfigDescription("Enables logging.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			SynchronizationManager.OnConfigurationSynchronized += delegate(object obj, ConfigurationSynchronizationEventArgs attr)
			{
				if (attr.InitialSynchronization)
				{
					Logger.LogMessage((object)"Initial Config sync event received for Construction Kit");
				}
				else
				{
					Logger.LogMessage((object)"Config sync event received for Construction Kit");
				}
			};
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding configuration values: {arg}");
		}
	}

	private void Awake()
	{
		try
		{
			CreateConfigurationValues();
			if (ModEnable.Value)
			{
				if (!DisableLocalization.Value)
				{
					AddLocalization();
				}
				LoadBundle();
				AddItems();
				AddRecipesFromJson();
				AddPieces();
				if (TempleDungeonEnable.Value)
				{
					AddTempleDungeonProps();
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while initalizing plugin: {arg}");
		}
	}

	public void AddLocalization()
	{
		try
		{
			LocalCK = LocalizationManager.Instance.GetLocalization();
			CustomLocalization localCK = LocalCK;
			string text = "English";
			localCK.AddTranslation(ref text, new Dictionary<string, string>
			{
				{ "piece_playerbase_32_tm", "Floor with Statue (Player Base)" },
				{ "piece_playerbase_32_desc_tm", "Paved and Leveled ground in a 32m radius, also sets the area as a Player Base.\nIf destroyed or removed the land will revert to how it was before placed and anything built on top of it will most likely collapse." },
				{ "piece_de_rooftop45endstatue_tm", "Roof Top End 45 with Statue" },
				{ "piece_de_beamthin_a_2m_tm", "Thin Beam 2m" },
				{ "piece_de_roofbeam_45_tm", "Roof Beam 45" },
				{ "piece_de_rooftoptrim_45_tm", "Roof Top Beam 45" },
				{ "piece_de_wall_block_teardropwindow_2x2_tm", "Teardrop Window 2x2" },
				{ "piece_de_wall_block_portholewindow_2x2_tm", "Porthole Window 2x2" },
				{ "piece_de_wall_block_fancywindow_2x2_tm", "Fancy Window 2x2" },
				{ "piece_de_wall_block_elfwindowred_2x2_tm", "Dark Elf Window 2x2 (Red Glass)" },
				{ "piece_de_wall_block_elfwindowpurple_2x2_tm", "Dark Elf Window 2x2 (Purple Glass)" },
				{ "piece_de_wall_block_elfwindow_2x2_tm", "Dark Elf Window 2x2" },
				{ "piece_de_wall_block_hexwindow_2x2_tm", "Hexagon Window 2x2" },
				{ "piece_de_wall_block_hexwindowred_2x2_tm", "Hexagon Window 2x2 (Red Glass)" },
				{ "piece_de_wall_block_hexwindowpurple_2x2_tm", "Hexagon Window 2x2 (Purple Glass)" },
				{ "piece_de_wall_block_halfroundwindow_2x2_tm", "Half Round Window 2x2" },
				{ "piece_de_wall_block_roundwindow_2x2_tm", "Round Window 2x2" },
				{ "piece_de_wall_block_halfroundwindowfrosted_2x2_tm", "Frosted Half Round Window 2x2" },
				{ "piece_de_wall_block_roundwindowfrosted_2x2_tm", "Frosted Round Window 2x2" },
				{ "piece_de_tileroof_45_tm", "Slate Roof 45" },
				{ "piece_de_rooftop45_tm", "Roof Top 45" },
				{ "piece_de_beamdecor_a_1m_tm", "Decorative Beam 1m" },
				{ "piece_roofwall_45_b_tm", "Roof Wall 45" },
				{ "piece_roofwall_45_a_tm", "Roof Wall 45" },
				{ "piece_de_rooftrim_45_tm", "Roof Trim 45" },
				{ "piece_de_perimeterpillar_b_4m_tm", "Perimeter Pillar 3m (Lit)" },
				{ "piece_de_centertrim_a_tm", "Decorative Center Trim" },
				{ "piece_de_centertrim_b_tm", "Block Center Trim" },
				{ "piece_de_endtrim_a_tm", "Decorative End Trim" },
				{ "piece_de_beamdecor_a_2m_tm", "Decorative Beam 2m" },
				{ "piece_de_doorbeamarch_2m_tm", "Arch Door Filler Beam 2m" },
				{ "piece_de_maindoor_name_tm", "Strong Stone Door" },
				{ "piece_de_stonedoor_name_tm", "Stone Door" },
				{ "piece_de_glassdoor_name_tm", "Glass Door" },
				{ "piece_de_perimeterwall_3m_tm", "Perimeter Wall 3m" },
				{ "piece_de_perimeterarch_tm", "Perimeter Arch 3m" },
				{ "piece_de_perimeterdoor_tm", "Perimeter Door 3m" },
				{ "piece_de_perimeterpillar_a_4m_tm", "Perimeter Pillar 3m" },
				{ "piece_de_stonedoor_a_3m_tm", "Stone Door A 3m" },
				{ "piece_de_stonedoor_b_3m_tm", "Stone Door B 3m" },
				{ "piece_de_maindoor_a_3m_tm", "Main Door with window 3m" },
				{ "piece_de_maindoor_b_3m_tm", "Main Door with bars 3m" },
				{ "piece_de_glassdoor_a_3m_tm", "Frosted Glass Door 3m" },
				{ "piece_de_glassdoor_b_3m_tm", "Glass Door 3m" },
				{ "piece_de_metaldoor_a_3m_tm", "Metal Door 3m" },
				{ "piece_de_wall_decor_a_2x2_tm", "Decrotive Wall A 2m" },
				{ "piece_de_wall_decor_b_2x2_tm", "Decrotive Wall B 2m" },
				{ "piece_de_wall_decor_c_2x2_tm", "Guard Wall A 2m" },
				{ "piece_de_wall_decor_d_2x2_tm", "Guard Wall B 2m" },
				{ "piece_de_wall_decor_e_2x2_tm", "Guard Wall C 2m" },
				{ "piece_de_wall_block_2x2_tm", "Block Wall 2m" },
				{ "piece_de_wall_block_2x1_tm", "Block Wall 2x1" },
				{ "piece_de_wall_basic_2x2_tm", "Basic Wall 2m" },
				{ "piece_de_archway_2x2_tm", "Archway 3x2" },
				{ "piece_de_pillar_a_2m_tm", "Pillar 2m" },
				{ "piece_de_pillar_a_3m_tm", "Pillar 2m" },
				{ "piece_de_door_2x3x1_tm", "Door 3x2" },
				{ "piece_de_block_1m_tm", "Block 1m" },
				{ "piece_de_stairs_2x2x1_tm", "Stairs 2m" },
				{ "piece_de_beam_a_1m_tm", "Beam 1m" },
				{ "piece_de_beam_b_1m_tm", "Beam 1m" },
				{ "piece_de_beam_c_1m_tm", "Beam 1m" },
				{ "piece_de_beam_a_2m_tm", "Beam 2m" },
				{ "piece_de_beam_b_2m_tm", "Beam 2m" },
				{ "piece_de_beam_c_2m_tm", "Beam 2m" },
				{ "piece_de_beam_a_3m_tm", "Beam 3m" },
				{ "piece_de_beam_b_3m_tm", "Beam 3m" },
				{ "piece_de_beam_c_3m_tm", "Beam 3m" },
				{ "piece_de_pole_a_1m_tm", "Pole 1m" },
				{ "piece_de_pole_b_1m_tm", "Pole 1m" },
				{ "piece_de_pole_c_1m_tm", "Pole 1m" },
				{ "piece_de_pole_a_2m_tm", "Pole 2m" },
				{ "piece_de_pole_b_2m_tm", "Pole 2m" },
				{ "piece_de_pole_c_2m_tm", "Pole 2m" },
				{ "piece_de_pole_a_3m_tm", "Pole 3m" },
				{ "piece_de_pole_b_3m_tm", "Pole 3m" },
				{ "piece_de_pole_c_3m_tm", "Pole 3m" },
				{ "piece_de_roundedbeam_a_1m_tm", "Round Beam 1m" },
				{ "piece_de_roundedbeam_b_1m_tm", "Round Beam 1m" },
				{ "piece_de_roundedbeam_c_1m_tm", "Round Beam 1m" },
				{ "piece_de_roundedbeam_a_2m_tm", "Round Beam 2m" },
				{ "piece_de_roundedbeam_b_2m_tm", "Round Beam 2m" },
				{ "piece_de_roundedbeam_c_2m_tm", "Round Beam 2m" },
				{ "piece_de_roundedbeam_a_3m_tm", "Round Beam 3m" },
				{ "piece_de_roundedbeam_b_3m_tm", "Round Beam 3m" },
				{ "piece_de_roundedbeam_c_3m_tm", "Round Beam 3m" },
				{ "piece_de_roundedpole_a_1m_tm", "Round Pole 1m" },
				{ "piece_de_roundedpole_b_1m_tm", "Round Pole 1m" },
				{ "piece_de_roundedpole_c_1m_tm", "Round Pole 1m" },
				{ "piece_de_roundedpole_a_2m_tm", "Round Pole 2m" },
				{ "piece_de_roundedpole_b_2m_tm", "Round Pole 2m" },
				{ "piece_de_roundedpole_c_2m_tm", "Round Pole 2m" },
				{ "piece_de_roundedpole_a_3m_tm", "Round Pole 3m" },
				{ "piece_de_roundedpole_b_3m_tm", "Round Pole 3m" },
				{ "piece_de_roundedpole_c_3m_tm", "Round Pole 3m" },
				{ "piece_de_polethin_a_2m_tm", "Thin Pole 2m" },
				{ "piece_de_polethin_b_2m_tm", "Thin Pole 2m" },
				{ "piece_de_polethin_c_2m_tm", "Thin Pole 2m" },
				{ "piece_de_windowglass_a_2m_tm", "Window 2m" },
				{ "piece_de_windowglass_b_2m_tm", "Window 2m" },
				{ "piece_de_windowglass_c_2m_tm", "Frosted Window 2m" },
				{ "piece_de_windowglass_d_2m_tm", "Frosted Window 2m" },
				{ "piece_de_doorbeam_2m_tm", "Door Beam 2m" },
				{ "piece_de_stonedoor_a_2m_tm", "Stone Door 2m" },
				{ "piece_de_stonedoor_b_2m_tm", "Stone Door 2m" },
				{ "piece_de_stonedoor_glass_a_2m_tm", "Frosted Glass Door 2m" },
				{ "piece_de_stonedoor_glass_b_2m_tm", "Glass Door 2m" },
				{ "piece_de_roofblock_1m_tm", "Roof Pillar 1.5m" },
				{ "piece_de_roofrailing_2m_tm", "Roof Railing 2m" },
				{ "piece_de_roofflat_2x2_tm", "Cobbled Roof 2m" },
				{ "piece_de_roofslab_2x2_tm", "Roof Slab 2m" },
				{ "piece_de_roofpaved_2x2_tm", "Paved Roof 2m" },
				{ "piece_de_floor_2x2_tm", "Cobbled Floor 2m" },
				{ "prop_dt_treasurechestlarge_tm", "Treasure Chest 5x4" },
				{ "prop_dt_treasurechestmedium_tm", "Treasure Chest 5x3" },
				{ "prop_dt_treasurechestsmall_tm", "Treasure Chest 5x2" },
				{ "loc_naebeneron_tm", "The Naebeneron" },
				{ "prop_dt_psychedoor_tm", "Psyche's Lair" },
				{ "prop_dt_candelabra_tm", "Candelabra" },
				{ "prop_dt_chandelier_a_tm", "Chandelier" },
				{ "prop_dt_treasurechest_tm", "Treasure Chest" },
				{ "item_mortar_tm", "Mortar" },
				{ "item_mortar_desc_tm", "Used for building" },
				{ "item_psychekey_tm", "Psyche's Key" },
				{ "item_psychekey_desc_tm", "Open's Psyche's room in Naebeneron" },
				{ "piece_dt_window_4x4_tm", "Railing Post" },
				{ "piece_dt_railing_post_tm", "Railing Post" },
				{ "piece_dt_railing_tm", "Railing 4x1" },
				{ "piece_dt_stairs_middle_tm", "Middle Stair Section" },
				{ "piece_dt_stairs_bottom_tm", "Bottom Stair Section" },
				{ "piece_dt_door_a_tm", "Door 4x4" },
				{ "piece_dt_door_b_tm", "Door 4x4" },
				{ "piece_dt_wall_4x4_tm", "Wall 4x4" },
				{ "piece_dt_wall_4x2_tm", "Wall 4x2" },
				{ "piece_dt_wall_4x1_tm", "Wall 4x1" },
				{ "piece_dt_wall_2x4_tm", "Wall 2x4" },
				{ "piece_dt_wall_2x2_tm", "Wall 2x2" },
				{ "piece_dt_wall_2x1_tm", "Wall 2x1" },
				{ "piece_dt_wall_1x4_tm", "Wall 1x4" },
				{ "piece_dt_wall_1x2_tm", "Wall 1x2" },
				{ "piece_dt_wall_1x1_tm", "Wall 1x1" },
				{ "piece_dt_floor_4x4_centerdecor_tm", "Floor with Grate 4x4 Decor Center" },
				{ "piece_dt_floor_4x4_center_tm", "Floor with Grate 4x4 Center" },
				{ "piece_dt_floor_4x4_straight_tm", "Floor with Grate" },
				{ "piece_dt_floor_4x4_cross_tm", "Floor with Grate 4x4 Cross" },
				{ "piece_dt_floor_4x4_t_tm", "Floor with Grate 4x4 T" },
				{ "piece_dt_floor_4x4_enddouble_tm", "Floor with Grate 4x4 Double End" },
				{ "piece_dt_floor_4x4_end_tm", "Floor with Grate 4x4 End" },
				{ "piece_dt_floor_4x4_tm", "Floor 4x4" },
				{ "piece_dt_floor_4x1_tm", "Floor 4x1" },
				{ "piece_dt_floor_4x2_tm", "Floor 4x2" },
				{ "piece_dt_floor_2x2_tm", "Floor 2x2" },
				{ "piece_dt_pillar_a_1m_tm", "Pillar 1m" },
				{ "piece_dt_pillar_b_1m_tm", "Pillar 1m" },
				{ "piece_dt_pillar_c_1m_tm", "Pillar 1m" },
				{ "piece_dt_pillar_d_1m_tm", "Pillar 1m" },
				{ "piece_dt_pillar_e_1m_tm", "Pillar 1m" },
				{ "piece_dt_pillar_a_2m_tm", "Pillar 2m" },
				{ "piece_dt_pillar_b_2m_tm", "Pillar 2m" },
				{ "piece_dt_pillar_c_2m_tm", "Pillar 2m" },
				{ "piece_dt_pillar_d_2m_tm", "Pillar 2m" },
				{ "piece_dt_pillar_e_2m_tm", "Pillar 2m" },
				{ "piece_dt_pillar_a_4m_tm", "Pillar 4m" },
				{ "piece_dt_pillar_b_4m_tm", "Pillar 4m" },
				{ "piece_dt_pillar_c_4m_tm", "Pillar 4m" },
				{ "piece_dt_pillar_d_4m_tm", "Pillar 4m" },
				{ "piece_dt_pillar_e_4m_tm", "Pillar 4m" },
				{ "piece_dt_pillar_f_4m_tm", "Pillar 4m" },
				{ "piece_dt_pillar_g_4m_tm", "Pillar 4m" },
				{ "piece_dt_pillar_h_4m_tm", "Pillar 4m" },
				{ "piece_dt_pillar_i_4m_tm", "Pillar 4m" },
				{ "piece_dt_pillar_j_4m_tm", "Pillar 4m" },
				{ "piece_dt_pillar_k_4m_tm", "Pillar 4m" },
				{ "piece_dt_roof_cap_tm", "Arched Roof Cap" },
				{ "piece_dt_roofcross_4x4_tm", "Arched Roof Straight 4m" },
				{ "piece_dt_roofstraight_4x4_tm", "Arched Roof Cross 4m" },
				{ "piece_brazier_tm", "Brazier" },
				{ "piece_gate_tm", "Gate" },
				{ "piece_candle_tm", "Candle" },
				{ "piece_floor_ramp_4x4_tm", "Ramp 4x4x1" },
				{ "piece_potterygroup_a_tm", "Pottery Group" },
				{ "piece_potterygroup_b_tm", "Pottery Group" },
				{ "piece_potterygroup_c_tm", "Pottery Group" },
				{ "piece_potterygroup_d_tm", "Pottery Group" },
				{ "piece_potterygroup_e_tm", "Pottery Group" },
				{ "piece_templepillar_stackable_2m_tm", "Stackable Pillar 2m" },
				{ "piece_templepillar_single_4m_tm", "Capped Pillar 4m" },
				{ "piece_templepillar_single_2m_tm", "Capped Pillar 2m" },
				{ "piece_templepillar_seam_2m_tm", "Seam Pillar 2m" },
				{ "piece_templepillar_seam_4m_tm", "Seam Pillar 4m" },
				{ "piece_templeroof_cornerright_4m_tm", "62 Tiled Roof Corner Right 4m" },
				{ "piece_templeroof_cornerleft_4m_tm", "62 Tiled Roof Corner Left 4m" },
				{ "piece_templeroof_insidercorner_4m_tm", "62 Tiled Roof Inside Corner 4m" },
				{ "piece_templeroof_straight62_4m_tm", "62 Tiled Roof Straight 4m" },
				{ "piece_templeroof_corner62_4m_tm", "62 Tiled Roof Corner 4m" },
				{ "piece_templeroof_topstraight62_4m_tm", "62 Tiled Roof Top Straight 4m" },
				{ "piece_templeroof_topcorner62_4m_tm", "62 Tiled Roof Top Corner 4m" },
				{ "piece_templeroof_topend62_4m_tm", "62 Tiled Roof Top End 4m" },
				{ "piece_templerailing_center_4x1_tm", "Railing for Seam 4x1" },
				{ "piece_templerailing_edge_4x1_tm", "Railing for Edge 4x1" },
				{ "piece_templerailing_piller_1m_tm", "Railing Pillar 1m" },
				{ "piece_templewindow_4x4_tm", "Window 4x4" },
				{ "piece_templewall_8x4_tm", "Wall 8x4" },
				{ "piece_templewall_8x2_tm", "Wall 8x2" },
				{ "piece_templewall_4x4_tm", "Wall 4x4" },
				{ "piece_templewall_4x2_tm", "Wall 4x2" },
				{ "piece_templepillar_4m_tm", "Piller 4m" },
				{ "piece_templepillar_2m_tm", "Piller 2m" },
				{ "piece_templepillar_light_2m_tm", "Piller with Light 2m" },
				{ "piece_templearch_8x4_tm", "Archway 8x4" },
				{ "piece_templearch_4x2_tm", "Archway 4x2" },
				{ "piece_templegate_4x2_tm", "Gateway 4x2" },
				{ "piece_templegate_4x4_tm", "Gateway 4x4" },
				{ "piece_gardenwall_4x1_tm", "Garden Wall 4x1" },
				{ "piece_gardenpillar_1m_tm", "Garden Pillar 1m" },
				{ "piece_gardenpillar_light_1m_tm", "Garden Piller with Light 1m" },
				{ "piece_pedestal_tiny_tm", "Tiny Pedestal" },
				{ "piece_pedestal_small_tm", "Small Pedestal" },
				{ "piece_pedestal_medium_tm", "Medium Pedestal" },
				{ "piece_pedestal_large_tm", "Large Pedestal" },
				{ "piece_brazier_tiny_tm", "Brazier" },
				{ "piece_brazier_small_tm", "Brazier" },
				{ "piece_brazier_medium_tm", "Brazier" },
				{ "piece_brazier_large_tm", "Brazier" },
				{ "piece_brazier_flatland_tm", "Level Brazier 64m" },
				{ "piece_brazier_outerwall_angled_tm", "Wall Brazier" },
				{ "piece_brazier_outerwall_tm", "Wall Brazier" },
				{ "piece_brazier_wall_angled_tm", "Wall Brazier" },
				{ "piece_brazier_wall_tm", "Wall Brazier" },
				{ "piece_stairbase_4x2x1_tm", "Stairs Base 4x2x1" },
				{ "piece_foundation_4x4x1_tm", "Foundation 4x4x1" },
				{ "piece_foundationcurb_4x1_tm", "Foundation End Cap 4x1" },
				{ "piece_stairs_4x2_tm", "Stairs 4x2" },
				{ "piece_floor_tiled_4x4_tm", "Tiled Floor 4x4" },
				{ "piece_floor_tiled_4x2_tm", "Tiled Floor 4x2" },
				{ "piece_floor_stone_4x4_tm", "Stone Floor 4x4" },
				{ "piece_floor_stone_4x4x1_tm", "Stone Floor 4x4x1" },
				{ "piece_floor_stone_8x8x1_tm", "Stone Floor 8x8x1" },
				{ "piece_roof_tiled_4x4_tm", "Flat Tiled Roof 4x4" },
				{ "piece_roof_tiled_6x6_tm", "Flat Tiled Roof 6x6" },
				{ "piece_roof_tiled_8x8_tm", "Flat Tiled Roof 8x8" },
				{ "piece_roof_beam_8m_tm", "Roof Beam 8m" },
				{ "piece_roof_beam_6m_tm", "Roof Beam 6m" },
				{ "piece_roof_beam_4m_tm", "Roof Beam 4m" }
			});
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Localication: {arg}");
		}
	}

	public void LoadBundle()
	{
		try
		{
			constructionAssets = AssetUtils.LoadAssetBundleFromResources("construction_temple", Assembly.GetExecutingAssembly());
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while loading Bundle: {arg}");
		}
	}

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

	private void AddTranslationsFromJson()
	{
		try
		{
			LocalCK = LocalizationManager.Instance.GetLocalization();
			string[] files = Directory.GetFiles(Path.Combine(Paths.ConfigPath, "Horem/Construction Kit/Translations"), "*.json", SearchOption.AllDirectories);
			foreach (string text in files)
			{
				LocalCK.AddJsonFile(Path.GetFileNameWithoutExtension(text), AssetUtils.LoadText(text));
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Added Translation from: " + text));
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding translations from json files: {arg}");
		}
	}

	private void AddRecipesFromJson()
	{
		try
		{
			string[] files = Directory.GetFiles(Path.Combine(Paths.ConfigPath, "Horem/Construction Kit/Recipes"), "*.json", SearchOption.AllDirectories);
			foreach (string text in files)
			{
				ItemManager.Instance.AddRecipesFromJson(text);
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Added recipes from: " + text));
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding recipes from json files: {arg}");
		}
		finally
		{
			PrefabManager.OnPrefabsRegistered -= AddRecipesFromJson;
		}
	}

	public void AddPieces()
	{
		//IL_0042: Unknown result type (might be due to invalid IL or missing references)
		//IL_0049: Expected O, but got Unknown
		//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0101: Expected O, but got Unknown
		//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b9: Expected O, but got Unknown
		//IL_026a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0271: Expected O, but got Unknown
		//IL_0322: Unknown result type (might be due to invalid IL or missing references)
		//IL_0329: Expected O, but got Unknown
		//IL_03da: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e1: Expected O, but got Unknown
		//IL_0492: Unknown result type (might be due to invalid IL or missing references)
		//IL_0499: Expected O, but got Unknown
		//IL_054a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0551: Expected O, but got Unknown
		//IL_063e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0645: Expected O, but got Unknown
		//IL_061d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0624: Expected O, but got Unknown
		//IL_0733: Unknown result type (might be due to invalid IL or missing references)
		//IL_073a: Expected O, but got Unknown
		//IL_0712: Unknown result type (might be due to invalid IL or missing references)
		//IL_0719: Expected O, but got Unknown
		//IL_0828: Unknown result type (might be due to invalid IL or missing references)
		//IL_082f: Expected O, but got Unknown
		//IL_0807: Unknown result type (might be due to invalid IL or missing references)
		//IL_080e: Expected O, but got Unknown
		//IL_091d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0924: Expected O, but got Unknown
		//IL_08fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0903: Expected O, but got Unknown
		//IL_0a12: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a19: Expected O, but got Unknown
		//IL_09f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_09f8: Expected O, but got Unknown
		//IL_0b07: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b0e: Expected O, but got Unknown
		//IL_0ae6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0aed: Expected O, but got Unknown
		//IL_0bfc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c03: Expected O, but got Unknown
		//IL_0bdb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0be2: Expected O, but got Unknown
		//IL_0cf1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cf8: Expected O, but got Unknown
		//IL_0cd0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cd7: Expected O, but got Unknown
		//IL_0e83: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e8a: Expected O, but got Unknown
		//IL_0eae: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eb3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ebf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ec8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ed1: Expected O, but got Unknown
		//IL_0ed3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ed8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ee4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eed: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ef6: Expected O, but got Unknown
		//IL_0ef8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0efd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f09: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f11: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f1a: Expected O, but got Unknown
		//IL_0f1c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f21: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f2d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f3f: Expected O, but got Unknown
		//IL_0f47: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f4e: Expected O, but got Unknown
		//IL_0de6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ded: Expected O, but got Unknown
		//IL_0dc5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dcc: Expected O, but got Unknown
		//IL_0fa4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fab: Expected O, but got Unknown
		//IL_0fcf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fd4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fe0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fe9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ff2: Expected O, but got Unknown
		//IL_0ff4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ff9: Unknown result type (might be due to invalid IL or missing references)
		//IL_1005: Unknown result type (might be due to invalid IL or missing references)
		//IL_100e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1017: Expected O, but got Unknown
		//IL_1019: Unknown result type (might be due to invalid IL or missing references)
		//IL_101e: Unknown result type (might be due to invalid IL or missing references)
		//IL_102a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1032: Unknown result type (might be due to invalid IL or missing references)
		//IL_103b: Expected O, but got Unknown
		//IL_103d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1042: Unknown result type (might be due to invalid IL or missing references)
		//IL_104e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1056: Unknown result type (might be due to invalid IL or missing references)
		//IL_105f: Expected O, but got Unknown
		//IL_1067: Unknown result type (might be due to invalid IL or missing references)
		//IL_106e: Expected O, but got Unknown
		//IL_10c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_10cb: Expected O, but got Unknown
		//IL_10ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_10f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_1100: Unknown result type (might be due to invalid IL or missing references)
		//IL_1109: Unknown result type (might be due to invalid IL or missing references)
		//IL_1112: Expected O, but got Unknown
		//IL_1114: Unknown result type (might be due to invalid IL or missing references)
		//IL_1119: Unknown result type (might be due to invalid IL or missing references)
		//IL_1125: Unknown result type (might be due to invalid IL or missing references)
		//IL_112e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1137: Expected O, but got Unknown
		//IL_1139: Unknown result type (might be due to invalid IL or missing references)
		//IL_113e: Unknown result type (might be due to invalid IL or missing references)
		//IL_114a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1152: Unknown result type (might be due to invalid IL or missing references)
		//IL_115b: Expected O, but got Unknown
		//IL_115d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1162: Unknown result type (might be due to invalid IL or missing references)
		//IL_116e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1176: Unknown result type (might be due to invalid IL or missing references)
		//IL_117f: Expected O, but got Unknown
		//IL_1187: Unknown result type (might be due to invalid IL or missing references)
		//IL_118e: Expected O, but got Unknown
		//IL_11e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_11eb: Expected O, but got Unknown
		//IL_120f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1214: Unknown result type (might be due to invalid IL or missing references)
		//IL_1220: Unknown result type (might be due to invalid IL or missing references)
		//IL_1228: Unknown result type (might be due to invalid IL or missing references)
		//IL_1231: Expected O, but got Unknown
		//IL_1233: Unknown result type (might be due to invalid IL or missing references)
		//IL_1238: Unknown result type (might be due to invalid IL or missing references)
		//IL_1244: Unknown result type (might be due to invalid IL or missing references)
		//IL_124d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1256: Expected O, but got Unknown
		//IL_1258: Unknown result type (might be due to invalid IL or missing references)
		//IL_125d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1269: Unknown result type (might be due to invalid IL or missing references)
		//IL_1271: Unknown result type (might be due to invalid IL or missing references)
		//IL_127a: Expected O, but got Unknown
		//IL_127c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1281: Unknown result type (might be due to invalid IL or missing references)
		//IL_128d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1295: Unknown result type (might be due to invalid IL or missing references)
		//IL_129e: Expected O, but got Unknown
		//IL_12a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_12ad: Expected O, but got Unknown
		//IL_1306: Unknown result type (might be due to invalid IL or missing references)
		//IL_130d: Expected O, but got Unknown
		//IL_1331: Unknown result type (might be due to invalid IL or missing references)
		//IL_1336: Unknown result type (might be due to invalid IL or missing references)
		//IL_1342: Unknown result type (might be due to invalid IL or missing references)
		//IL_134a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1353: Expected O, but got Unknown
		//IL_1355: Unknown result type (might be due to invalid IL or missing references)
		//IL_135a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1366: Unknown result type (might be due to invalid IL or missing references)
		//IL_136f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1378: Expected O, but got Unknown
		//IL_1380: Unknown result type (might be due to invalid IL or missing references)
		//IL_1387: Expected O, but got Unknown
		//IL_13e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_13e7: Expected O, but got Unknown
		//IL_140b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1410: Unknown result type (might be due to invalid IL or missing references)
		//IL_141c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1424: Unknown result type (might be due to invalid IL or missing references)
		//IL_142d: Expected O, but got Unknown
		//IL_142f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1434: Unknown result type (might be due to invalid IL or missing references)
		//IL_1440: Unknown result type (might be due to invalid IL or missing references)
		//IL_1449: Unknown result type (might be due to invalid IL or missing references)
		//IL_1452: Expected O, but got Unknown
		//IL_145a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1461: Expected O, but got Unknown
		//IL_14ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_14c1: Expected O, but got Unknown
		//IL_14e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_14ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_14f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_14ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_1508: Expected O, but got Unknown
		//IL_150a: Unknown result type (might be due to invalid IL or missing references)
		//IL_150f: Unknown result type (might be due to invalid IL or missing references)
		//IL_151b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1524: Unknown result type (might be due to invalid IL or missing references)
		//IL_152d: Expected O, but got Unknown
		//IL_1535: Unknown result type (might be due to invalid IL or missing references)
		//IL_153c: Expected O, but got Unknown
		//IL_1595: Unknown result type (might be due to invalid IL or missing references)
		//IL_159c: Expected O, but got Unknown
		//IL_15c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_15c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_15d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_15da: Unknown result type (might be due to invalid IL or missing references)
		//IL_15e3: Expected O, but got Unknown
		//IL_15e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_15ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_15f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_15ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_1608: Expected O, but got Unknown
		//IL_1610: Unknown result type (might be due to invalid IL or missing references)
		//IL_1617: Expected O, but got Unknown
		//IL_1670: Unknown result type (might be due to invalid IL or missing references)
		//IL_1677: Expected O, but got Unknown
		//IL_169b: Unknown result type (might be due to invalid IL or missing references)
		//IL_16a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_16ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_16b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_16be: Expected O, but got Unknown
		//IL_16c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_16c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_16d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_16da: Unknown result type (might be due to invalid IL or missing references)
		//IL_16e3: Expected O, but got Unknown
		//IL_16e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_16ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_16f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_16ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_1708: Expected O, but got Unknown
		//IL_170a: Unknown result type (might be due to invalid IL or missing references)
		//IL_170f: Unknown result type (might be due to invalid IL or missing references)
		//IL_171b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1723: Unknown result type (might be due to invalid IL or missing references)
		//IL_172c: Expected O, but got Unknown
		//IL_1734: Unknown result type (might be due to invalid IL or missing references)
		//IL_173b: Expected O, but got Unknown
		try
		{
			string[] array = pieceDEWindowList;
			foreach (string text in array)
			{
				GameObject val = constructionAssets.LoadAsset<GameObject>(text);
				if ((Object)(object)val != (Object)null)
				{
					CustomPiece val2 = new CustomPiece(val, true, pieceDarkElfWindowRecipe);
					PieceManager.Instance.AddPiece(val2);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the Hammer Piecetable"));
				}
			}
			string[] array2 = pieceDELargeList;
			foreach (string text2 in array2)
			{
				GameObject val3 = constructionAssets.LoadAsset<GameObject>(text2);
				if ((Object)(object)val3 != (Object)null)
				{
					CustomPiece val4 = new CustomPiece(val3, true, pieceDarkElfLargeRecipe);
					PieceManager.Instance.AddPiece(val4);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text2 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text2 + " to the Hammer Piecetable"));
				}
			}
			string[] array3 = pieceDEMediumList;
			foreach (string text3 in array3)
			{
				GameObject val5 = constructionAssets.LoadAsset<GameObject>(text3);
				if ((Object)(object)val5 != (Object)null)
				{
					CustomPiece val6 = new CustomPiece(val5, true, pieceDarkElfMediumRecipe);
					PieceManager.Instance.AddPiece(val6);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text3 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text3 + " to the Hammer Piecetable"));
				}
			}
			string[] array4 = pieceDESmallList;
			foreach (string text4 in array4)
			{
				GameObject val7 = constructionAssets.LoadAsset<GameObject>(text4);
				if ((Object)(object)val7 != (Object)null)
				{
					CustomPiece val8 = new CustomPiece(val7, true, pieceDarkElfSmallRecipe);
					PieceManager.Instance.AddPiece(val8);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text4 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text4 + " to the Hammer Piecetable"));
				}
			}
			string[] array5 = pieceDEBeam1MList;
			foreach (string text5 in array5)
			{
				GameObject val9 = constructionAssets.LoadAsset<GameObject>(text5);
				if ((Object)(object)val9 != (Object)null)
				{
					CustomPiece val10 = new CustomPiece(val9, true, pieceDarkElfSmallRecipe);
					PieceManager.Instance.AddPiece(val10);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text5 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text5 + " to the Hammer Piecetable"));
				}
			}
			string[] array6 = pieceDEBeam3MList;
			foreach (string text6 in array6)
			{
				GameObject val11 = constructionAssets.LoadAsset<GameObject>(text6);
				if ((Object)(object)val11 != (Object)null)
				{
					CustomPiece val12 = new CustomPiece(val11, true, pieceDarkElfMediumRecipe);
					PieceManager.Instance.AddPiece(val12);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text6 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text6 + " to the Hammer Piecetable"));
				}
			}
			string[] array7 = pieceDEBeam2MList;
			foreach (string text7 in array7)
			{
				GameObject val13 = constructionAssets.LoadAsset<GameObject>(text7);
				if ((Object)(object)val13 != (Object)null)
				{
					CustomPiece val14 = new CustomPiece(val13, true, pieceDarkElfSmallRecipe);
					PieceManager.Instance.AddPiece(val14);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text7 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text7 + " to the Hammer Piecetable"));
				}
			}
			string[] array8 = pieceDEMediumRoofList;
			foreach (string text8 in array8)
			{
				GameObject val15 = constructionAssets.LoadAsset<GameObject>(text8);
				if ((Object)(object)val15 != (Object)null)
				{
					CustomPiece val16 = new CustomPiece(val15, true, pieceDarkElfMediumRoofRecipe);
					PieceManager.Instance.AddPiece(val16);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text8 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text8 + " to the Hammer Piecetable"));
				}
			}
			string[] array9 = pieceSmallList;
			foreach (string text9 in array9)
			{
				GameObject val17 = constructionAssets.LoadAsset<GameObject>(text9);
				if ((Object)(object)val17 != (Object)null)
				{
					if (((Object)val17).name.StartsWith("Piece_DT_"))
					{
						CustomPiece val18 = new CustomPiece(val17, true, pieceDungeonSmallRecipe);
						PieceManager.Instance.AddPiece(val18);
					}
					else
					{
						CustomPiece val19 = new CustomPiece(val17, true, pieceTempleSmallRecipe);
						PieceManager.Instance.AddPiece(val19);
					}
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text9 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text9 + " to the Hammer Piecetable"));
				}
			}
			string[] array10 = pieceMediumList;
			foreach (string text10 in array10)
			{
				GameObject val20 = constructionAssets.LoadAsset<GameObject>(text10);
				if ((Object)(object)val20 != (Object)null)
				{
					if (((Object)val20).name.StartsWith("Piece_DT_"))
					{
						CustomPiece val21 = new CustomPiece(val20, true, pieceDungeonMediumRecipe);
						PieceManager.Instance.AddPiece(val21);
					}
					else
					{
						CustomPiece val22 = new CustomPiece(val20, true, pieceTempleMediumRecipe);
						PieceManager.Instance.AddPiece(val22);
					}
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text10 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text10 + " to the Hammer Piecetable"));
				}
			}
			string[] array11 = pieceLargeList;
			foreach (string text11 in array11)
			{
				GameObject val23 = constructionAssets.LoadAsset<GameObject>(text11);
				if ((Object)(object)val23 != (Object)null)
				{
					if (((Object)val23).name.StartsWith("Piece_DT_"))
					{
						CustomPiece val24 = new CustomPiece(val23, true, pieceDungeonLargeRecipe);
						PieceManager.Instance.AddPiece(val24);
					}
					else
					{
						CustomPiece val25 = new CustomPiece(val23, true, pieceTempleLargeRecipe);
						PieceManager.Instance.AddPiece(val25);
					}
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text11 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text11 + " to the Hammer Piecetable"));
				}
			}
			string[] array12 = roofList;
			foreach (string text12 in array12)
			{
				GameObject val26 = constructionAssets.LoadAsset<GameObject>(text12);
				if ((Object)(object)val26 != (Object)null)
				{
					if (((Object)val26).name.StartsWith("Piece_DT_"))
					{
						CustomPiece val27 = new CustomPiece(val26, true, pieceDungeonRoofRecipe);
						PieceManager.Instance.AddPiece(val27);
					}
					else
					{
						CustomPiece val28 = new CustomPiece(val26, true, pieceTempleRoofRecipe);
						PieceManager.Instance.AddPiece(val28);
					}
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text12 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text12 + " to the Hammer Piecetable"));
				}
			}
			string[] array13 = roofGroupList;
			foreach (string text13 in array13)
			{
				GameObject val29 = constructionAssets.LoadAsset<GameObject>(text13);
				if ((Object)(object)val29 != (Object)null)
				{
					if (((Object)val29).name.StartsWith("Piece_DT_"))
					{
						CustomPiece val30 = new CustomPiece(val29, true, pieceDungeonRoofGroupRecipe);
						PieceManager.Instance.AddPiece(val30);
					}
					else
					{
						CustomPiece val31 = new CustomPiece(val29, true, pieceTempleRoofGroupRecipe);
						PieceManager.Instance.AddPiece(val31);
					}
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text13 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text13 + " to the Hammer Piecetable"));
				}
			}
			string[] array14 = beamList;
			foreach (string text14 in array14)
			{
				GameObject val32 = constructionAssets.LoadAsset<GameObject>(text14);
				if ((Object)(object)val32 != (Object)null)
				{
					if (((Object)val32).name.StartsWith("Piece_DT_"))
					{
						CustomPiece val33 = new CustomPiece(val32, true, pieceDungeonBeamRecipe);
						PieceManager.Instance.AddPiece(val33);
					}
					else
					{
						CustomPiece val34 = new CustomPiece(val32, true, pieceTempleBeamRecipe);
						PieceManager.Instance.AddPiece(val34);
					}
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text14 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text14 + " to the Hammer Piecetable"));
				}
			}
			string[] array15 = gateList;
			foreach (string text15 in array15)
			{
				GameObject val35 = constructionAssets.LoadAsset<GameObject>(text15);
				if ((Object)(object)val35 != (Object)null)
				{
					if (((Object)val35).name.StartsWith("Piece_DT_"))
					{
						CustomPiece val36 = new CustomPiece(val35, true, pieceDungeonGateRecipe);
						PieceManager.Instance.AddPiece(val36);
					}
					else
					{
						CustomPiece val37 = new CustomPiece(val35, true, pieceTempleGateRecipe);
						PieceManager.Instance.AddPiece(val37);
					}
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text15 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text15 + " to the Hammer Piecetable"));
				}
			}
			string[] array16 = grateList;
			foreach (string text16 in array16)
			{
				GameObject val38 = constructionAssets.LoadAsset<GameObject>(text16);
				if ((Object)(object)val38 != (Object)null)
				{
					if (((Object)val38).name.StartsWith("Piece_DT_"))
					{
						CustomPiece val39 = new CustomPiece(val38, true, pieceDungeonGrateFloorRecipe);
						PieceManager.Instance.AddPiece(val39);
					}
					else
					{
						CustomPiece val40 = new CustomPiece(val38, true, pieceTempleGrateFloorRecipe);
						PieceManager.Instance.AddPiece(val40);
					}
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text16 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text16 + " to the Hammer Piecetable"));
				}
			}
			string[] array17 = windowList;
			foreach (string text17 in array17)
			{
				GameObject val41 = constructionAssets.LoadAsset<GameObject>(text17);
				if ((Object)(object)val41 != (Object)null)
				{
					if (((Object)val41).name.StartsWith("Piece_DT_"))
					{
						CustomPiece val42 = new CustomPiece(val41, true, pieceDungeonWindowRecipe);
						PieceManager.Instance.AddPiece(val42);
					}
					else
					{
						CustomPiece val43 = new CustomPiece(val41, true, pieceTempleWindowRecipe);
						PieceManager.Instance.AddPiece(val43);
					}
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text17 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text17 + " to the Hammer Piecetable"));
				}
			}
			GameObject val44 = constructionAssets.LoadAsset<GameObject>("Piece_TD_Brazier_Large_TM");
			if ((Object)(object)val44 != (Object)null)
			{
				PieceConfig val45 = new PieceConfig();
				val45.PieceTable = "_HammerPieceTable";
				val45.Category = "Temple";
				val45.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
				{
					new RequirementConfig
					{
						Item = "Stone",
						Amount = 20,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Coal",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Mortar_TM",
						Amount = 1,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Iron",
						Amount = 10,
						Recover = true
					}
				};
				CustomPiece val46 = new CustomPiece(val44, true, val45);
				PieceManager.Instance.AddPiece(val46);
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"Added: Piece_TD_Brazier_Large_TM to the Hammer Piecetable");
				}
			}
			GameObject val47 = constructionAssets.LoadAsset<GameObject>("Piece_TD_Brazier_Medium_TM");
			if ((Object)(object)val47 != (Object)null)
			{
				PieceConfig val45 = new PieceConfig();
				val45.PieceTable = "_HammerPieceTable";
				val45.Category = "Temple";
				val45.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
				{
					new RequirementConfig
					{
						Item = "Stone",
						Amount = 15,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Coal",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Mortar_TM",
						Amount = 1,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Iron",
						Amount = 8,
						Recover = true
					}
				};
				CustomPiece val48 = new CustomPiece(val47, true, val45);
				PieceManager.Instance.AddPiece(val48);
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"Added: Piece_TD_Brazier_Medium_TM to the Hammer Piecetable");
				}
			}
			GameObject val49 = constructionAssets.LoadAsset<GameObject>("Piece_TD_Brazier_Small_TM");
			if ((Object)(object)val49 != (Object)null)
			{
				PieceConfig val45 = new PieceConfig();
				val45.PieceTable = "_HammerPieceTable";
				val45.Category = "Temple";
				val45.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
				{
					new RequirementConfig
					{
						Item = "Stone",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Coal",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Mortar_TM",
						Amount = 1,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Iron",
						Amount = 6,
						Recover = true
					}
				};
				CustomPiece val50 = new CustomPiece(val49, true, val45);
				PieceManager.Instance.AddPiece(val50);
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"Added: Piece_TD_Brazier_Small_TM to the Hammer Piecetable");
				}
			}
			GameObject val51 = constructionAssets.LoadAsset<GameObject>("Piece_TD_Brazier_Tiny_TM");
			if ((Object)(object)val51 != (Object)null)
			{
				PieceConfig val45 = new PieceConfig();
				val45.PieceTable = "_HammerPieceTable";
				val45.Category = "Temple";
				val45.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
				{
					new RequirementConfig
					{
						Item = "Stone",
						Amount = 5,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Coal",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Mortar_TM",
						Amount = 1,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Iron",
						Amount = 4,
						Recover = true
					}
				};
				CustomPiece val52 = new CustomPiece(val51, true, val45);
				PieceManager.Instance.AddPiece(val52);
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"Added: Piece_TD_Brazier_Tiny_TM to the Hammer Piecetable");
				}
			}
			GameObject val53 = constructionAssets.LoadAsset<GameObject>("Piece_TD_BrazierTorch_Angled_TM");
			if ((Object)(object)val53 != (Object)null)
			{
				PieceConfig val45 = new PieceConfig();
				val45.PieceTable = "_HammerPieceTable";
				val45.Category = "Temple";
				val45.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
				{
					new RequirementConfig
					{
						Item = "Coal",
						Amount = 8,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Iron",
						Amount = 15,
						Recover = true
					}
				};
				CustomPiece val54 = new CustomPiece(val53, true, val45);
				PieceManager.Instance.AddPiece(val54);
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"Added: Piece_TD_BrazierTorch_Angled_TM to the Hammer Piecetable");
				}
			}
			GameObject val55 = constructionAssets.LoadAsset<GameObject>("Piece_TD_BrazierTorch_TM");
			if ((Object)(object)val55 != (Object)null)
			{
				PieceConfig val45 = new PieceConfig();
				val45.PieceTable = "_HammerPieceTable";
				val45.Category = "Temple";
				val45.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
				{
					new RequirementConfig
					{
						Item = "Coal",
						Amount = 8,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Iron",
						Amount = 15,
						Recover = true
					}
				};
				CustomPiece val56 = new CustomPiece(val55, true, val45);
				PieceManager.Instance.AddPiece(val56);
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"Added: Piece_TD_BrazierTorch_TM to the Hammer Piecetable");
				}
			}
			GameObject val57 = constructionAssets.LoadAsset<GameObject>("Piece_TD_BrazierTorch_Outside_Angled_TM");
			if ((Object)(object)val57 != (Object)null)
			{
				PieceConfig val45 = new PieceConfig();
				val45.PieceTable = "_HammerPieceTable";
				val45.Category = "Temple";
				val45.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
				{
					new RequirementConfig
					{
						Item = "Coal",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Iron",
						Amount = 25,
						Recover = true
					}
				};
				CustomPiece val58 = new CustomPiece(val57, true, val45);
				PieceManager.Instance.AddPiece(val58);
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"Added: Piece_TD_BrazierTorch_Outside_Angled_TM to the Hammer Piecetable");
				}
			}
			GameObject val59 = constructionAssets.LoadAsset<GameObject>("Piece_TD_BrazierTorch_Outside_TM");
			if ((Object)(object)val59 != (Object)null)
			{
				PieceConfig val45 = new PieceConfig();
				val45.PieceTable = "_HammerPieceTable";
				val45.Category = "Temple";
				val45.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
				{
					new RequirementConfig
					{
						Item = "Coal",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Iron",
						Amount = 25,
						Recover = true
					}
				};
				CustomPiece val60 = new CustomPiece(val59, true, val45);
				PieceManager.Instance.AddPiece(val60);
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"Added: Piece_TD_BrazierTorch_Outside_TM to the Hammer Piecetable");
				}
			}
			GameObject val61 = constructionAssets.LoadAsset<GameObject>("Piece_TD_Brazier_FlatLand_TM");
			if ((Object)(object)val61 != (Object)null)
			{
				PieceConfig val45 = new PieceConfig();
				val45.PieceTable = "_HammerPieceTable";
				val45.Category = "Temple";
				val45.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
				{
					new RequirementConfig
					{
						Item = "Stone",
						Amount = 40,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Coal",
						Amount = 20,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Iron",
						Amount = 20,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Wishbone",
						Amount = 1,
						Recover = true
					}
				};
				CustomPiece val62 = new CustomPiece(val61, true, val45);
				PieceManager.Instance.AddPiece(val62);
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"Added: Piece_TD_Brazier_FlatLand_TM to the Hammer Piecetable");
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Pieces: {arg}");
		}
	}

	public void AddTempleDungeonProps()
	{
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_003a: Expected O, but got Unknown
		//IL_00df: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e6: Expected O, but got Unknown
		try
		{
			string[] array = dungeonPropList;
			foreach (string text in array)
			{
				GameObject val = constructionAssets.LoadAsset<GameObject>(text);
				if ((Object)(object)val != (Object)null)
				{
					CustomPrefab val2 = new CustomPrefab(val, true);
					PrefabManager.Instance.AddPrefab(val2);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the Prefab database"));
				}
			}
			string[] array2 = dungeonDoorList;
			foreach (string text2 in array2)
			{
				GameObject val3 = constructionAssets.LoadAsset<GameObject>(text2);
				if ((Object)(object)val3 != (Object)null)
				{
					CustomPrefab val4 = new CustomPrefab(val3, true);
					PrefabManager.Instance.AddPrefab(val4);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text2 + " to the Prefab database"));
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text2 + " to the Prefab database"));
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Pieces: {arg}");
		}
	}

	public constructionBundle()
	{
		//IL_0b57: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b5d: Expected O, but got Unknown
		//IL_0b7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b83: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b8f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b98: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ba1: Expected O, but got Unknown
		//IL_0ba3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ba8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bb4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bbc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bc5: Expected O, but got Unknown
		//IL_0bc7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bcc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0be0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0be9: Expected O, but got Unknown
		//IL_0beb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bf0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bfc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c04: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c0d: Expected O, but got Unknown
		//IL_0c1a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c20: Expected O, but got Unknown
		//IL_0c41: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c46: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c52: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c5a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c63: Expected O, but got Unknown
		//IL_0c65: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c6a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c76: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c87: Expected O, but got Unknown
		//IL_0c89: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c8e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c9a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cab: Expected O, but got Unknown
		//IL_0cb8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cbe: Expected O, but got Unknown
		//IL_0cdf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ce4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cf0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cf8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d01: Expected O, but got Unknown
		//IL_0d03: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d08: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d14: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d1c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d25: Expected O, but got Unknown
		//IL_0d27: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d2c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d38: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d40: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d49: Expected O, but got Unknown
		//IL_0d56: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d5c: Expected O, but got Unknown
		//IL_0d7d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d82: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d8e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d97: Unknown result type (might be due to invalid IL or missing references)
		//IL_0da0: Expected O, but got Unknown
		//IL_0da2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0da7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0db3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dbb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dc4: Expected O, but got Unknown
		//IL_0dc6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dcb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dd7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ddf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0de8: Expected O, but got Unknown
		//IL_0df5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dfb: Expected O, but got Unknown
		//IL_0e1c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e21: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e2d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e3f: Expected O, but got Unknown
		//IL_0e41: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e46: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e52: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e5a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e63: Expected O, but got Unknown
		//IL_0e65: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e6a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e76: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e87: Expected O, but got Unknown
		//IL_0e94: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e9a: Expected O, but got Unknown
		//IL_0ebb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ec0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ecc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ed4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0edd: Expected O, but got Unknown
		//IL_0edf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ee4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ef0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ef8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f01: Expected O, but got Unknown
		//IL_0f03: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f08: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f14: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f1c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f25: Expected O, but got Unknown
		//IL_0f32: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f38: Expected O, but got Unknown
		//IL_0f59: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f5e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f6a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f73: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f7c: Expected O, but got Unknown
		//IL_0f7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f83: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f8f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f97: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fa0: Expected O, but got Unknown
		//IL_0fa2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fa7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fb3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fbb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fc4: Expected O, but got Unknown
		//IL_0fd1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fd7: Expected O, but got Unknown
		//IL_0ff8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ffd: Unknown result type (might be due to invalid IL or missing references)
		//IL_1009: Unknown result type (might be due to invalid IL or missing references)
		//IL_1011: Unknown result type (might be due to invalid IL or missing references)
		//IL_101a: Expected O, but got Unknown
		//IL_101c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1021: Unknown result type (might be due to invalid IL or missing references)
		//IL_102d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1035: Unknown result type (might be due to invalid IL or missing references)
		//IL_103e: Expected O, but got Unknown
		//IL_1040: Unknown result type (might be due to invalid IL or missing references)
		//IL_1045: Unknown result type (might be due to invalid IL or missing references)
		//IL_1051: Unknown result type (might be due to invalid IL or missing references)
		//IL_1059: Unknown result type (might be due to invalid IL or missing references)
		//IL_1062: Expected O, but got Unknown
		//IL_106f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1075: Expected O, but got Unknown
		//IL_1096: Unknown result type (might be due to invalid IL or missing references)
		//IL_109b: Unknown result type (might be due to invalid IL or missing references)
		//IL_10a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_10b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_10b9: Expected O, but got Unknown
		//IL_10bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_10c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_10cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_10d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_10dd: Expected O, but got Unknown
		//IL_10df: Unknown result type (might be due to invalid IL or missing references)
		//IL_10e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_10f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_10f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_1101: Expected O, but got Unknown
		//IL_110e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1114: Expected O, but got Unknown
		//IL_1135: Unknown result type (might be due to invalid IL or missing references)
		//IL_113a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1146: Unknown result type (might be due to invalid IL or missing references)
		//IL_114f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1158: Expected O, but got Unknown
		//IL_115a: Unknown result type (might be due to invalid IL or missing references)
		//IL_115f: Unknown result type (might be due to invalid IL or missing references)
		//IL_116b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1173: Unknown result type (might be due to invalid IL or missing references)
		//IL_117c: Expected O, but got Unknown
		//IL_117e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1183: Unknown result type (might be due to invalid IL or missing references)
		//IL_118f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1197: Unknown result type (might be due to invalid IL or missing references)
		//IL_11a0: Expected O, but got Unknown
		//IL_11ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_11b3: Expected O, but got Unknown
		//IL_11d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_11d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_11e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_11ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_11f7: Expected O, but got Unknown
		//IL_11f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_11fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_120a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1213: Unknown result type (might be due to invalid IL or missing references)
		//IL_121c: Expected O, but got Unknown
		//IL_121e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1223: Unknown result type (might be due to invalid IL or missing references)
		//IL_122f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1238: Unknown result type (might be due to invalid IL or missing references)
		//IL_1241: Expected O, but got Unknown
		//IL_1243: Unknown result type (might be due to invalid IL or missing references)
		//IL_1248: Unknown result type (might be due to invalid IL or missing references)
		//IL_1254: Unknown result type (might be due to invalid IL or missing references)
		//IL_125c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1265: Expected O, but got Unknown
		//IL_1272: Unknown result type (might be due to invalid IL or missing references)
		//IL_1278: Expected O, but got Unknown
		//IL_1299: Unknown result type (might be due to invalid IL or missing references)
		//IL_129e: Unknown result type (might be due to invalid IL or missing references)
		//IL_12aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_12b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_12bc: Expected O, but got Unknown
		//IL_12be: Unknown result type (might be due to invalid IL or missing references)
		//IL_12c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_12cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_12d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_12e0: Expected O, but got Unknown
		//IL_12e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_12e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_12f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_12fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_1304: Expected O, but got Unknown
		//IL_1311: Unknown result type (might be due to invalid IL or missing references)
		//IL_1317: Expected O, but got Unknown
		//IL_1338: Unknown result type (might be due to invalid IL or missing references)
		//IL_133d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1349: Unknown result type (might be due to invalid IL or missing references)
		//IL_1351: Unknown result type (might be due to invalid IL or missing references)
		//IL_135a: Expected O, but got Unknown
		//IL_135c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1361: Unknown result type (might be due to invalid IL or missing references)
		//IL_136d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1375: Unknown result type (might be due to invalid IL or missing references)
		//IL_137e: Expected O, but got Unknown
		//IL_1380: Unknown result type (might be due to invalid IL or missing references)
		//IL_1385: Unknown result type (might be due to invalid IL or missing references)
		//IL_1391: Unknown result type (might be due to invalid IL or missing references)
		//IL_1399: Unknown result type (might be due to invalid IL or missing references)
		//IL_13a2: Expected O, but got Unknown
		//IL_13af: Unknown result type (might be due to invalid IL or missing references)
		//IL_13b5: Expected O, but got Unknown
		//IL_13d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_13db: Unknown result type (might be due to invalid IL or missing references)
		//IL_13e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_13f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_13f9: Expected O, but got Unknown
		//IL_13fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_1400: Unknown result type (might be due to invalid IL or missing references)
		//IL_140c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1415: Unknown result type (might be due to invalid IL or missing references)
		//IL_141e: Expected O, but got Unknown
		//IL_1420: Unknown result type (might be due to invalid IL or missing references)
		//IL_1425: Unknown result type (might be due to invalid IL or missing references)
		//IL_1431: Unknown result type (might be due to invalid IL or missing references)
		//IL_1439: Unknown result type (might be due to invalid IL or missing references)
		//IL_1442: Expected O, but got Unknown
		//IL_144f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1455: Expected O, but got Unknown
		//IL_1476: Unknown result type (might be due to invalid IL or missing references)
		//IL_147b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1487: Unknown result type (might be due to invalid IL or missing references)
		//IL_1490: Unknown result type (might be due to invalid IL or missing references)
		//IL_1499: Expected O, but got Unknown
		//IL_149b: Unknown result type (might be due to invalid IL or missing references)
		//IL_14a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_14ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_14b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_14be: Expected O, but got Unknown
		//IL_14c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_14c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_14d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_14d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_14e2: Expected O, but got Unknown
		//IL_14ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_14f5: Expected O, but got Unknown
		//IL_1516: Unknown result type (might be due to invalid IL or missing references)
		//IL_151b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1527: Unknown result type (might be due to invalid IL or missing references)
		//IL_1530: Unknown result type (might be due to invalid IL or missing references)
		//IL_1539: Expected O, but got Unknown
		//IL_153b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1540: Unknown result type (might be due to invalid IL or missing references)
		//IL_154c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1554: Unknown result type (might be due to invalid IL or missing references)
		//IL_155d: Expected O, but got Unknown
		//IL_155f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1564: Unknown result type (might be due to invalid IL or missing references)
		//IL_1570: Unknown result type (might be due to invalid IL or missing references)
		//IL_1578: Unknown result type (might be due to invalid IL or missing references)
		//IL_1581: Expected O, but got Unknown
		//IL_158e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1594: Expected O, but got Unknown
		//IL_15b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_15ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_15c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_15cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_15d8: Expected O, but got Unknown
		//IL_15da: Unknown result type (might be due to invalid IL or missing references)
		//IL_15df: Unknown result type (might be due to invalid IL or missing references)
		//IL_15eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_15f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_15fc: Expected O, but got Unknown
		//IL_15fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_1603: Unknown result type (might be due to invalid IL or missing references)
		//IL_160f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1617: Unknown result type (might be due to invalid IL or missing references)
		//IL_1620: Expected O, but got Unknown
		//IL_162d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1633: Expected O, but got Unknown
		//IL_1654: Unknown result type (might be due to invalid IL or missing references)
		//IL_1659: Unknown result type (might be due to invalid IL or missing references)
		//IL_1665: Unknown result type (might be due to invalid IL or missing references)
		//IL_166d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1676: Expected O, but got Unknown
		//IL_1678: Unknown result type (might be due to invalid IL or missing references)
		//IL_167d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1689: Unknown result type (might be due to invalid IL or missing references)
		//IL_1691: Unknown result type (might be due to invalid IL or missing references)
		//IL_169a: Expected O, but got Unknown
		//IL_169c: Unknown result type (might be due to invalid IL or missing references)
		//IL_16a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_16ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_16b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_16be: Expected O, but got Unknown
		//IL_16cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_16d1: Expected O, but got Unknown
		//IL_16f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_16f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_1703: Unknown result type (might be due to invalid IL or missing references)
		//IL_170c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1715: Expected O, but got Unknown
		//IL_1717: Unknown result type (might be due to invalid IL or missing references)
		//IL_171c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1728: Unknown result type (might be due to invalid IL or missing references)
		//IL_1730: Unknown result type (might be due to invalid IL or missing references)
		//IL_1739: Expected O, but got Unknown
		//IL_173b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1740: Unknown result type (might be due to invalid IL or missing references)
		//IL_174c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1754: Unknown result type (might be due to invalid IL or missing references)
		//IL_175d: Expected O, but got Unknown
		//IL_176a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1770: Expected O, but got Unknown
		//IL_1791: Unknown result type (might be due to invalid IL or missing references)
		//IL_1796: Unknown result type (might be due to invalid IL or missing references)
		//IL_17a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_17ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_17b4: Expected O, but got Unknown
		//IL_17b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_17bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_17c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_17cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_17d8: Expected O, but got Unknown
		//IL_17da: Unknown result type (might be due to invalid IL or missing references)
		//IL_17df: Unknown result type (might be due to invalid IL or missing references)
		//IL_17eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_17f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_17fc: Expected O, but got Unknown
		//IL_1809: Unknown result type (might be due to invalid IL or missing references)
		//IL_180f: Expected O, but got Unknown
		//IL_1830: Unknown result type (might be due to invalid IL or missing references)
		//IL_1835: Unknown result type (might be due to invalid IL or missing references)
		//IL_1841: Unknown result type (might be due to invalid IL or missing references)
		//IL_184a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1853: Expected O, but got Unknown
		//IL_1855: Unknown result type (might be due to invalid IL or missing references)
		//IL_185a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1866: Unknown result type (might be due to invalid IL or missing references)
		//IL_186f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1878: Expected O, but got Unknown
		//IL_187a: Unknown result type (might be due to invalid IL or missing references)
		//IL_187f: Unknown result type (might be due to invalid IL or missing references)
		//IL_188b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1894: Unknown result type (might be due to invalid IL or missing references)
		//IL_189d: Expected O, but got Unknown
		//IL_189f: Unknown result type (might be due to invalid IL or missing references)
		//IL_18a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_18b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_18b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_18c1: Expected O, but got Unknown
		//IL_18ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_18d4: Expected O, but got Unknown
		//IL_18f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_18fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_1906: Unknown result type (might be due to invalid IL or missing references)
		//IL_190f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1918: Expected O, but got Unknown
		//IL_191a: Unknown result type (might be due to invalid IL or missing references)
		//IL_191f: Unknown result type (might be due to invalid IL or missing references)
		//IL_192b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1933: Unknown result type (might be due to invalid IL or missing references)
		//IL_193c: Expected O, but got Unknown
		//IL_193e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1943: Unknown result type (might be due to invalid IL or missing references)
		//IL_194f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1957: Unknown result type (might be due to invalid IL or missing references)
		//IL_1960: Expected O, but got Unknown
		//IL_196d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1973: Expected O, but got Unknown
		//IL_1994: Unknown result type (might be due to invalid IL or missing references)
		//IL_1999: Unknown result type (might be due to invalid IL or missing references)
		//IL_19a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_19ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_19b6: Expected O, but got Unknown
		//IL_19b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_19bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_19c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_19d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_19da: Expected O, but got Unknown
		//IL_19dc: Unknown result type (might b