Decompiled source of OdinsKingdom v1.2.20

OdinsKingdom.dll

Decompiled a month ago
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using HarmonyLib;
using ItemManager;
using JetBrains.Annotations;
using LocalizationManager;
using Microsoft.CodeAnalysis;
using PieceManager;
using ServerSync;
using TMPro;
using UnityEngine;
using YamlDotNet.Core;
using YamlDotNet.Core.Events;
using YamlDotNet.Core.Tokens;
using YamlDotNet.Helpers;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.Converters;
using YamlDotNet.Serialization.EventEmitters;
using YamlDotNet.Serialization.NamingConventions;
using YamlDotNet.Serialization.NodeDeserializers;
using YamlDotNet.Serialization.NodeTypeResolvers;
using YamlDotNet.Serialization.ObjectFactories;
using YamlDotNet.Serialization.ObjectGraphTraversalStrategies;
using YamlDotNet.Serialization.ObjectGraphVisitors;
using YamlDotNet.Serialization.Schemas;
using YamlDotNet.Serialization.TypeInspectors;
using YamlDotNet.Serialization.TypeResolvers;
using YamlDotNet.Serialization.Utilities;
using YamlDotNet.Serialization.ValueDeserializers;

[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: Guid("504E7E7A-066A-43C2-A491-2AF7FAE3FCBE")]
[assembly: ComVisible(false)]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyProduct("OdinsKingdom")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyTitle("OdinsKingdom")]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: CompilationRelaxations(8)]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace OdinsKingdom
{
	[BepInPlugin("odinplus.plugins.odinskingdom", "OdinsKingdom", "1.2.20")]
	public class OdinsKingdom : BaseUnityPlugin
	{
		private enum Toggle
		{
			On = 1,
			Off = 0
		}

		private const string ModName = "OdinsKingdom";

		private const string ModVersion = "1.2.20";

		private const string ModGUID = "odinplus.plugins.odinskingdom";

		private static readonly ConfigSync configSync = new ConfigSync("OdinsKingdom")
		{
			DisplayName = "OdinsKingdom",
			CurrentVersion = "1.2.20",
			MinimumRequiredVersion = "1.2.20"
		};

		private static ConfigEntry<Toggle> serverConfigLocked = null;

		private ConfigEntry<T> config<T>(string group, string name, T value, ConfigDescription description, bool synchronizedSetting = true)
		{
			ConfigEntry<T> val = ((BaseUnityPlugin)this).Config.Bind<T>(group, name, value, description);
			SyncedConfigEntry<T> syncedConfigEntry = configSync.AddConfigEntry<T>(val);
			syncedConfigEntry.SynchronizedConfig = synchronizedSetting;
			return val;
		}

		private ConfigEntry<T> config<T>(string group, string name, T value, string description, bool synchronizedSetting = true)
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			return config(group, name, value, new ConfigDescription(description, (AcceptableValueBase)null, Array.Empty<object>()), synchronizedSetting);
		}

		public void Awake()
		{
			//IL_6384: Unknown result type (might be due to invalid IL or missing references)
			//IL_638b: Expected O, but got Unknown
			Localizer.Load();
			Item item = new Item("gbcastles", "GB_Parchment_Tool");
			item.Crafting.Add(ItemManager.CraftingTable.Workbench, 1);
			item.RequiredItems.Add("FineWood", 10);
			item.CraftAmount = 1;
			PrefabManager.RegisterPrefab("gbcastles", "GB_Repair_Scroll");
			BuildPiece buildPiece = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Gate");
			buildPiece.Tool.Add("GB_Parchment_Tool");
			buildPiece.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece.RequiredItems.Add("Iron", 1, recover: true);
			buildPiece.RequiredItems.Add("IronNails", 10, recover: true);
			buildPiece.RequiredItems.Add("Wood", 10, recover: true);
			buildPiece.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece.Category.Set("Stone Building");
			BuildPiece buildPiece2 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Gate_Bridge");
			buildPiece2.Tool.Add("GB_Parchment_Tool");
			buildPiece2.RequiredItems.Add("Chain", 2, recover: true);
			buildPiece2.RequiredItems.Add("Iron", 1, recover: true);
			buildPiece2.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece2.RequiredItems.Add("Wood", 6, recover: true);
			buildPiece2.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece2.Category.Set("Stone Building");
			BuildPiece buildPiece3 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Portcullis");
			buildPiece3.Tool.Add("GB_Parchment_Tool");
			buildPiece3.RequiredItems.Add("Stone", 20, recover: true);
			buildPiece3.RequiredItems.Add("Iron", 5, recover: true);
			buildPiece3.RequiredItems.Add("Chain", 2, recover: true);
			buildPiece3.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece3.Category.Set("Stone Building");
			BuildPiece buildPiece4 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_StoneWindow");
			buildPiece4.Tool.Add("GB_Parchment_Tool");
			buildPiece4.RequiredItems.Add("Stone", 5, recover: true);
			buildPiece4.RequiredItems.Add("Crystal", 5, recover: true);
			buildPiece4.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece4.Category.Set("Stone Building");
			BuildPiece buildPiece5 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_StoneWindow_OdinPlus");
			buildPiece5.Tool.Add("GB_Parchment_Tool");
			buildPiece5.RequiredItems.Add("Stone", 5, recover: true);
			buildPiece5.RequiredItems.Add("Crystal", 5, recover: true);
			buildPiece5.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece5.Category.Set("Stone Building");
			BuildPiece buildPiece6 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Window_OdinPlus");
			buildPiece6.Tool.Add("GB_Parchment_Tool");
			buildPiece6.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece6.RequiredItems.Add("Crystal", 10, recover: true);
			buildPiece6.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece6.Category.Set("Stone Building");
			BuildPiece buildPiece7 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Window");
			buildPiece7.Tool.Add("GB_Parchment_Tool");
			buildPiece7.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece7.RequiredItems.Add("Crystal", 10, recover: true);
			buildPiece7.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece7.Category.Set("Stone Building");
			BuildPiece buildPiece8 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Archway_Wall");
			buildPiece8.Tool.Add("GB_Parchment_Tool");
			buildPiece8.RequiredItems.Add("Stone", 6, recover: true);
			buildPiece8.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece8.Category.Set("Stone Building");
			BuildPiece buildPiece9 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Tile_Floor");
			buildPiece9.Tool.Add("GB_Parchment_Tool");
			buildPiece9.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece9.RequiredItems.Add("Flint", 4, recover: true);
			buildPiece9.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece9.Category.Set("Stone Building");
			BuildPiece buildPiece10 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Tile_4x4");
			buildPiece10.Tool.Add("GB_Parchment_Tool");
			buildPiece10.RequiredItems.Add("Stone", 6, recover: true);
			buildPiece10.RequiredItems.Add("Flint", 3, recover: true);
			buildPiece10.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece10.Category.Set("Stone Building");
			BuildPiece buildPiece11 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Tile");
			buildPiece11.Tool.Add("GB_Parchment_Tool");
			buildPiece11.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece11.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece11.Category.Set("Stone Building");
			BuildPiece buildPiece12 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Tile_1x1");
			buildPiece12.Tool.Add("GB_Parchment_Tool");
			buildPiece12.RequiredItems.Add("Stone", 2, recover: true);
			buildPiece12.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece12.Category.Set("Stone Building");
			BuildPiece buildPiece13 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Angle_Floor");
			buildPiece13.Tool.Add("GB_Parchment_Tool");
			buildPiece13.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece13.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece13.Category.Set("Stone Building");
			BuildPiece buildPiece14 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Angle_Tile_1x1");
			buildPiece14.Tool.Add("GB_Parchment_Tool");
			buildPiece14.RequiredItems.Add("Stone", 2, recover: true);
			buildPiece14.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece14.Category.Set("Stone Building");
			BuildPiece buildPiece15 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Round_Tile");
			buildPiece15.Tool.Add("GB_Parchment_Tool");
			buildPiece15.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece15.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece15.Category.Set("Stone Building");
			BuildPiece buildPiece16 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Solid_Wood_Floor");
			buildPiece16.Tool.Add("GB_Parchment_Tool");
			buildPiece16.RequiredItems.Add("Wood", 16, recover: true);
			buildPiece16.RequiredItems.Add("FineWood", 6, recover: true);
			buildPiece16.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece16.Category.Set("Wood Building");
			BuildPiece buildPiece17 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Solid_Wood_Tile_4x4");
			buildPiece17.Tool.Add("GB_Parchment_Tool");
			buildPiece17.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece17.RequiredItems.Add("FineWood", 4, recover: true);
			buildPiece17.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece17.Category.Set("Wood Building");
			BuildPiece buildPiece18 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Solid_Wood_Round_Tile");
			buildPiece18.Tool.Add("GB_Parchment_Tool");
			buildPiece18.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece18.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece18.Category.Set("Wood Building");
			BuildPiece buildPiece19 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Solid_Wood_Tile");
			buildPiece19.Tool.Add("GB_Parchment_Tool");
			buildPiece19.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece19.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece19.Category.Set("Wood Building");
			BuildPiece buildPiece20 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Solid_Wood_Tile_1x1");
			buildPiece20.Tool.Add("GB_Parchment_Tool");
			buildPiece20.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece20.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece20.Category.Set("Wood Building");
			BuildPiece buildPiece21 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Tile");
			buildPiece21.Tool.Add("GB_Parchment_Tool");
			buildPiece21.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece21.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece21.Category.Set("Wood Building");
			BuildPiece buildPiece22 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_1x1_Floor");
			buildPiece22.Tool.Add("GB_Parchment_Tool");
			buildPiece22.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece22.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece22.Category.Set("Wood Building");
			BuildPiece buildPiece23 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Angle_Floor");
			buildPiece23.Tool.Add("GB_Parchment_Tool");
			buildPiece23.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece23.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece23.Category.Set("Wood Building");
			BuildPiece buildPiece24 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Angle_Tile_1x1");
			buildPiece24.Tool.Add("GB_Parchment_Tool");
			buildPiece24.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece24.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece24.Category.Set("Wood Building");
			BuildPiece buildPiece25 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Arch");
			buildPiece25.Tool.Add("GB_Parchment_Tool");
			buildPiece25.RequiredItems.Add("Stone", 5, recover: true);
			buildPiece25.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece25.Category.Set("Stone Building");
			BuildPiece buildPiece26 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Doorframe");
			buildPiece26.Tool.Add("GB_Parchment_Tool");
			buildPiece26.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece26.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece26.Category.Set("Stone Building");
			BuildPiece buildPiece27 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_StoneWall");
			buildPiece27.Tool.Add("GB_Parchment_Tool");
			buildPiece27.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece27.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece27.Category.Set("Stone Building");
			BuildPiece buildPiece28 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Circle_Window");
			buildPiece28.Tool.Add("GB_Parchment_Tool");
			buildPiece28.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece28.RequiredItems.Add("Crystal", 2, recover: true);
			buildPiece28.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece28.Category.Set("Stone Building");
			BuildPiece buildPiece29 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Aperture");
			buildPiece29.Tool.Add("GB_Parchment_Tool");
			buildPiece29.RequiredItems.Add("Stone", 6, recover: true);
			buildPiece29.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece29.Category.Set("Stone Building");
			BuildPiece buildPiece30 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Halfwall_Aperture");
			buildPiece30.Tool.Add("GB_Parchment_Tool");
			buildPiece30.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece30.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece30.Category.Set("Stone Building");
			BuildPiece buildPiece31 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Halfwall");
			buildPiece31.Tool.Add("GB_Parchment_Tool");
			buildPiece31.RequiredItems.Add("Stone", 2, recover: true);
			buildPiece31.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece31.Category.Set("Stone Building");
			BuildPiece buildPiece32 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Halfwall_Arch");
			buildPiece32.Tool.Add("GB_Parchment_Tool");
			buildPiece32.RequiredItems.Add("Stone", 2, recover: true);
			buildPiece32.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece32.Category.Set("Stone Building");
			BuildPiece buildPiece33 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wooden_Ladder");
			buildPiece33.Tool.Add("GB_Parchment_Tool");
			buildPiece33.RequiredItems.Add("RoundLog", 10, recover: true);
			buildPiece33.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece33.Category.Set("Wood Building");
			BuildPiece buildPiece34 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Small_Wooden_Ladder");
			buildPiece34.Tool.Add("GB_Parchment_Tool");
			buildPiece34.RequiredItems.Add("RoundLog", 10, recover: true);
			buildPiece34.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece34.Category.Set("Wood Building");
			BuildPiece buildPiece35 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Black_Curtains");
			buildPiece35.Tool.Add("GB_Parchment_Tool");
			buildPiece35.RequiredItems.Add("Bronze", 1, recover: true);
			buildPiece35.RequiredItems.Add("LeatherScraps", 6, recover: true);
			buildPiece35.RequiredItems.Add("Coal", 4, recover: true);
			buildPiece35.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece35.Category.Set("Deco");
			BuildPiece buildPiece36 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Single_Candle_1");
			buildPiece36.Tool.Add("GB_Parchment_Tool");
			buildPiece36.RequiredItems.Add("Honey", 2, recover: true);
			buildPiece36.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece36.Category.Set("Lights and Storage");
			BuildPiece buildPiece37 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Single_Candle_2");
			buildPiece37.Tool.Add("GB_Parchment_Tool");
			buildPiece37.RequiredItems.Add("Honey", 2, recover: true);
			buildPiece37.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece37.Category.Set("Lights and Storage");
			BuildPiece buildPiece38 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Candle_Stick");
			buildPiece38.Tool.Add("GB_Parchment_Tool");
			buildPiece38.RequiredItems.Add("Honey", 5, recover: true);
			buildPiece38.RequiredItems.Add("Resin", 5, recover: true);
			buildPiece38.RequiredItems.Add("Tin", 1, recover: true);
			buildPiece38.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece38.Category.Set("Lights and Storage");
			BuildPiece buildPiece39 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Standing_Candles");
			buildPiece39.Tool.Add("GB_Parchment_Tool");
			buildPiece39.RequiredItems.Add("Honey", 5, recover: true);
			buildPiece39.RequiredItems.Add("Resin", 5, recover: true);
			buildPiece39.RequiredItems.Add("Tin", 2, recover: true);
			buildPiece39.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece39.Category.Set("Lights and Storage");
			BuildPiece buildPiece40 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Leather_Chair");
			buildPiece40.Tool.Add("GB_Parchment_Tool");
			buildPiece40.RequiredItems.Add("LeatherScraps", 5, recover: true);
			buildPiece40.RequiredItems.Add("FineWood", 5, recover: true);
			buildPiece40.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece40.Category.Set("Furniture");
			BuildPiece buildPiece41 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Old_Wood_Throne");
			buildPiece41.Tool.Add("GB_Parchment_Tool");
			buildPiece41.RequiredItems.Add("FineWood", 5, recover: true);
			buildPiece41.RequiredItems.Add("DeerHide", 5, recover: true);
			buildPiece41.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece41.Category.Set("Furniture");
			BuildPiece buildPiece42 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Chair_1");
			buildPiece42.Tool.Add("GB_Parchment_Tool");
			buildPiece42.RequiredItems.Add("FineWood", 5, recover: true);
			buildPiece42.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece42.Category.Set("Furniture");
			BuildPiece buildPiece43 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Chair_2");
			buildPiece43.Tool.Add("GB_Parchment_Tool");
			buildPiece43.RequiredItems.Add("FineWood", 5, recover: true);
			buildPiece43.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece43.Category.Set("Furniture");
			BuildPiece buildPiece44 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Stool");
			buildPiece44.Tool.Add("GB_Parchment_Tool");
			buildPiece44.RequiredItems.Add("FineWood", 4, recover: true);
			buildPiece44.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece44.Category.Set("Furniture");
			BuildPiece buildPiece45 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wall_Torch");
			buildPiece45.Tool.Add("GB_Parchment_Tool");
			buildPiece45.RequiredItems.Add("Wood", 1, recover: true);
			buildPiece45.RequiredItems.Add("Resin", 2, recover: true);
			buildPiece45.RequiredItems.Add("Tin", 5, recover: true);
			buildPiece45.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece45.Category.Set("Lights and Storage");
			BuildPiece buildPiece46 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Table");
			buildPiece46.Tool.Add("GB_Parchment_Tool");
			buildPiece46.RequiredItems.Add("FineWood", 5, recover: true);
			buildPiece46.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece46.Category.Set("Furniture");
			BuildPiece buildPiece47 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Old_Wood_Table");
			buildPiece47.Tool.Add("GB_Parchment_Tool");
			buildPiece47.RequiredItems.Add("Wood", 5, recover: true);
			buildPiece47.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece47.Category.Set("Furniture");
			BuildPiece buildPiece48 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Casket_Lid");
			buildPiece48.Tool.Add("GB_Parchment_Tool");
			buildPiece48.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece48.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece48.Category.Set("Furniture");
			BuildPiece buildPiece49 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Casket");
			buildPiece49.Tool.Add("GB_Parchment_Tool");
			buildPiece49.RequiredItems.Add("Wood", 10, recover: true);
			buildPiece49.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece49.Category.Set("Furniture");
			BuildPiece buildPiece50 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Barrel_O_Skulls");
			buildPiece50.Tool.Add("GB_Parchment_Tool");
			buildPiece50.RequiredItems.Add("RoundLog", 5, recover: true);
			buildPiece50.RequiredItems.Add("BoneFragments", 5, recover: true);
			buildPiece50.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece50.Category.Set("Deco");
			BuildPiece buildPiece51 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Pile_O_Skulls");
			buildPiece51.Tool.Add("GB_Parchment_Tool");
			buildPiece51.RequiredItems.Add("BoneFragments", 5, recover: true);
			buildPiece51.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece51.Category.Set("Deco");
			BuildPiece buildPiece52 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Black_Banner");
			buildPiece52.Tool.Add("GB_Parchment_Tool");
			buildPiece52.RequiredItems.Add("Iron", 1, recover: true);
			buildPiece52.RequiredItems.Add("Chain", 2, recover: true);
			buildPiece52.RequiredItems.Add("DeerHide", 2, recover: true);
			buildPiece52.RequiredItems.Add("Coal", 4, recover: true);
			buildPiece52.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece52.Category.Set("Deco");
			BuildPiece buildPiece53 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Black_Half_Curtains");
			buildPiece53.Tool.Add("GB_Parchment_Tool");
			buildPiece53.RequiredItems.Add("Bronze", 1, recover: true);
			buildPiece53.RequiredItems.Add("LeatherScraps", 3, recover: true);
			buildPiece53.RequiredItems.Add("Coal", 2, recover: true);
			buildPiece53.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece53.Category.Set("Deco");
			BuildPiece buildPiece54 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Book_Shelf");
			buildPiece54.Tool.Add("GB_Parchment_Tool");
			buildPiece54.RequiredItems.Add("Wood", 5, recover: true);
			buildPiece54.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece54.Category.Set("Furniture");
			BuildPiece buildPiece55 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Book_Shelf_Full");
			buildPiece55.Tool.Add("GB_Parchment_Tool");
			buildPiece55.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece55.RequiredItems.Add("LeatherScraps", 6, recover: true);
			buildPiece55.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece55.Category.Set("Furniture");
			BuildPiece buildPiece56 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Book_Shelf_Full_2");
			buildPiece56.Tool.Add("GB_Parchment_Tool");
			buildPiece56.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece56.RequiredItems.Add("LeatherScraps", 6, recover: true);
			buildPiece56.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece56.Category.Set("Furniture");
			BuildPiece buildPiece57 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Hanging_Cage");
			buildPiece57.Tool.Add("GB_Parchment_Tool");
			buildPiece57.RequiredItems.Add("Iron", 2, recover: true);
			buildPiece57.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece57.Category.Set("Furniture");
			BuildPiece buildPiece58 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Skull_Orn");
			buildPiece58.Tool.Add("GB_Parchment_Tool");
			buildPiece58.RequiredItems.Add("TrophySkeleton", 1, recover: true);
			buildPiece58.RequiredItems.Add("Stone", 2, recover: true);
			buildPiece58.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece58.Category.Set("Deco");
			BuildPiece buildPiece59 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Skeleton_Orn");
			buildPiece59.Tool.Add("GB_Parchment_Tool");
			buildPiece59.RequiredItems.Add("TrophySkeleton", 1, recover: true);
			buildPiece59.RequiredItems.Add("Stone", 5, recover: true);
			buildPiece59.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece59.Category.Set("Deco");
			BuildPiece buildPiece60 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Hanging_Skeleton");
			buildPiece60.Tool.Add("GB_Parchment_Tool");
			buildPiece60.RequiredItems.Add("TrophySkeleton", 1, recover: true);
			buildPiece60.RequiredItems.Add("BoneFragments", 5, recover: true);
			buildPiece60.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece60.Category.Set("Deco");
			BuildPiece buildPiece61 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Purple_Curtains");
			buildPiece61.Tool.Add("GB_Parchment_Tool");
			buildPiece61.RequiredItems.Add("Bronze", 1, recover: true);
			buildPiece61.RequiredItems.Add("LeatherScraps", 6, recover: true);
			buildPiece61.RequiredItems.Add("Raspberry", 6, recover: true);
			buildPiece61.RequiredItems.Add("Blueberries", 6, recover: true);
			buildPiece61.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece61.Category.Set("Deco");
			BuildPiece buildPiece62 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Purple_Half_Curtains");
			buildPiece62.Tool.Add("GB_Parchment_Tool");
			buildPiece62.RequiredItems.Add("Bronze", 1, recover: true);
			buildPiece62.RequiredItems.Add("LeatherScraps", 3, recover: true);
			buildPiece62.RequiredItems.Add("Raspberry", 3, recover: true);
			buildPiece62.RequiredItems.Add("Blueberries", 3, recover: true);
			buildPiece62.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece62.Category.Set("Deco");
			BuildPiece buildPiece63 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Single_Shelf");
			buildPiece63.Tool.Add("GB_Parchment_Tool");
			buildPiece63.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece63.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece63.Category.Set("Furniture");
			BuildPiece buildPiece64 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Sitting_Skeleton");
			buildPiece64.Tool.Add("GB_Parchment_Tool");
			buildPiece64.RequiredItems.Add("TrophySkeleton", 1, recover: true);
			buildPiece64.RequiredItems.Add("BoneFragments", 5, recover: true);
			buildPiece64.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece64.Category.Set("Deco");
			BuildPiece buildPiece65 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Skeleton_Pole");
			buildPiece65.Tool.Add("GB_Parchment_Tool");
			buildPiece65.RequiredItems.Add("TrophySkeleton", 1, recover: true);
			buildPiece65.RequiredItems.Add("BoneFragments", 5, recover: true);
			buildPiece65.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece65.Category.Set("Deco");
			BuildPiece buildPiece66 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Pillar_1x1");
			buildPiece66.Tool.Add("GB_Parchment_Tool");
			buildPiece66.RequiredItems.Add("Stone", 2, recover: true);
			buildPiece66.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece66.Category.Set("Stone Building");
			BuildPiece buildPiece67 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Pillar_Base");
			buildPiece67.Tool.Add("GB_Parchment_Tool");
			buildPiece67.RequiredItems.Add("Stone", 5, recover: true);
			buildPiece67.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece67.Category.Set("Stone Building");
			BuildPiece buildPiece68 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Pillar_Bottom");
			buildPiece68.Tool.Add("GB_Parchment_Tool");
			buildPiece68.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece68.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece68.Category.Set("Stone Building");
			BuildPiece buildPiece69 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Pillar_Middle");
			buildPiece69.Tool.Add("GB_Parchment_Tool");
			buildPiece69.RequiredItems.Add("Stone", 3, recover: true);
			buildPiece69.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece69.Category.Set("Stone Building");
			BuildPiece buildPiece70 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Pillar_Small");
			buildPiece70.Tool.Add("GB_Parchment_Tool");
			buildPiece70.RequiredItems.Add("Stone", 6, recover: true);
			buildPiece70.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece70.Category.Set("Stone Building");
			BuildPiece buildPiece71 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Pillar_Top");
			buildPiece71.Tool.Add("GB_Parchment_Tool");
			buildPiece71.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece71.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece71.Category.Set("Stone Building");
			BuildPiece buildPiece72 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Pillar_Base_Round");
			buildPiece72.Tool.Add("GB_Parchment_Tool");
			buildPiece72.RequiredItems.Add("Stone", 6, recover: true);
			buildPiece72.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece72.Category.Set("Stone Building");
			BuildPiece buildPiece73 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Square_Pillar_Middle");
			buildPiece73.Tool.Add("GB_Parchment_Tool");
			buildPiece73.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece73.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece73.Category.Set("Stone Building");
			BuildPiece buildPiece74 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Table");
			buildPiece74.Tool.Add("GB_Parchment_Tool");
			buildPiece74.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece74.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece74.Category.Set("Furniture");
			BuildPiece buildPiece75 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wooden_Awning");
			buildPiece75.Tool.Add("GB_Parchment_Tool");
			buildPiece75.RequiredItems.Add("FineWood", 10, recover: true);
			buildPiece75.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece75.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece75.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece76 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Cloth_Bag");
			buildPiece76.Tool.Add("GB_Parchment_Tool");
			buildPiece76.RequiredItems.Add("LeatherScraps", 10, recover: true);
			buildPiece76.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece76.Category.Set("Lights and Storage");
			BuildPiece buildPiece77 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Old_Book");
			buildPiece77.Tool.Add("GB_Parchment_Tool");
			buildPiece77.RequiredItems.Add("LeatherScraps", 5, recover: true);
			buildPiece77.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece77.Category.Set("Deco");
			BuildPiece buildPiece78 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Old_Jug");
			buildPiece78.Tool.Add("GB_Parchment_Tool");
			buildPiece78.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece78.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece78.Category.Set("Deco");
			BuildPiece buildPiece79 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Small_Bottle");
			buildPiece79.Tool.Add("GB_Parchment_Tool");
			buildPiece79.RequiredItems.Add("Crystal", 1, recover: true);
			buildPiece79.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece79.Category.Set("Deco");
			BuildPiece buildPiece80 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Old_Kettle");
			buildPiece80.Tool.Add("GB_Parchment_Tool");
			buildPiece80.RequiredItems.Add("Iron", 1, recover: true);
			buildPiece80.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece80.Category.Set("Deco");
			BuildPiece buildPiece81 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wooden_Barrel");
			buildPiece81.Tool.Add("GB_Parchment_Tool");
			buildPiece81.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece81.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece81.Category.Set("Lights and Storage");
			BuildPiece buildPiece82 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Fireplace");
			buildPiece82.Tool.Add("GB_Parchment_Tool");
			buildPiece82.RequiredItems.Add("Stone", 20, recover: true);
			buildPiece82.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece82.RequiredItems.Add("Coal", 2, recover: true);
			buildPiece82.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece82.Category.Set("Lights and Storage");
			BuildPiece buildPiece83 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wooden_Bucket");
			buildPiece83.Tool.Add("GB_Parchment_Tool");
			buildPiece83.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece83.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece83.Category.Set("Deco");
			BuildPiece buildPiece84 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Old_Open_Book");
			buildPiece84.Tool.Add("GB_Parchment_Tool");
			buildPiece84.RequiredItems.Add("LeatherScraps", 5, recover: true);
			buildPiece84.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece84.Category.Set("Deco");
			BuildPiece buildPiece85 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Beam");
			buildPiece85.Tool.Add("GB_Parchment_Tool");
			buildPiece85.RequiredItems.Add("Stone", 3, recover: true);
			buildPiece85.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece85.Category.Set("Stone Building");
			BuildPiece buildPiece86 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Pole");
			buildPiece86.Tool.Add("GB_Parchment_Tool");
			buildPiece86.RequiredItems.Add("Stone", 3, recover: true);
			buildPiece86.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece86.Category.Set("Stone Building");
			BuildPiece buildPiece87 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Pole_Small");
			buildPiece87.Tool.Add("GB_Parchment_Tool");
			buildPiece87.RequiredItems.Add("Stone", 1, recover: true);
			buildPiece87.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece87.Category.Set("Stone Building");
			BuildPiece buildPiece88 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Beam_Small");
			buildPiece88.Tool.Add("GB_Parchment_Tool");
			buildPiece88.RequiredItems.Add("Stone", 1, recover: true);
			buildPiece88.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece88.Category.Set("Stone Building");
			BuildPiece buildPiece89 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Beam_26");
			buildPiece89.Tool.Add("GB_Parchment_Tool");
			buildPiece89.RequiredItems.Add("Stone", 3, recover: true);
			buildPiece89.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece89.Category.Set("Stone Building");
			BuildPiece buildPiece90 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Beam_45");
			buildPiece90.Tool.Add("GB_Parchment_Tool");
			buildPiece90.RequiredItems.Add("Stone", 3, recover: true);
			buildPiece90.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece90.Category.Set("Stone Building");
			BuildPiece buildPiece91 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Wall_Roof_Top");
			buildPiece91.Tool.Add("GB_Parchment_Tool");
			buildPiece91.RequiredItems.Add("Stone", 5, recover: true);
			buildPiece91.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece91.Category.Set("Stone Building");
			BuildPiece buildPiece92 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Wall_Roof_Top_45");
			buildPiece92.Tool.Add("GB_Parchment_Tool");
			buildPiece92.RequiredItems.Add("Stone", 5, recover: true);
			buildPiece92.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece92.Category.Set("Stone Building");
			BuildPiece buildPiece93 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Wall_26");
			buildPiece93.Tool.Add("GB_Parchment_Tool");
			buildPiece93.RequiredItems.Add("Stone", 3, recover: true);
			buildPiece93.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece93.Category.Set("Stone Building");
			BuildPiece buildPiece94 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Wall_45");
			buildPiece94.Tool.Add("GB_Parchment_Tool");
			buildPiece94.RequiredItems.Add("Stone", 3, recover: true);
			buildPiece94.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece94.Category.Set("Stone Building");
			BuildPiece buildPiece95 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Wall_Invert_26");
			buildPiece95.Tool.Add("GB_Parchment_Tool");
			buildPiece95.RequiredItems.Add("Stone", 3, recover: true);
			buildPiece95.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece95.Category.Set("Stone Building");
			BuildPiece buildPiece96 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Wall_Invert_45");
			buildPiece96.Tool.Add("GB_Parchment_Tool");
			buildPiece96.RequiredItems.Add("Stone", 3, recover: true);
			buildPiece96.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece96.Category.Set("Stone Building");
			BuildPiece buildPiece97 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Stone_Aperture");
			buildPiece97.Tool.Add("GB_Parchment_Tool");
			buildPiece97.RequiredItems.Add("Stone", 6, recover: true);
			buildPiece97.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece97.Category.Set("Stone Building");
			BuildPiece buildPiece98 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_StoneWall");
			buildPiece98.Tool.Add("GB_Parchment_Tool");
			buildPiece98.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece98.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece98.Category.Set("Stone Building");
			BuildPiece buildPiece99 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Halfwall_Battlement");
			buildPiece99.Tool.Add("GB_Parchment_Tool");
			buildPiece99.RequiredItems.Add("Stone", 3, recover: true);
			buildPiece99.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece99.Category.Set("Stone Building");
			BuildPiece buildPiece100 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_StoneWall_Door");
			buildPiece100.Tool.Add("GB_Parchment_Tool");
			buildPiece100.RequiredItems.Add("Stone", 6, recover: true);
			buildPiece100.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece100.Category.Set("Stone Building");
			BuildPiece buildPiece101 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_StoneWall_Door");
			buildPiece101.Tool.Add("GB_Parchment_Tool");
			buildPiece101.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece101.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece101.Category.Set("Stone Building");
			BuildPiece buildPiece102 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wall_Shelf");
			buildPiece102.Tool.Add("GB_Parchment_Tool");
			buildPiece102.RequiredItems.Add("Wood", 6, recover: true);
			buildPiece102.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece102.Category.Set("Furniture");
			BuildPiece buildPiece103 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Rectangle_Rug");
			buildPiece103.Tool.Add("GB_Parchment_Tool");
			buildPiece103.RequiredItems.Add("DeerHide", 6, recover: true);
			buildPiece103.RequiredItems.Add("Coal", 2, recover: true);
			buildPiece103.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece103.Category.Set("Furniture");
			BuildPiece buildPiece104 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Round_Rug");
			buildPiece104.Tool.Add("GB_Parchment_Tool");
			buildPiece104.RequiredItems.Add("DeerHide", 2, recover: true);
			buildPiece104.RequiredItems.Add("Coal", 2, recover: true);
			buildPiece104.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece104.Category.Set("Furniture");
			BuildPiece buildPiece105 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Oval_Rug");
			buildPiece105.Tool.Add("GB_Parchment_Tool");
			buildPiece105.RequiredItems.Add("DeerHide", 4, recover: true);
			buildPiece105.RequiredItems.Add("Coal", 2, recover: true);
			buildPiece105.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece105.Category.Set("Furniture");
			BuildPiece buildPiece106 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Rug_Section");
			buildPiece106.Tool.Add("GB_Parchment_Tool");
			buildPiece106.RequiredItems.Add("DeerHide", 4, recover: true);
			buildPiece106.RequiredItems.Add("Coal", 2, recover: true);
			buildPiece106.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece106.Category.Set("Furniture");
			BuildPiece buildPiece107 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Rug_End");
			buildPiece107.Tool.Add("GB_Parchment_Tool");
			buildPiece107.RequiredItems.Add("DeerHide", 1, recover: true);
			buildPiece107.RequiredItems.Add("Coal", 1, recover: true);
			buildPiece107.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece107.Category.Set("Furniture");
			BuildPiece buildPiece108 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Block_Stairs");
			buildPiece108.Tool.Add("GB_Parchment_Tool");
			buildPiece108.RequiredItems.Add("Stone", 8, recover: true);
			buildPiece108.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece108.Category.Set("Stone Building");
			BuildPiece buildPiece109 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Stairs");
			buildPiece109.Tool.Add("GB_Parchment_Tool");
			buildPiece109.RequiredItems.Add("Stone", 8, recover: true);
			buildPiece109.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece109.Category.Set("Stone Building");
			BuildPiece buildPiece110 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Stairs");
			buildPiece110.Tool.Add("GB_Parchment_Tool");
			buildPiece110.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece110.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece110.Category.Set("Wood Building");
			BuildPiece buildPiece111 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Rock_Pole_Small");
			buildPiece111.Tool.Add("GB_Parchment_Tool");
			buildPiece111.RequiredItems.Add("Stone", 2, recover: true);
			buildPiece111.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece111.Category.Set("Stone Building");
			BuildPiece buildPiece112 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Rock_Pole");
			buildPiece112.Tool.Add("GB_Parchment_Tool");
			buildPiece112.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece112.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece112.Category.Set("Stone Building");
			BuildPiece buildPiece113 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Rock_Beam");
			buildPiece113.Tool.Add("GB_Parchment_Tool");
			buildPiece113.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece113.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece113.Category.Set("Stone Building");
			BuildPiece buildPiece114 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Rock_Beam_Small");
			buildPiece114.Tool.Add("GB_Parchment_Tool");
			buildPiece114.RequiredItems.Add("Stone", 2, recover: true);
			buildPiece114.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece114.Category.Set("Stone Building");
			BuildPiece buildPiece115 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Stone_Orn");
			buildPiece115.Tool.Add("GB_Parchment_Tool");
			buildPiece115.RequiredItems.Add("Stone", 6, recover: true);
			buildPiece115.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece115.Category.Set("Stone Building");
			BuildPiece buildPiece116 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Small_Wall_Orn");
			buildPiece116.Tool.Add("GB_Parchment_Tool");
			buildPiece116.RequiredItems.Add("Stone", 2, recover: true);
			buildPiece116.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece116.Category.Set("Stone Building");
			BuildPiece buildPiece117 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wooden_Door");
			buildPiece117.Tool.Add("GB_Parchment_Tool");
			buildPiece117.RequiredItems.Add("Wood", 12, recover: true);
			buildPiece117.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece117.Category.Set("Wood Building");
			BuildPiece buildPiece118 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Glass_Door");
			buildPiece118.Tool.Add("GB_Parchment_Tool");
			buildPiece118.RequiredItems.Add("Wood", 6, recover: true);
			buildPiece118.RequiredItems.Add("Crystal", 2, recover: true);
			buildPiece118.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece118.Category.Set("Wood Building");
			BuildPiece buildPiece119 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Glass_Door_OdinPlus");
			buildPiece119.Tool.Add("GB_Parchment_Tool");
			buildPiece119.RequiredItems.Add("Wood", 6, recover: true);
			buildPiece119.RequiredItems.Add("Crystal", 2, recover: true);
			buildPiece119.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece119.Category.Set("Wood Building");
			BuildPiece buildPiece120 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Iron_Floor_Grate");
			buildPiece120.Tool.Add("GB_Parchment_Tool");
			buildPiece120.RequiredItems.Add("Iron", 12, recover: true);
			buildPiece120.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece120.Category.Set("Deco");
			BuildPiece buildPiece121 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Rope_Fence");
			buildPiece121.Tool.Add("GB_Parchment_Tool");
			buildPiece121.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece121.RequiredItems.Add("LinenThread", 2, recover: true);
			buildPiece121.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece121.Category.Set("Wood Building");
			BuildPiece buildPiece122 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Iron_Fence");
			buildPiece122.Tool.Add("GB_Parchment_Tool");
			buildPiece122.RequiredItems.Add("Iron", 12, recover: true);
			buildPiece122.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece122.Category.Set("Deco");
			BuildPiece buildPiece123 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Iron_Fence_End");
			buildPiece123.Tool.Add("GB_Parchment_Tool");
			buildPiece123.RequiredItems.Add("Iron", 8, recover: true);
			buildPiece123.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece123.Category.Set("Deco");
			BuildPiece buildPiece124 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Iron_Fence_Door");
			buildPiece124.Tool.Add("GB_Parchment_Tool");
			buildPiece124.RequiredItems.Add("Iron", 12, recover: true);
			buildPiece124.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece124.Category.Set("Deco");
			BuildPiece buildPiece125 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Chest");
			buildPiece125.Tool.Add("GB_Parchment_Tool");
			buildPiece125.RequiredItems.Add("Wood", 12, recover: true);
			buildPiece125.RequiredItems.Add("Obsidian", 4, recover: true);
			buildPiece125.RequiredItems.Add("Bronze", 2, recover: true);
			buildPiece125.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece125.Category.Set("Lights and Storage");
			BuildPiece buildPiece126 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Small_Chest");
			buildPiece126.Tool.Add("GB_Parchment_Tool");
			buildPiece126.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece126.RequiredItems.Add("Bronze", 1, recover: true);
			buildPiece126.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece126.Category.Set("Lights and Storage");
			BuildPiece buildPiece127 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Red_Jute_Bed");
			buildPiece127.Tool.Add("GB_Parchment_Tool");
			buildPiece127.RequiredItems.Add("FineWood", 10, recover: true);
			buildPiece127.RequiredItems.Add("JuteRed", 2, recover: true);
			buildPiece127.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece127.Category.Set(BuildPieceCategory.Furniture);
			BuildPiece buildPiece128 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Blue_Jute_Bed");
			buildPiece128.Tool.Add("GB_Parchment_Tool");
			buildPiece128.RequiredItems.Add("FineWood", 10, recover: true);
			buildPiece128.RequiredItems.Add("JuteBlue", 2, recover: true);
			buildPiece128.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece128.Category.Set(BuildPieceCategory.Furniture);
			BuildPiece buildPiece129 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Black_Cloth_Bed");
			buildPiece129.Tool.Add("GB_Parchment_Tool");
			buildPiece129.RequiredItems.Add("FineWood", 10, recover: true);
			buildPiece129.RequiredItems.Add("Tar", 2, recover: true);
			buildPiece129.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece129.Category.Set(BuildPieceCategory.Furniture);
			BuildPiece buildPiece130 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_RoundWall");
			buildPiece130.Tool.Add("GB_Parchment_Tool");
			buildPiece130.RequiredItems.Add("Stone", 12, recover: true);
			buildPiece130.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece130.Category.Set("Stone Building");
			BuildPiece buildPiece131 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_RoundWall_Door");
			buildPiece131.Tool.Add("GB_Parchment_Tool");
			buildPiece131.RequiredItems.Add("Stone", 12, recover: true);
			buildPiece131.RequiredItems.Add("Wood", 6, recover: true);
			buildPiece131.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece131.Category.Set("Stone Building");
			BuildPiece buildPiece132 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_RoundWall_DoorFrame");
			buildPiece132.Tool.Add("GB_Parchment_Tool");
			buildPiece132.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece132.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece132.Category.Set("Stone Building");
			BuildPiece buildPiece133 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_RoundWall_Third");
			buildPiece133.Tool.Add("GB_Parchment_Tool");
			buildPiece133.RequiredItems.Add("Stone", 6, recover: true);
			buildPiece133.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece133.Category.Set("Stone Building");
			BuildPiece buildPiece134 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_RoundWall_Window");
			buildPiece134.Tool.Add("GB_Parchment_Tool");
			buildPiece134.RequiredItems.Add("Stone", 12, recover: true);
			buildPiece134.RequiredItems.Add("Crystal", 2, recover: true);
			buildPiece134.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece134.Category.Set("Stone Building");
			BuildPiece buildPiece135 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_RoundWall_Window_OP");
			buildPiece135.Tool.Add("GB_Parchment_Tool");
			buildPiece135.RequiredItems.Add("Stone", 12, recover: true);
			buildPiece135.RequiredItems.Add("Crystal", 2, recover: true);
			buildPiece135.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece135.Category.Set("Stone Building");
			BuildPiece buildPiece136 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Roundwall_Battlement");
			buildPiece136.Tool.Add("GB_Parchment_Tool");
			buildPiece136.RequiredItems.Add("Stone", 8, recover: true);
			buildPiece136.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece136.Category.Set("Stone Building");
			BuildPiece buildPiece137 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Wall_1x1");
			buildPiece137.Tool.Add("GB_Parchment_Tool");
			buildPiece137.RequiredItems.Add("Stone", 1, recover: true);
			buildPiece137.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece137.Category.Set("Stone Building");
			BuildPiece buildPiece138 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Hanging_Candles");
			buildPiece138.Tool.Add("GB_Parchment_Tool");
			buildPiece138.RequiredItems.Add("Tin", 3, recover: true);
			buildPiece138.RequiredItems.Add("Resin", 2, recover: true);
			buildPiece138.RequiredItems.Add("Honey", 2, recover: true);
			buildPiece138.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece138.Category.Set("Lights and Storage");
			BuildPiece buildPiece139 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wooden_Cup");
			buildPiece139.Tool.Add("GB_Parchment_Tool");
			buildPiece139.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece139.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece139.Category.Set("Deco");
			BuildPiece buildPiece140 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Tin_Cup");
			buildPiece140.Tool.Add("GB_Parchment_Tool");
			buildPiece140.RequiredItems.Add("Tin", 1, recover: true);
			buildPiece140.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece140.Category.Set("Deco");
			BuildPiece buildPiece141 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wooden_Plate");
			buildPiece141.Tool.Add("GB_Parchment_Tool");
			buildPiece141.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece141.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece141.Category.Set("Deco");
			BuildPiece buildPiece142 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Tin_Plate");
			buildPiece142.Tool.Add("GB_Parchment_Tool");
			buildPiece142.RequiredItems.Add("Tin", 1, recover: true);
			buildPiece142.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece142.Category.Set("Deco");
			BuildPiece buildPiece143 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Odin_Banner");
			buildPiece143.Tool.Add("GB_Parchment_Tool");
			buildPiece143.RequiredItems.Add("Iron", 1, recover: true);
			buildPiece143.RequiredItems.Add("LinenThread", 2, recover: true);
			buildPiece143.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece143.Category.Set("Deco");
			BuildPiece buildPiece144 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Standing_Brazier");
			buildPiece144.Tool.Add("GB_Parchment_Tool");
			buildPiece144.RequiredItems.Add("Tin", 6, recover: true);
			buildPiece144.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece144.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece144.Category.Set("Lights and Storage");
			BuildPiece buildPiece145 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Standing_Torch");
			buildPiece145.Tool.Add("GB_Parchment_Tool");
			buildPiece145.RequiredItems.Add("Tin", 4, recover: true);
			buildPiece145.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece145.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece145.Category.Set("Lights and Storage");
			BuildPiece buildPiece146 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Tower_Roof");
			buildPiece146.Tool.Add("GB_Parchment_Tool");
			buildPiece146.RequiredItems.Add("Stone", 5, recover: true);
			buildPiece146.RequiredItems.Add("FineWood", 4, recover: true);
			buildPiece146.RequiredItems.Add("Wood", 15, recover: true);
			buildPiece146.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece146.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece146.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece147 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Half_Roof_26");
			buildPiece147.Tool.Add("GB_Parchment_Tool");
			buildPiece147.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece147.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece147.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece147.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece147.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece148 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Half_Roof_45");
			buildPiece148.Tool.Add("GB_Parchment_Tool");
			buildPiece148.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece148.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece148.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece148.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece148.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece149 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Corner_Roof_45");
			buildPiece149.Tool.Add("GB_Parchment_Tool");
			buildPiece149.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece149.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece149.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece149.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece149.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece150 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Inverted_Corner_Roof");
			buildPiece150.Tool.Add("GB_Parchment_Tool");
			buildPiece150.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece150.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece150.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece150.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece150.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece151 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Roof_45");
			buildPiece151.Tool.Add("GB_Parchment_Tool");
			buildPiece151.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece151.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece151.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece151.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece151.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece152 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Roof_Top_45");
			buildPiece152.Tool.Add("GB_Parchment_Tool");
			buildPiece152.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece152.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece152.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece152.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece152.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece153 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Corner_Roof_26");
			buildPiece153.Tool.Add("GB_Parchment_Tool");
			buildPiece153.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece153.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece153.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece153.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece153.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece154 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Inverted_Corner_Roof_26");
			buildPiece154.Tool.Add("GB_Parchment_Tool");
			buildPiece154.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece154.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece154.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece154.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece154.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece155 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Roof_26");
			buildPiece155.Tool.Add("GB_Parchment_Tool");
			buildPiece155.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece155.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece155.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece155.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece155.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece156 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Roof_Top_26");
			buildPiece156.Tool.Add("GB_Parchment_Tool");
			buildPiece156.RequiredItems.Add("FineWood", 1, recover: true);
			buildPiece156.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece156.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece156.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece156.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece157 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Roof_Point");
			buildPiece157.Tool.Add("GB_Parchment_Tool");
			buildPiece157.RequiredItems.Add("FineWood", 4, recover: true);
			buildPiece157.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece157.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece157.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece157.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece158 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Railing");
			buildPiece158.Tool.Add("GB_Parchment_Tool");
			buildPiece158.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece158.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece158.Category.Set("Stone Building");
			BuildPiece buildPiece159 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Railing");
			buildPiece159.Tool.Add("GB_Parchment_Tool");
			buildPiece159.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece159.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece159.Category.Set("Wood Building");
			BuildPiece buildPiece160 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Stairs_Left");
			buildPiece160.Tool.Add("GB_Parchment_Tool");
			buildPiece160.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece160.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece160.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece160.Category.Set("Wood Building");
			BuildPiece buildPiece161 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Stairs_Right");
			buildPiece161.Tool.Add("GB_Parchment_Tool");
			buildPiece161.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece161.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece161.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece161.Category.Set("Wood Building");
			BuildPiece buildPiece162 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Small_Cupboard");
			buildPiece162.Tool.Add("GB_Parchment_Tool");
			buildPiece162.RequiredItems.Add("FineWood", 6, recover: true);
			buildPiece162.RequiredItems.Add("BronzeNails", 2, recover: true);
			buildPiece162.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece162.Category.Set("Lights and Storage");
			BuildPiece buildPiece163 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Cupboard");
			buildPiece163.Tool.Add("GB_Parchment_Tool");
			buildPiece163.RequiredItems.Add("FineWood", 14, recover: true);
			buildPiece163.RequiredItems.Add("BronzeNails", 4, recover: true);
			buildPiece163.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece163.Category.Set("Lights and Storage");
			BuildPiece buildPiece164 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Railing_26");
			buildPiece164.Tool.Add("GB_Parchment_Tool");
			buildPiece164.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece164.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece164.Category.Set("Stone Building");
			BuildPiece buildPiece165 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Wall_Battlement_26");
			buildPiece165.Tool.Add("GB_Parchment_Tool");
			buildPiece165.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece165.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece165.Category.Set("Stone Building");
			BuildPiece buildPiece166 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wooden_Railing_26");
			buildPiece166.Tool.Add("GB_Parchment_Tool");
			buildPiece166.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece166.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece166.Category.Set("Wood Building");
			BuildPiece buildPiece167 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Hatch");
			buildPiece167.Tool.Add("GB_Parchment_Tool");
			buildPiece167.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece167.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece167.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece167.Category.Set("Stone Building");
			BuildPiece buildPiece168 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Beam_Deco_1");
			buildPiece168.Tool.Add("GB_Parchment_Tool");
			buildPiece168.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece168.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece168.Category.Set("Deco");
			BuildPiece buildPiece169 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Beam_Deco_2");
			buildPiece169.Tool.Add("GB_Parchment_Tool");
			buildPiece169.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece169.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece169.Category.Set("Deco");
			BuildPiece buildPiece170 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Beam_Deco_1");
			buildPiece170.Tool.Add("GB_Parchment_Tool");
			buildPiece170.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece170.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece170.Category.Set("Deco");
			BuildPiece buildPiece171 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Beam_Deco_2");
			buildPiece171.Tool.Add("GB_Parchment_Tool");
			buildPiece171.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece171.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece171.Category.Set("Deco");
			BuildPiece buildPiece172 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Broken_Barrel");
			buildPiece172.Tool.Add("GB_Parchment_Tool");
			buildPiece172.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece172.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece172.Category.Set("Furniture");
			BuildPiece buildPiece173 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Broken_Wood_Pile");
			buildPiece173.Tool.Add("GB_Parchment_Tool");
			buildPiece173.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece173.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece173.Category.Set("Deco");
			BuildPiece buildPiece174 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Small_Rock_Pile");
			buildPiece174.Tool.Add("GB_Parchment_Tool");
			buildPiece174.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece174.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece174.Category.Set("Deco");
			BuildPiece buildPiece175 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Rock_Pile");
			buildPiece175.Tool.Add("GB_Parchment_Tool");
			buildPiece175.RequiredItems.Add("Stone", 6, recover: true);
			buildPiece175.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece175.Category.Set("Deco");
			BuildPiece buildPiece176 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Pile_O_Bones");
			buildPiece176.Tool.Add("GB_Parchment_Tool");
			buildPiece176.RequiredItems.Add("BoneFragments", 4, recover: true);
			buildPiece176.RequiredItems.Add("TrophySkeleton", 2, recover: true);
			buildPiece176.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece176.Category.Set("Deco");
			BuildPiece buildPiece177 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Pillar_Broken_1");
			buildPiece177.Tool.Add("GB_Parchment_Tool");
			buildPiece177.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece177.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece177.Category.Set("Stone Building");
			BuildPiece buildPiece178 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Pillar_Broken_2");
			buildPiece178.Tool.Add("GB_Parchment_Tool");
			buildPiece178.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece178.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece178.Category.Set("Stone Building");
			BuildPiece buildPiece179 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Wall_Broken");
			buildPiece179.Tool.Add("GB_Parchment_Tool");
			buildPiece179.RequiredItems.Add("Stone", 2, recover: true);
			buildPiece179.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece179.Category.Set("Stone Building");
			BuildPiece buildPiece180 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_RoundWall_Corbel");
			buildPiece180.Tool.Add("GB_Parchment_Tool");
			buildPiece180.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece180.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece180.Category.Set("Stone Building");
			BuildPiece buildPiece181 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wall_Corbel_1");
			buildPiece181.Tool.Add("GB_Parchment_Tool");
			buildPiece181.RequiredItems.Add("Stone", 1, recover: true);
			buildPiece181.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece181.Category.Set("Stone Building");
			BuildPiece buildPiece182 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wall_Corbel_2");
			buildPiece182.Tool.Add("GB_Parchment_Tool");
			buildPiece182.RequiredItems.Add("Stone", 1, recover: true);
			buildPiece182.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece182.Category.Set("Stone Building");
			BuildPiece buildPiece183 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Tapestry_1");
			buildPiece183.Tool.Add("GB_Parchment_Tool");
			buildPiece183.RequiredItems.Add("LinenThread", 10, recover: true);
			buildPiece183.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece183.Category.Set("Furniture");
			BuildPiece buildPiece184 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Tapestry_2");
			buildPiece184.Tool.Add("GB_Parchment_Tool");
			buildPiece184.RequiredItems.Add("LinenThread", 10, recover: true);
			buildPiece184.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece184.Category.Set("Furniture");
			BuildPiece buildPiece185 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Tapestry_3");
			buildPiece185.Tool.Add("GB_Parchment_Tool");
			buildPiece185.RequiredItems.Add("LinenThread", 10, recover: true);
			buildPiece185.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece185.Category.Set("Furniture");
			BuildPiece buildPiece186 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Tapestry_4");
			buildPiece186.Tool.Add("GB_Parchment_Tool");
			buildPiece186.RequiredItems.Add("LinenThread", 10, recover: true);
			buildPiece186.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece186.Category.Set("Furniture");
			BuildPiece buildPiece187 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Chimney");
			buildPiece187.Tool.Add("GB_Parchment_Tool");
			buildPiece187.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece187.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece187.Category.Set("Stone Building");
			BuildPiece buildPiece188 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Marble_Fireplace");
			buildPiece188.Tool.Add("GB_Parchment_Tool");
			buildPiece188.RequiredItems.Add("BlackMarble", 5, recover: true);
			buildPiece188.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece188.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece188.Category.Set("Stone Building");
			BuildPiece buildPiece189 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Wood_Beam_26");
			buildPiece189.Tool.Add("GB_Parchment_Tool");
			buildPiece189.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece189.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece189.Category.Set("Wood Building");
			BuildPiece buildPiece190 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Wood_Beam_45");
			buildPiece190.Tool.Add("GB_Parchment_Tool");
			buildPiece190.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece190.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece190.Category.Set("Wood Building");
			BuildPiece buildPiece191 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Wood_Beam");
			buildPiece191.Tool.Add("GB_Parchment_Tool");
			buildPiece191.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece191.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece191.Category.Set("Wood Building");
			BuildPiece buildPiece192 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Wood_Pole");
			buildPiece192.Tool.Add("GB_Parchment_Tool");
			buildPiece192.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece192.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece192.Category.Set("Wood Building");
			BuildPiece buildPiece193 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Wood_Pole_Small");
			buildPiece193.Tool.Add("GB_Parchment_Tool");
			buildPiece193.RequiredItems.Add("Wood", 1, recover: true);
			buildPiece193.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece193.Category.Set("Wood Building");
			BuildPiece buildPiece194 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Wood_Beam_Small");
			buildPiece194.Tool.Add("GB_Parchment_Tool");
			buildPiece194.RequiredItems.Add("Wood", 1, recover: true);
			buildPiece194.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece194.Category.Set("Wood Building");
			BuildPiece buildPiece195 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Arch");
			buildPiece195.Tool.Add("GB_Parchment_Tool");
			buildPiece195.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece195.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece195.Category.Set("Wood Building");
			BuildPiece buildPiece196 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Wall_Roof_Top");
			buildPiece196.Tool.Add("GB_Parchment_Tool");
			buildPiece196.RequiredItems.Add("Wood", 3, recover: true);
			buildPiece196.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece196.Category.Set("Wood Building");
			BuildPiece buildPiece197 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Wall_Roof_Top_45");
			buildPiece197.Tool.Add("GB_Parchment_Tool");
			buildPiece197.RequiredItems.Add("Wood", 3, recover: true);
			buildPiece197.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece197.Category.Set("Wood Building");
			BuildPiece buildPiece198 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Beam_Deco");
			buildPiece198.Tool.Add("GB_Parchment_Tool");
			buildPiece198.RequiredItems.Add("Wood", 1, recover: true);
			buildPiece198.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece198.Category.Set("Wood Building");
			BuildPiece buildPiece199 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Pole_Deco_Down");
			buildPiece199.Tool.Add("GB_Parchment_Tool");
			buildPiece199.RequiredItems.Add("Wood", 1, recover: true);
			buildPiece199.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece199.Category.Set("Wood Building");
			BuildPiece buildPiece200 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Pole_Deco_Up");
			buildPiece200.Tool.Add("GB_Parchment_Tool");
			buildPiece200.RequiredItems.Add("Wood", 1, recover: true);
			buildPiece200.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece200.Category.Set("Wood Building");
			BuildPiece buildPiece201 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Tower_Floor_Deco");
			buildPiece201.Tool.Add("GB_Parchment_Tool");
			buildPiece201.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece201.RequiredItems.Add("Wood", 10, recover: true);
			buildPiece201.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece201.Category.Set("Deco");
			BuildPiece buildPiece202 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Floor_Deco_1");
			buildPiece202.Tool.Add("GB_Parchment_Tool");
			buildPiece202.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece202.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece202.Category.Set("Deco");
			BuildPiece buildPiece203 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Floor_Deco_2");
			buildPiece203.Tool.Add("GB_Parchment_Tool");
			buildPiece203.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece203.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece203.Category.Set("Deco");
			BuildPiece buildPiece204 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Floor_Deco_3");
			buildPiece204.Tool.Add("GB_Parchment_Tool");
			buildPiece204.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece204.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece204.Category.Set("Deco");
			BuildPiece buildPiece205 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Floor_Deco_4");
			buildPiece205.Tool.Add("GB_Parchment_Tool");
			buildPiece205.RequiredItems.Add("Stone", 2, recover: true);
			buildPiece205.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece205.Category.Set("Deco");
			BuildPiece buildPiece206 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Floor_Deco_5");
			buildPiece206.Tool.Add("GB_Parchment_Tool");
			buildPiece206.RequiredItems.Add("Stone", 1, recover: true);
			buildPiece206.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece206.Category.Set("Deco");
			BuildPiece buildPiece207 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_CobWebs");
			buildPiece207.Tool.Add("GB_Parchment_Tool");
			buildPiece207.RequiredItems.Add("LinenThread", 2, recover: true);
			buildPiece207.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece207.Category.Set("Deco");
			BuildPiece buildPiece208 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Rope_Door");
			buildPiece208.Tool.Add("GB_Parchment_Tool");
			buildPiece208.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece208.RequiredItems.Add("LinenThread", 1, recover: true);
			buildPiece208.RequiredItems.Add("BronzeNails", 1, recover: true);
			buildPiece208.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece208.Category.Set("Wood Building");
			BuildPiece buildPiece209 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Ship_Gate");
			buildPiece209.Tool.Add("GB_Parchment_Tool");
			buildPiece209.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece209.RequiredItems.Add("Iron", 5, recover: true);
			buildPiece209.RequiredItems.Add("IronNails", 2, recover: true);
			buildPiece209.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece209.Category.Set("Deco");
			BuildPiece buildPiece210 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Glass_Roof_26");
			buildPiece210.Tool.Add("GB_Parchment_Tool");
			buildPiece210.RequiredItems.Add("Crystal", 2, recover: true);
			buildPiece210.RequiredItems.Add("FineWood", 2, recover: true);
			buildPiece210.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece210.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece210.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece211 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Glass_Roof_45");
			buildPiece211.Tool.Add("GB_Parchment_Tool");
			buildPiece211.RequiredItems.Add("Crystal", 2, recover: true);
			buildPiece211.RequiredItems.Add("FineWood", 2, recover: true);
			buildPiece211.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece211.Category.Set("Wood Building");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece211.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece212 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Stone_Cross");
			buildPiece212.Tool.Add("GB_Parchment_Tool");
			buildPiece212.RequiredItems.Add("Stone", 6, recover: true);
			buildPiece212.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece212.Category.Set("Deco");
			BuildPiece buildPiece213 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Hidden_Floor_Hatch");
			buildPiece213.Tool.Add("GB_Parchment_Tool");
			buildPiece213.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece213.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece213.Category.Set("Wood Building");
			BuildPiece buildPiece214 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Hidden_Stone_Hatch");
			buildPiece214.Tool.Add("GB_Parchment_Tool");
			buildPiece214.RequiredItems.Add("Stone", 4, recover: true);
			buildPiece214.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece214.Category.Set("Stone Building");
			BuildPiece buildPiece215 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Ivy_Bush");
			buildPiece215.Tool.Add("GB_Parchment_Tool");
			buildPiece215.RequiredItems.Add("Wood", 1, recover: true);
			buildPiece215.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece215.Category.Set("Deco");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece215.Prefab, MaterialReplacer.ShaderType.VegetationShader);
			BuildPiece buildPiece216 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Castle_Hearth");
			buildPiece216.Tool.Add("GB_Parchment_Tool");
			buildPiece216.RequiredItems.Add("Stone", 15, recover: true);
			buildPiece216.Crafting.Set(PieceManager.CraftingTable.StoneCutter);
			buildPiece216.Category.Set("Lights and Storage");
			BuildPiece buildPiece217 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Fire_Pit");
			buildPiece217.Tool.Add("GB_Parchment_Tool");
			buildPiece217.RequiredItems.Add("Stone", 5, recover: true);
			buildPiece217.RequiredItems.Add("Wood", 2, recover: true);
			buildPiece217.Category.Set("Lights and Storage");
			BuildPiece buildPiece218 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Large_Crate");
			buildPiece218.Tool.Add("GB_Parchment_Tool");
			buildPiece218.RequiredItems.Add("Wood", 10, recover: true);
			buildPiece218.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece218.Category.Set("Lights and Storage");
			BuildPiece buildPiece219 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Hanging_Wisp_Lamp");
			buildPiece219.Tool.Add("GB_Parchment_Tool");
			buildPiece219.RequiredItems.Add("Iron", 2, recover: true);
			buildPiece219.RequiredItems.Add("Wisp", 1, recover: true);
			buildPiece219.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece219.Category.Set("Lights and Storage");
			BuildPiece buildPiece220 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Hanging_Wisp_Lamp_2");
			buildPiece220.Tool.Add("GB_Parchment_Tool");
			buildPiece220.RequiredItems.Add("Iron", 2, recover: true);
			buildPiece220.RequiredItems.Add("Wisp", 1, recover: true);
			buildPiece220.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece220.Category.Set("Lights and Storage");
			BuildPiece buildPiece221 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Bench");
			buildPiece221.Tool.Add("GB_Parchment_Tool");
			buildPiece221.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece221.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece221.Category.Set("Furniture");
			BuildPiece buildPiece222 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Canopy_Bed");
			buildPiece222.Tool.Add("GB_Parchment_Tool");
			buildPiece222.RequiredItems.Add("FineWood", 10, recover: true);
			buildPiece222.RequiredItems.Add("Tar", 2, recover: true);
			buildPiece222.RequiredItems.Add("JuteRed", 2, recover: true);
			buildPiece222.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece222.Category.Set("Furniture");
			BuildPiece buildPiece223 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Table_Cloth");
			buildPiece223.Tool.Add("GB_Parchment_Tool");
			buildPiece223.RequiredItems.Add("Wood", 5, recover: true);
			buildPiece223.RequiredItems.Add("LeatherScraps", 6, recover: true);
			buildPiece223.RequiredItems.Add("Tar", 2, recover: true);
			buildPiece223.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece223.Category.Set("Furniture");
			BuildPiece buildPiece224 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Halfwall");
			buildPiece224.Tool.Add("GB_Parchment_Tool");
			buildPiece224.RequiredItems.Add("Wood", 6, recover: true);
			buildPiece224.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece224.Category.Set("Wood Building");
			BuildPiece buildPiece225 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Halfwall_Arch");
			buildPiece225.Tool.Add("GB_Parchment_Tool");
			buildPiece225.RequiredItems.Add("Wood", 6, recover: true);
			buildPiece225.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece225.Category.Set("Wood Building");
			BuildPiece buildPiece226 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Halfwall_Solid");
			buildPiece226.Tool.Add("GB_Parchment_Tool");
			buildPiece226.RequiredItems.Add("Wood", 6, recover: true);
			buildPiece226.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece226.Category.Set("Wood Building");
			BuildPiece buildPiece227 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Wall_1x1");
			buildPiece227.Tool.Add("GB_Parchment_Tool");
			buildPiece227.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece227.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece227.Category.Set("Wood Building");
			BuildPiece buildPiece228 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_WoodWall");
			buildPiece228.Tool.Add("GB_Parchment_Tool");
			buildPiece228.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece228.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece228.Category.Set("Wood Building");
			BuildPiece buildPiece229 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_WoodWall_Solid");
			buildPiece229.Tool.Add("GB_Parchment_Tool");
			buildPiece229.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece229.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece229.Category.Set("Wood Building");
			BuildPiece buildPiece230 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Circle_Window");
			buildPiece230.Tool.Add("GB_Parchment_Tool");
			buildPiece230.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece230.RequiredItems.Add("Crystal", 2, recover: true);
			buildPiece230.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece230.Category.Set("Wood Building");
			BuildPiece buildPiece231 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Wall_26");
			buildPiece231.Tool.Add("GB_Parchment_Tool");
			buildPiece231.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece231.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece231.Category.Set("Wood Building");
			BuildPiece buildPiece232 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Wall_45");
			buildPiece232.Tool.Add("GB_Parchment_Tool");
			buildPiece232.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece232.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece232.Category.Set("Wood Building");
			BuildPiece buildPiece233 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_WoodWindow");
			buildPiece233.Tool.Add("GB_Parchment_Tool");
			buildPiece233.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece233.RequiredItems.Add("Crystal", 2, recover: true);
			buildPiece233.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece233.Category.Set("Wood Building");
			BuildPiece buildPiece234 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_WoodWindow_OdinPlus");
			buildPiece234.Tool.Add("GB_Parchment_Tool");
			buildPiece234.RequiredItems.Add("Wood", 8, recover: true);
			buildPiece234.RequiredItems.Add("Crystal", 2, recover: true);
			buildPiece234.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece234.Category.Set("Wood Building");
			BuildPiece buildPiece235 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Wall_Invert_26");
			buildPiece235.Tool.Add("GB_Parchment_Tool");
			buildPiece235.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece235.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece235.Category.Set("Wood Building");
			BuildPiece buildPiece236 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_Wall_Invert_45");
			buildPiece236.Tool.Add("GB_Parchment_Tool");
			buildPiece236.RequiredItems.Add("Wood", 4, recover: true);
			buildPiece236.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece236.Category.Set("Wood Building");
			BuildPiece buildPiece237 = new BuildPiece(PiecePrefabManager.RegisterAssetBundle("gbcastles"), "GB_Wood_RoundWall_Third");
			buildPiece237.Tool.Add("GB_Parchment_Tool");
			buildPiece237.RequiredItems.Add("Wood", 6, recover: true);
			buildPiece237.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece237.Category.Set("Wood Building");
			PrefabManager.RegisterPrefab("gbcastles", "sfx_openbag");
			Assembly executingAssembly = Assembly.GetExecutingAssembly();
			Harmony val = new Harmony("odinplus.plugins.odinskingdom");
			val.PatchAll(executingAssembly);
		}
	}
}
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded]
	internal sealed class <b89b921d-8954-4084-bd4d-1feb826a594e>EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	[CompilerGenerated]
	internal sealed class <bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public <bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
