Decompiled source of OdinsKingdom v1.2.20
OdinsKingdom.dll
Decompiled a month ago
The result has been truncated due to the large size, download it to view full contents!
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