Decompiled source of MissingPieces v2.2.0

Plugins/MissingPieces.dll

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

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("MissingPieces")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MissingPieces")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("2.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("2.1.0.0")]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

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

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

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
public class CustomInteract : MonoBehaviour, Hoverable, Interactable
{
	public string Name = "";

	public string DefaultInteract = "";

	public string AlternateInteract = "";

	public Container Container;

	public Sign Sign;

	public void Awake()
	{
		if ((Object)(object)Container == (Object)null)
		{
			Container = ((Component)this).GetComponent<Container>();
		}
		if ((Object)(object)Sign == (Object)null)
		{
			Sign = ((Component)this).GetComponent<Sign>();
		}
	}

	public bool Interact(Humanoid user, bool hold, bool alt)
	{
		if (alt)
		{
			return Sign.Interact(user, hold, alt);
		}
		return Container.Interact(user, hold, alt);
	}

	public string GetHoverText()
	{
		return Localization.instance.Localize(Name + "\n[<color=yellow><b>$KEY_Use</b></color>] " + DefaultInteract + "\n[<color=yellow><b>Shift $KEY_Use</b></color>] " + AlternateInteract);
	}

	public string GetHoverName()
	{
		return Localization.instance.Localize(Name);
	}

	public bool UseItem(Humanoid user, ItemData item)
	{
		return false;
	}
}
namespace MissingPieces
{
	[BepInPlugin("com.Bento.MissingPieces", "MissingPieces", "2.2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
	internal class MissingPiecesPlugin : BaseUnityPlugin
	{
		public const string PluginGUID = "com.Bento.MissingPieces";

		public const string PluginName = "MissingPieces";

		public const string PluginVersion = "2.2.0";

		public static CustomLocalization Localization = LocalizationManager.Instance.GetLocalization();

		private static string Hammer = "Hammer";

		private static string Workbench = "piece_workbench";

		private static string Stonecutter = "piece_stonecutter";

		private static string CategoryBuildingWorkbench = "BuildingWorkbench";

		private static string CategoryBuildingStonecutter = "BuildingStonecutter";

		public void Awake()
		{
			AddMissingPieces();
			string text = AssetUtils.LoadTextFromResources("Localization.Chinese.json", Assembly.GetExecutingAssembly());
			Localization.AddJsonFile("Chinese", text);
			Localization.AddJsonFile("Chinese_Trad", text);
			text = AssetUtils.LoadTextFromResources("Localization.English.json", Assembly.GetExecutingAssembly());
			Localization.AddJsonFile("English", text);
			text = AssetUtils.LoadTextFromResources("Localization.French.json", Assembly.GetExecutingAssembly());
			Localization.AddJsonFile("French", text);
			text = AssetUtils.LoadTextFromResources("Localization.German.json", Assembly.GetExecutingAssembly());
			Localization.AddJsonFile("German", text);
			text = AssetUtils.LoadTextFromResources("Localization.Polish.json", Assembly.GetExecutingAssembly());
			Localization.AddJsonFile("Polish", text);
			text = AssetUtils.LoadTextFromResources("Localization.Korean.json", Assembly.GetExecutingAssembly());
			Localization.AddJsonFile("Korean", text);
			text = AssetUtils.LoadTextFromResources("Localization.Russian.json", Assembly.GetExecutingAssembly());
			Localization.AddJsonFile("Russian", text);
			Logger.LogInfo((object)"Missing Pieces landed!");
		}

		private void AddMissingPieces()
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Expected O, but got Unknown
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Expected O, but got Unknown
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: Expected O, but got Unknown
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Expected O, but got Unknown
			//IL_0101: Unknown result type (might be due to invalid IL or missing references)
			//IL_0106: Unknown result type (might be due to invalid IL or missing references)
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			//IL_0120: Expected O, but got Unknown
			//IL_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0138: Expected O, but got Unknown
			//IL_0146: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Expected O, but got Unknown
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Expected O, but got Unknown
			//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d3: Expected O, but got Unknown
			//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e8: Expected O, but got Unknown
			//IL_0236: Unknown result type (might be due to invalid IL or missing references)
			//IL_023b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0246: Unknown result type (might be due to invalid IL or missing references)
			//IL_024d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0255: Expected O, but got Unknown
			//IL_0264: Unknown result type (might be due to invalid IL or missing references)
			//IL_026e: Expected O, but got Unknown
			//IL_027c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0283: Expected O, but got Unknown
			//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f0: Expected O, but got Unknown
			//IL_02ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0309: Expected O, but got Unknown
			//IL_0317: Unknown result type (might be due to invalid IL or missing references)
			//IL_031e: Expected O, but got Unknown
			//IL_036c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0371: Unknown result type (might be due to invalid IL or missing references)
			//IL_037c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0383: Unknown result type (might be due to invalid IL or missing references)
			//IL_038b: Expected O, but got Unknown
			//IL_039a: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a4: Expected O, but got Unknown
			//IL_03b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b9: Expected O, but got Unknown
			//IL_0407: Unknown result type (might be due to invalid IL or missing references)
			//IL_040c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0417: Unknown result type (might be due to invalid IL or missing references)
			//IL_041e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0426: Expected O, but got Unknown
			//IL_0435: Unknown result type (might be due to invalid IL or missing references)
			//IL_043f: Expected O, but got Unknown
			//IL_044d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0454: Expected O, but got Unknown
			//IL_04a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c1: Expected O, but got Unknown
			//IL_04d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04da: Expected O, but got Unknown
			//IL_04e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ef: Expected O, but got Unknown
			//IL_053d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0542: Unknown result type (might be due to invalid IL or missing references)
			//IL_054d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0554: Unknown result type (might be due to invalid IL or missing references)
			//IL_055c: Expected O, but got Unknown
			//IL_056b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0575: Expected O, but got Unknown
			//IL_0583: Unknown result type (might be due to invalid IL or missing references)
			//IL_058a: Expected O, but got Unknown
			//IL_05d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f7: Expected O, but got Unknown
			//IL_0606: Unknown result type (might be due to invalid IL or missing references)
			//IL_0610: Expected O, but got Unknown
			//IL_061e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0625: Expected O, but got Unknown
			//IL_0673: Unknown result type (might be due to invalid IL or missing references)
			//IL_0678: Unknown result type (might be due to invalid IL or missing references)
			//IL_0683: Unknown result type (might be due to invalid IL or missing references)
			//IL_068a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0692: Expected O, but got Unknown
			//IL_06a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ab: Expected O, but got Unknown
			//IL_06b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c0: Expected O, but got Unknown
			//IL_070e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0713: Unknown result type (might be due to invalid IL or missing references)
			//IL_071e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0725: Unknown result type (might be due to invalid IL or missing references)
			//IL_072d: Expected O, but got Unknown
			//IL_073c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0746: Expected O, but got Unknown
			//IL_0754: Unknown result type (might be due to invalid IL or missing references)
			//IL_075b: Expected O, but got Unknown
			//IL_07a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c8: Expected O, but got Unknown
			//IL_07d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e1: Expected O, but got Unknown
			//IL_07ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f6: Expected O, but got Unknown
			//IL_0844: Unknown result type (might be due to invalid IL or missing references)
			//IL_0849: Unknown result type (might be due to invalid IL or missing references)
			//IL_0854: Unknown result type (might be due to invalid IL or missing references)
			//IL_085b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0863: Expected O, but got Unknown
			//IL_0872: Unknown result type (might be due to invalid IL or missing references)
			//IL_087c: Expected O, but got Unknown
			//IL_088a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0891: Expected O, but got Unknown
			//IL_08df: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fe: Expected O, but got Unknown
			//IL_090d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0917: Expected O, but got Unknown
			//IL_0925: Unknown result type (might be due to invalid IL or missing references)
			//IL_092c: Expected O, but got Unknown
			//IL_097a: Unknown result type (might be due to invalid IL or missing references)
			//IL_097f: Unknown result type (might be due to invalid IL or missing references)
			//IL_098a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0991: Unknown result type (might be due to invalid IL or missing references)
			//IL_0999: Expected O, but got Unknown
			//IL_099b: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ba: Expected O, but got Unknown
			//IL_09c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d3: Expected O, but got Unknown
			//IL_09e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e8: Expected O, but got Unknown
			//IL_0a36: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a3b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a46: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a4d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a55: Expected O, but got Unknown
			//IL_0a57: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a67: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a6e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a76: Expected O, but got Unknown
			//IL_0a85: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a8f: Expected O, but got Unknown
			//IL_0a9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa4: Expected O, but got Unknown
			//IL_0af2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b02: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b09: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b11: Expected O, but got Unknown
			//IL_0b13: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b18: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b23: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b32: Expected O, but got Unknown
			//IL_0b41: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4b: Expected O, but got Unknown
			//IL_0b59: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b60: Expected O, but got Unknown
			//IL_0bae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bbe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bcd: Expected O, but got Unknown
			//IL_0bcf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bdf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bee: Expected O, but got Unknown
			//IL_0bfd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c07: Expected O, but got Unknown
			//IL_0c15: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c1c: Expected O, but got Unknown
			//IL_0c6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c6f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c81: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c89: Expected O, but got Unknown
			//IL_0c8b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c9b: 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_0caa: Expected O, but got Unknown
			//IL_0cb9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cc3: Expected O, but got Unknown
			//IL_0cd1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cd8: Expected O, but got Unknown
			//IL_0d26: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d2b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d36: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d3e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d46: Expected O, but got Unknown
			//IL_0d48: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d4d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d58: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d67: Expected O, but got Unknown
			//IL_0d69: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d6e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d79: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d80: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d88: Expected O, but got Unknown
			//IL_0d97: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da1: Expected O, but got Unknown
			AssetBundle val = AssetUtils.LoadAssetBundleFromResources("missing_pieces", Assembly.GetExecutingAssembly());
			GameObject val2 = val.LoadAsset<GameObject>("wood_wall_half_upper");
			PieceConfig val3 = new PieceConfig();
			val3.Name = "$piece_woodwallhalfupper";
			val3.Description = "$piece_woodwallhalfupper_description";
			val3.PieceTable = Hammer;
			val3.Category = CategoryBuildingWorkbench;
			val3.CraftingStation = Workbench;
			val3.AllowedInDungeons = false;
			val3.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val2, true, val3));
			GameObject val4 = val.LoadAsset<GameObject>("wood_wall_quarter_upper");
			PieceConfig val5 = new PieceConfig();
			val5.Name = "$piece_woodwallquarterupper";
			val5.Description = "$piece_woodwallquarterupper_description";
			val5.PieceTable = Hammer;
			val5.Category = CategoryBuildingWorkbench;
			val5.CraftingStation = Workbench;
			val5.AllowedInDungeons = false;
			val5.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val4, true, val5));
			GameObject val6 = val.LoadAsset<GameObject>("stone_wall_1x1_triangular");
			PieceConfig val7 = new PieceConfig();
			val7.Name = "$piece_stonewall1x1triangular";
			val7.Description = "$piece_stonewall1x1triangular_description";
			val7.PieceTable = Hammer;
			val7.Category = CategoryBuildingStonecutter;
			val7.CraftingStation = Stonecutter;
			val7.AllowedInDungeons = false;
			val7.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Stone",
					Amount = 2,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val6, true, val7));
			GameObject val8 = val.LoadAsset<GameObject>("stone_wall_2x1_triangular");
			PieceConfig val9 = new PieceConfig();
			val9.Name = "$piece_stonewall2x1triangular";
			val9.Description = "$piece_stonewall2x1triangular_description";
			val9.PieceTable = Hammer;
			val9.Category = CategoryBuildingStonecutter;
			val9.CraftingStation = Stonecutter;
			val9.AllowedInDungeons = false;
			val9.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Stone",
					Amount = 2,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val8, true, val9));
			GameObject val10 = val.LoadAsset<GameObject>("stone_stair_corner");
			PieceConfig val11 = new PieceConfig();
			val11.Name = "$piece_stonestaircorner";
			val11.Description = "$piece_stonestaircorner_description";
			val11.PieceTable = Hammer;
			val11.Category = CategoryBuildingStonecutter;
			val11.CraftingStation = Stonecutter;
			val11.AllowedInDungeons = false;
			val11.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Stone",
					Amount = 6,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val10, true, val11));
			GameObject val12 = val.LoadAsset<GameObject>("stone_floor_1x1");
			PieceConfig val13 = new PieceConfig();
			val13.Name = "$piece_stonefloor1x1";
			val13.Description = "$piece_stonefloor1x1_description";
			val13.PieceTable = Hammer;
			val13.Category = CategoryBuildingStonecutter;
			val13.CraftingStation = Stonecutter;
			val13.AllowedInDungeons = false;
			val13.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Stone",
					Amount = 2,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val12, true, val13));
			GameObject val14 = val.LoadAsset<GameObject>("wood_floor_triangular1");
			PieceConfig val15 = new PieceConfig();
			val15.Name = "$piece_woodfloortriangular1";
			val15.Description = "$piece_woodfloortriangular1_description";
			val15.PieceTable = Hammer;
			val15.Category = CategoryBuildingWorkbench;
			val15.CraftingStation = Workbench;
			val15.AllowedInDungeons = false;
			val15.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val14, true, val15));
			GameObject val16 = val.LoadAsset<GameObject>("wood_floor_triangular2");
			PieceConfig val17 = new PieceConfig();
			val17.Name = "$piece_woodfloortriangular2";
			val17.Description = "$piece_woodfloortriangular2_description";
			val17.PieceTable = Hammer;
			val17.Category = CategoryBuildingWorkbench;
			val17.CraftingStation = Workbench;
			val17.AllowedInDungeons = false;
			val17.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val16, true, val17));
			GameObject val18 = val.LoadAsset<GameObject>("wood_finerstepladder");
			PieceConfig val19 = new PieceConfig();
			val19.Name = "$piece_finerstepladder";
			val19.Description = "$piece_finerstepladder_description";
			val19.PieceTable = Hammer;
			val19.Category = CategoryBuildingWorkbench;
			val19.CraftingStation = Workbench;
			val19.AllowedInDungeons = false;
			val19.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 3,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val18, true, val19));
			GameObject val20 = val.LoadAsset<GameObject>("wood_stair_1m");
			PieceConfig val21 = new PieceConfig();
			val21.Name = "$piece_woodstair1m";
			val21.Description = "$piece_woodstair1m_description";
			val21.PieceTable = Hammer;
			val21.Category = CategoryBuildingWorkbench;
			val21.CraftingStation = Workbench;
			val21.AllowedInDungeons = false;
			val21.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val20, true, val21));
			GameObject val22 = val.LoadAsset<GameObject>("roof_wood_2m");
			PieceConfig val23 = new PieceConfig();
			val23.Name = "$piece_roofwood2m";
			val23.Description = "$piece_roofwood2m_description";
			val23.PieceTable = Hammer;
			val23.Category = CategoryBuildingWorkbench;
			val23.CraftingStation = Workbench;
			val23.AllowedInDungeons = false;
			val23.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val22, true, val23));
			GameObject val24 = val.LoadAsset<GameObject>("roof_wood_26_right");
			PieceConfig val25 = new PieceConfig();
			val25.Name = "$piece_rightwoodroof26triangular";
			val25.Description = "$piece_rightwoodroof26triangular_description";
			val25.PieceTable = Hammer;
			val25.Category = CategoryBuildingWorkbench;
			val25.CraftingStation = Workbench;
			val25.AllowedInDungeons = false;
			val25.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val24, true, val25));
			GameObject val26 = val.LoadAsset<GameObject>("roof_wood_26_left");
			PieceConfig val27 = new PieceConfig();
			val27.Name = "$piece_leftwoodroof26triangular";
			val27.Description = "$piece_leftwoodroof26triangular_description";
			val27.PieceTable = Hammer;
			val27.Category = CategoryBuildingWorkbench;
			val27.CraftingStation = Workbench;
			val27.AllowedInDungeons = false;
			val27.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val26, true, val27));
			GameObject val28 = val.LoadAsset<GameObject>("roof_wood_45_right");
			PieceConfig val29 = new PieceConfig();
			val29.Name = "$piece_rightwoodroof45triangular";
			val29.Description = "$piece_rightwoodroof45triangular_description";
			val29.PieceTable = Hammer;
			val29.Category = CategoryBuildingWorkbench;
			val29.CraftingStation = Workbench;
			val29.AllowedInDungeons = false;
			val29.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val28, true, val29));
			GameObject val30 = val.LoadAsset<GameObject>("roof_wood_45_left");
			PieceConfig val31 = new PieceConfig();
			val31.Name = "$piece_leftwoodroof45triangular";
			val31.Description = "$piece_leftwoodroof45triangular_description";
			val31.PieceTable = Hammer;
			val31.Category = CategoryBuildingWorkbench;
			val31.CraftingStation = Workbench;
			val31.AllowedInDungeons = false;
			val31.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val30, true, val31));
			GameObject val32 = val.LoadAsset<GameObject>("roof_darkwood_2m");
			PieceConfig val33 = new PieceConfig();
			val33.Name = "$piece_roofdarkwood2m";
			val33.Description = "$piece_roofdarkwood2m_description";
			val33.PieceTable = Hammer;
			val33.Category = CategoryBuildingWorkbench;
			val33.CraftingStation = Workbench;
			val33.AllowedInDungeons = false;
			val33.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Tar",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val32, true, val33));
			GameObject val34 = val.LoadAsset<GameObject>("roof_darkwood_26_right");
			PieceConfig val35 = new PieceConfig();
			val35.Name = "$piece_rightdarkwoodroof26triangular";
			val35.Description = "$piece_rightdarkwoodroof26triangular_description";
			val35.PieceTable = Hammer;
			val35.Category = CategoryBuildingWorkbench;
			val35.CraftingStation = Workbench;
			val35.AllowedInDungeons = false;
			val35.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Tar",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val34, true, val35));
			GameObject val36 = val.LoadAsset<GameObject>("roof_darkwood_26_left");
			PieceConfig val37 = new PieceConfig();
			val37.Name = "$piece_leftdarkwoodroof26triangular";
			val37.Description = "$piece_leftdarkwoodroof26triangular_description";
			val37.PieceTable = Hammer;
			val37.Category = CategoryBuildingWorkbench;
			val37.CraftingStation = Workbench;
			val37.AllowedInDungeons = false;
			val37.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Tar",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val36, true, val37));
			GameObject val38 = val.LoadAsset<GameObject>("roof_darkwood_45_right");
			PieceConfig val39 = new PieceConfig();
			val39.Name = "$piece_rightdarkwoodroof45triangular";
			val39.Description = "$piece_rightdarkwoodroof45triangular_description";
			val39.PieceTable = Hammer;
			val39.Category = CategoryBuildingWorkbench;
			val39.CraftingStation = Workbench;
			val39.AllowedInDungeons = false;
			val39.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Tar",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val38, true, val39));
			GameObject val40 = val.LoadAsset<GameObject>("roof_darkwood_45_left");
			PieceConfig val41 = new PieceConfig();
			val41.Name = "$piece_leftdarkwoodroof45triangular";
			val41.Description = "$piece_leftdarkwoodroof45triangular_description";
			val41.PieceTable = Hammer;
			val41.Category = CategoryBuildingWorkbench;
			val41.CraftingStation = Workbench;
			val41.AllowedInDungeons = false;
			val41.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 1,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Tar",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val40, true, val41));
			GameObject val42 = val.LoadAsset<GameObject>("piece_chest_wooden_drawer");
			PieceConfig val43 = new PieceConfig();
			val43.Name = "$piece_mpwoodendrawer";
			val43.Description = "$piece_mpwoodendrawer_description";
			val43.PieceTable = Hammer;
			val43.Category = "Furniture";
			val43.CraftingStation = Workbench;
			val43.AllowedInDungeons = true;
			val43.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 10,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 2,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Coal",
					Amount = 1,
					Recover = true
				}
			};
			PieceManager.Instance.AddPiece(new CustomPiece(val42, true, val43));
		}
	}
}