fix selection panel contents
This commit is contained in:
@@ -2,20 +2,23 @@
|
||||
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "BuildingId.h"
|
||||
#include "ItemChipRow.h"
|
||||
#include "SelectionContent.h"
|
||||
|
||||
struct Building;
|
||||
struct BuildingTarget;
|
||||
class BufferSection;
|
||||
class ProductionSection;
|
||||
class RecipeSummaryRow;
|
||||
class SectionBox;
|
||||
|
||||
// Shared body of the four cards that show one building with buffers -- the Miner and
|
||||
// Assembler, the Smelter and Reprocessing Plant, the Shipyard, and the Salvage Bay
|
||||
// (REQ-UI-SELECTION-CONTENT). All four show the same header identity and status, recipe
|
||||
// summary, buffer contents and production progress; they differ only in what one
|
||||
// production cycle costs and how long it takes, which is what the subclass supplies.
|
||||
// (REQ-UI-SELECTION-CONTENT). All four show the same header status, recipe summary,
|
||||
// buffer contents and production progress; they differ only in what one production cycle
|
||||
// costs and how long it takes, which is what the subclass supplies.
|
||||
//
|
||||
// This is implementation sharing, not a catalog entry: every concrete subclass is one
|
||||
// row of the content catalog.
|
||||
@@ -29,6 +32,14 @@ protected:
|
||||
{
|
||||
std::map<std::string, int> perCycleInputs;
|
||||
std::map<std::string, int> perCycleOutputs;
|
||||
|
||||
// Items the card lists whether or not they are currently in the buffers, for a
|
||||
// building whose recipe is implicit and so has nothing to name while it sits
|
||||
// between cycles (REQ-BLD-SMELTER, REQ-BLD-REPROCESSING). They carry no
|
||||
// per-cycle denominator, since no one recipe is in force.
|
||||
std::vector<std::string> handledInputs;
|
||||
std::vector<std::string> handledOutputs;
|
||||
|
||||
// False when the building produces nothing at all (the Salvage Bay,
|
||||
// REQ-BLD-SALVAGE-BAY) or has no recipe or schematic selected yet: the
|
||||
// production section is then not shown (REQ-UI-PRODUCTION-PROGRESS).
|
||||
@@ -55,8 +66,20 @@ private:
|
||||
void refreshConfiguration() override;
|
||||
void refreshRuntime() override;
|
||||
|
||||
BuildingId m_id;
|
||||
RecipeSummaryRow* m_recipeSummary;
|
||||
BufferSection* m_buffers;
|
||||
std::vector<ItemChipRow::Entry> buildInputEntries(const Building& building,
|
||||
const CycleInfo& cycle) const;
|
||||
std::vector<ItemChipRow::Entry> buildOutputEntries(const Building& building,
|
||||
const CycleInfo& cycle) const;
|
||||
|
||||
BuildingId m_id;
|
||||
|
||||
RecipeSummaryRow* m_recipeSummary;
|
||||
|
||||
// Input buffers, production progress, output buffer -- in that order, so the card
|
||||
// reads the way the materials flow (REQ-UI-SINGLE-SELECTION).
|
||||
SectionBox* m_inputSection;
|
||||
ItemChipRow* m_inputChips;
|
||||
ProductionSection* m_production;
|
||||
SectionBox* m_outputSection;
|
||||
ItemChipRow* m_outputChips;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user