make recipe selection and buffers of smelter and reprocessing plant behave like other buildings, except that a recipe may be chosen automatically
This commit is contained in:
@@ -25,10 +25,16 @@ enum class ProductionStatus
|
||||
// Pure functions of the config and the building itself — they read no factory
|
||||
// state, so they are free functions rather than BuildingSystem members.
|
||||
|
||||
// Recipes this building could run: every recipe of its type for an auto-recipe
|
||||
// building (REQ-BLD-SMELTER, REQ-BLD-REPROCESSING), otherwise just its selected one.
|
||||
std::vector<const RecipeDef*> gatherCandidateRecipes(const GameConfig& config,
|
||||
const Building& b);
|
||||
// The recipe this building runs, or null when it has none selected. Every building type
|
||||
// holds exactly one, a Smelter and a Reprocessing Plant included -- they only differ in
|
||||
// how theirs first gets set (REQ-BLD-AUTO-RECIPE).
|
||||
const RecipeDef* getSelectedRecipe(const GameConfig& config, const Building& b);
|
||||
|
||||
// The recipe an auto-recipe building adopts when this material is offered to it while it
|
||||
// has none: the first recipe of its type, in config order, that consumes the material
|
||||
// (REQ-BLD-AUTO-RECIPE). Null when no recipe of the type takes it.
|
||||
const RecipeDef* findAutoRecipeFor(const GameConfig& config, BuildingType type,
|
||||
const ItemType& item);
|
||||
|
||||
// True when the building's input buffer holds every ingredient the recipe needs.
|
||||
bool recipeInputsAvailable(const Building& b, const RecipeDef& recipe);
|
||||
|
||||
Reference in New Issue
Block a user