fix output display

This commit is contained in:
2026-04-21 20:27:27 +02:00
parent d03e0f1c0c
commit 5e4d0aacc8

View File

@@ -231,7 +231,25 @@ void SelectedBuildingPanel::refreshBuffers(const Building* b)
bufText += "\n"; 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; std::map<std::string, int> outCounts;
for (const Item& item : b->outputBuffer.items) for (const Item& item : b->outputBuffer.items)
@@ -241,21 +259,8 @@ void SelectedBuildingPanel::refreshBuffers(const Building* b)
bufText += "Output: "; bufText += "Output: ";
for (const std::pair<const std::string, int>& entry : outCounts) 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) bufText += QString::fromStdString(entry.first)
+ ": " + QString::number(entry.second); + ": " + QString::number(entry.second) + " ";
if (perCycle > 0)
{
bufText += "/" + QString::number(perCycle);
}
bufText += " ";
} }
} }