public static void generateTypes() { ServerLog.LogAsyncMessage(new LogMessage("Begining " + NAME + " generation", LogType.Log)); using (StreamWriter outputFile = new StreamWriter(System.IO.Path.Combine(GenerateTypeConfig.MOD_FOLDER, "Log.txt"), true)) { outputFile.WriteLine("Begining " + NAME + " generation"); } JSONNode list = new JSONNode(NodeType.Array); if (GenerateTypeConfig.DecorTypes.TryGetValue(NAME, out List <DecorType> blockTypes)) { foreach (var currentType in blockTypes) { //ServerLog.LogAsyncMessage(new LogMessage("Found parent " + currentType.type, LogType.Log)); //ServerLog.LogAsyncMessage(new LogMessage("Found texture " + currentType.texture, LogType.Log)); var typeName = GenerateTypeConfig.TYPEPREFIX + NAME + "." + currentType.type; ServerLog.LogAsyncMessage(new LogMessage("Generating type " + typeName, LogType.Log)); using (StreamWriter outputFile = new StreamWriter(System.IO.Path.Combine(GenerateTypeConfig.MOD_FOLDER, "Log.txt"), true)) { outputFile.WriteLine("Generating type " + typeName); } var Typesbase = new TypeSpecs(); Typesbase.baseType.categories.Add(currentType.type); Typesbase.typeName = typeName; Typesbase.baseType.sideall = currentType.texture; list.AddToArray(Typesbase.JsonSerialize()); } } ItemTypesServer.BlockRotator.Patches.AddPatch(new ItemTypesServer.BlockRotator.BlockGeneratePatch(GenerateTypeConfig.MOD_FOLDER, -99999, list)); }