public void OnAddResearchables() { StringBuilder sb = new StringBuilder(); APILogger.LogToFile("-------------------Research Loaded----------------------"); var i = 0; foreach (var s in LoadedAssembalies) { if (Activator.CreateInstance(s) is IPandaResearch pandaResearch && !string.IsNullOrEmpty(pandaResearch.name)) { sb.Append(pandaResearch.name + ", "); pandaResearch.BeforeRegister(); for (var l = 1; l <= pandaResearch.NumberOfLevels; l++) { var research = new PandaResearchable(pandaResearch, l); research.ResearchComplete += pandaResearch.ResearchComplete; foreach (var item in research.Recipes) { if (item.UnlockType == Science.ERecipeUnlockType.Recipe) { if (ServerManager.RecipeStorage.TryGetRecipe(new Recipes.RecipeKey(item.Identifier), out var recipe)) { ServerManager.RecipeStorage.AddScienceRequirement(recipe); } } else { if (ServerManager.RecipeStorage.TryGetRecipes(item.Identifier, out var recipe)) { for (int r = 0; r < recipe.Count; r++) { ServerManager.RecipeStorage.AddScienceRequirement(recipe[r]); } } } } research.Register(); } pandaResearch.OnRegister(); i++; if (i > 5) { i = 0; sb.AppendLine(); } } } APILogger.LogToFile(sb.ToString()); APILogger.LogToFile("---------------------------------------------------------"); }
public void OnAddResearchables() { StringBuilder sb = new StringBuilder(); PandaLogger.Log(ChatColor.lime, "-------------------Research Loaded----------------------"); var i = 0; foreach (var s in LoadedAssembalies) { if (Activator.CreateInstance(s) is IPandaResearch pandaResearch && !string.IsNullOrEmpty(pandaResearch.name)) { var research = new PandaResearchable(pandaResearch, 1); research.ResearchComplete += pandaResearch.ResearchComplete; if (pandaResearch.NumberOfLevels > 1) { for (var l = 2; l <= pandaResearch.NumberOfLevels; l++) { research = new PandaResearchable(pandaResearch, l); research.ResearchComplete += pandaResearch.ResearchComplete; } } sb.Append(pandaResearch.name + ", "); pandaResearch.OnRegister(); i++; if (i > 5) { sb.Append("</color>"); i = 0; sb.AppendLine(); sb.Append("<color=lime>"); } } } PandaLogger.Log(ChatColor.lime, sb.ToString()); PandaLogger.Log(ChatColor.lime, "---------------------------------------------------------"); }