Add label to lathe UI (and friends) to show when no materials are loaded (#12893)

Also, don't list materials which have previously been loaded and
completely consumed.

Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
This commit is contained in:
eoineoineoin
2022-12-20 03:54:42 +00:00
committed by GitHub
parent 3b48051e33
commit f08b1be48c
2 changed files with 16 additions and 3 deletions

View File

@@ -67,14 +67,26 @@ public sealed partial class LatheMenu : DefaultWindow
return;
Materials.Clear();
foreach (var (id, amount) in materials.Storage)
{
if (!_prototypeManager.TryIndex(id, out MaterialPrototype? material))
continue;
var mat = Loc.GetString("lathe-menu-material-display",
("material", material.Name), ("amount", amount));
Materials.AddItem(mat, _spriteSystem.Frame0(material.Icon), false);
if (amount > 0)
{
var mat = Loc.GetString("lathe-menu-material-display",
("material", material.Name), ("amount", amount));
Materials.AddItem(mat, _spriteSystem.Frame0(material.Icon), false);
}
}
if (Materials.Count == 0)
{
var noMaterialsMsg = Loc.GetString("lathe-menu-no-materials-message");
Materials.AddItem(noMaterialsMsg, null, false);
}
PopulateRecipes(lathe);
}