namespace LocalizationManager
{
	[<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(1)]
	[<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(0)]
	[PublicAPI]
	internal class Localizer
	{
		private static readonly Dictionary<string, Dictionary<string, Func<string>>> PlaceholderProcessors;

		private static readonly Dictionary<string, Dictionary<string, string>> loadedTexts;

		private static readonly ConditionalWeakTable<Localization, string> localizationLanguage;

		private static readonly List<WeakReference<Localization>> localizationObjects;

		[<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(2)]
		private static BaseUnityPlugin _plugin;

		private static readonly List<string> fileExtensions;

		private static BaseUnityPlugin plugin
		{
			get
			{
				//IL_009b: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a5: Expected O, but got Unknown
				if (_plugin == null)
				{
					IEnumerable<TypeInfo> source;
					try
					{
						source = Assembly.GetExecutingAssembly().DefinedTypes.ToList();
					}
					catch (ReflectionTypeLoadException ex)
					{
						source = from t in ex.Types
							where t != null
							select t.GetTypeInfo();
					}
					_plugin = (BaseUnityPlugin)Chainloader.ManagerObject.GetComponent((Type)source.First([<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] (TypeInfo t) => t.IsClass && typeof(BaseUnityPlugin).IsAssignableFrom(t)));
				}
				return _plugin;
			}
		}

