コード例 #1
0
        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);
        }
コード例 #2
0
        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();
        }