fix output display
This commit is contained in:
@@ -231,7 +231,25 @@ void SelectedBuildingPanel::refreshBuffers(const Building* b)
|
||||
bufText += "\n";
|
||||
}
|
||||
|
||||
if (!b->outputBuffer.items.empty())
|
||||
if (recipe && !recipe->outputs.empty())
|
||||
{
|
||||
std::map<std::string, int> outCounts;
|
||||
for (const Item& item : b->outputBuffer.items)
|
||||
{
|
||||
outCounts[item.type.id]++;
|
||||
}
|
||||
bufText += "Output: ";
|
||||
for (const RecipeOutput& out : recipe->outputs)
|
||||
{
|
||||
const std::map<std::string, int>::const_iterator it =
|
||||
outCounts.find(out.item);
|
||||
const int count = (it != outCounts.end()) ? it->second : 0;
|
||||
bufText += QString::fromStdString(out.item)
|
||||
+ ": " + QString::number(count)
|
||||
+ "/" + QString::number(out.amount) + " ";
|
||||
}
|
||||
}
|
||||
else if (!b->outputBuffer.items.empty())
|
||||
{
|
||||
std::map<std::string, int> outCounts;
|
||||
for (const Item& item : b->outputBuffer.items)
|
||||
@@ -241,21 +259,8 @@ void SelectedBuildingPanel::refreshBuffers(const Building* b)
|
||||
bufText += "Output: ";
|
||||
for (const std::pair<const std::string, int>& entry : outCounts)
|
||||
{
|
||||
int perCycle = 0;
|
||||
if (recipe)
|
||||
{
|
||||
for (const RecipeOutput& out : recipe->outputs)
|
||||
{
|
||||
if (out.item == entry.first) { perCycle = out.amount; break; }
|
||||
}
|
||||
}
|
||||
bufText += QString::fromStdString(entry.first)
|
||||
+ ": " + QString::number(entry.second);
|
||||
if (perCycle > 0)
|
||||
{
|
||||
bufText += "/" + QString::number(perCycle);
|
||||
}
|
||||
bufText += " ";
|
||||
+ ": " + QString::number(entry.second) + " ";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user