		private static void UpdatePlaceholderText(Localization localization, string key)
		{
			localizationLanguage.TryGetValue(localization, out var value);
			string text = loadedTexts[value][key];
			if (PlaceholderProcessors.TryGetValue(key, out var value2))
			{
				text = value2.Aggregate(text, [<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] (string current, KeyValuePair<string, Func<string>> kv) => current.Replace("{" + kv.Key + "}", kv.Value()));
			}
			localization.AddWord(key, text);
		}

		public static void AddPlaceholder<T>(string key, string placeholder, ConfigEntry<T> config, [<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(new byte[] { 2, 1, 1 })] Func<T, string> convertConfigValue = null)
		{
			if (convertConfigValue == null)
			{
				convertConfigValue = [<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] [return: <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(1)] (T val) => val.ToString();
			}
			if (!PlaceholderProcessors.ContainsKey(key))
			{
				PlaceholderProcessors[key] = new Dictionary<string, Func<string>>();
			}
			config.SettingChanged += [<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] (object _, EventArgs _) =>
			{
				UpdatePlaceholder();
			};
			if (loadedTexts.ContainsKey(Localization.instance.GetSelectedLanguage()))
			{
				UpdatePlaceholder();
			}
			void UpdatePlaceholder()
			{
				PlaceholderProcessors[key][placeholder] = () => convertConfigValue(config.Value);
				UpdatePlaceholderText(Localization.instance, key);
			}
		}

