public override void WorldLoaded() { if (!ModIsActive) { return; } _currentCache = null; var recipes = DefDatabase <RecipeDef> .AllDefsListForReading .Where(r => r.defName.StartsWith("MateriaRecipe")) .ToDictionary(r => r.defName, r => r); _database = UtilityWorldObjectManager.GetUtilityWorldObject <MateriaDatabase>(); if (_database.RecipeSpecs.Count == 0) { Logger.Message($"Generating {recipes.Count} new recipe."); var recipeGen = new RecipesGen(_random); recipeGen.Populate(_database, recipes.Values.ToQueue()); EffectsGen.PopulateEffects(_database.RecipeSpecs); CreateOptions(); } Logger.Message($"Applying {_database.RecipeSpecs.Count} recipe specifications."); var cookingRecipeUsers = GetCookingRecipeUsers(); foreach (var spec in _database.RecipeSpecs) { var recipe = recipes[spec.Name]; spec.ApplyTo(recipe, cookingRecipeUsers); } _currentCache = _database.RecipeSpecs.FirstOrDefault(r => r.IsUnlocking); }
public override void DefsLoaded() { if (!ModIsActive) { return; } RemoveCookingRecipes = Settings.GetHandle("removeCookingRecipes", "Remove Normal Recipes".Translate(), "Removes every cooking recipe that produces a meal, except for Simple Meal and Pemmican.".Translate(), true); if (RemoveCookingRecipes) { RemoveNormalCookingRecipes(); } EffectsGen.CreateEmptyHediffs(); }