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; return;
Materials.Clear(); Materials.Clear();
foreach (var (id, amount) in materials.Storage) foreach (var (id, amount) in materials.Storage)
{ {
if (!_prototypeManager.TryIndex(id, out MaterialPrototype? material)) if (!_prototypeManager.TryIndex(id, out MaterialPrototype? material))
continue; continue;
var mat = Loc.GetString("lathe-menu-material-display",
("material", material.Name), ("amount", amount)); if (amount > 0)
Materials.AddItem(mat, _spriteSystem.Frame0(material.Icon), false); {
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); PopulateRecipes(lathe);
} }

View File

@@ -6,3 +6,4 @@ lathe-menu-search-designs = Search designs
lathe-menu-search-filter = Filter lathe-menu-search-filter = Filter
lathe-menu-amount = Amount: lathe-menu-amount = Amount:
lathe-menu-material-display = {$material} {$amount} cm³ lathe-menu-material-display = {$material} {$amount} cm³
lathe-menu-no-materials-message = No materials loaded