		public static void AddText(string key, string text)
		{
			List<WeakReference<Localization>> list = new List<WeakReference<Localization>>();
			foreach (WeakReference<Localization> localizationObject in localizationObjects)
			{
				if (localizationObject.TryGetTarget(out var target))
				{
					Dictionary<string, string> dictionary = loadedTexts[localizationLanguage.GetOrCreateValue(target)];
					if (!target.m_translations.ContainsKey(key))
					{
						dictionary[key] = text;
						target.AddWord(key, text);
					}
				}
				else
				{
					list.Add(localizationObject);
				}
			}
			foreach (WeakReference<Localization> item in list)
			{
				localizationObjects.Remove(item);
			}
		}

		public static void Load()
		{
			LoadLocalization(Localization.instance, Localization.instance.GetSelectedLanguage());
		}

		private static void LoadLocalization(Localization __instance, string language)
		{
			if (!localizationLanguage.Remove(__instance))
			{
				localizationObjects.Add(new WeakReference<Localization>(__instance));
			}
			localizationLanguage.Add(__instance, language);
			Dictionary<string, string> dictionary = new Dictionary<string, string>();
			foreach (string item in from f in Directory.GetFiles(Path.GetDirectoryName(Paths.PluginPath), plugin.Info.Metadata.Name + ".*", SearchOption.AllDirectories)
				where fileExtensions.IndexOf(Path.GetExtension(f)) >= 0
				select f)
			{
				string text = Path.GetFileNameWithoutExtension(item).Split(new char[1] { '.' })[1];
				if (dictionary.ContainsKey(text))
				{
					Debug.LogWarning((object)("Duplicate key " + text + " found for " + plugin.Info.Metadata.Name + ". The duplicate file found at " + item + " will be skipped."));
				}
				else
				{
					dictionary[text] = item;
				}
			}
			byte[] array = LoadTranslationFromAssembly("English");
			if (array == null)
			{
				throw new Exception("Found no English localizations in mod " + plugin.Info.Metadata.Name + ". Expected an embedded resource translations/English.json or translations/English.yml.");
			}
			Dictionary<string, string> dictionary2 = new DeserializerBuilder().IgnoreFields().Build().Deserialize<Dictionary<string, string>>(Encoding.UTF8.GetString(array));
			if (dictionary2 == null)
			{
				throw new Exception("Localization for mod " + plugin.Info.Metadata.Name + " failed: Localization file was empty.");
			}
			stri