Count emerging items in the panel's output total
The selected-building panel counted only outputBuffer.items, so items that had moved onto the output virtual belt (REQ-MAT-OUTPUT-EMERGE) disappeared from the Output line while animating. Count buffered + emerging, and drive the fallback branch off that combined count so a building whose output is entirely mid-emergence still shows its Output line. Input display unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DZR44tA8sn4dPqDzAVXyps
This commit is contained in:
@@ -479,13 +479,24 @@ void SelectedBuildingPanel::refreshBuffers(const Building* b)
|
||||
bufText += "\n";
|
||||
}
|
||||
|
||||
// Count output-side items: buffered plus still-emerging on the output belts.
|
||||
// An emerging item still belongs to the output buffer (REQ-MAT-OUTPUT-EMERGE),
|
||||
// so it must be included here or it would vanish from the panel while animating.
|
||||
std::map<std::string, int> outCounts;
|
||||
for (const Item& item : b->outputBuffer.items)
|
||||
{
|
||||
outCounts[item.type.id]++;
|
||||
}
|
||||
for (const std::vector<BeltItemSlot>& lane : b->emergingItems)
|
||||
{
|
||||
for (const BeltItemSlot& slot : lane)
|
||||
{
|
||||
outCounts[slot.item.type.id]++;
|
||||
}
|
||||
}
|
||||
|
||||
if (recipe && !recipe->outputs.empty())
|
||||
{
|
||||
std::map<std::string, int> outCounts;
|
||||
for (const Item& item : b->outputBuffer.items)
|
||||
{
|
||||
outCounts[item.type.id]++;
|
||||
}
|
||||
bufText += tr("Output: ");
|
||||
for (const RecipeOutput& out : recipe->outputs)
|
||||
{
|
||||
@@ -497,13 +508,8 @@ void SelectedBuildingPanel::refreshBuffers(const Building* b)
|
||||
+ "/" + QString::number(out.amount) + " ";
|
||||
}
|
||||
}
|
||||
else if (!b->outputBuffer.items.empty())
|
||||
else if (!outCounts.empty())
|
||||
{
|
||||
std::map<std::string, int> outCounts;
|
||||
for (const Item& item : b->outputBuffer.items)
|
||||
{
|
||||
outCounts[item.type.id]++;
|
||||
}
|
||||
bufText += tr("Output: ");
|
||||
for (const std::pair<const std::string, int>& entry : outCounts)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user