Update StarCraftingInterface.cpp

This commit is contained in:
SilverSokolova 2024-12-18 01:47:22 -06:00 committed by GitHub
parent a52c213ebe
commit 54647362a0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -41,6 +41,7 @@ CraftingPane::CraftingPane(WorldClientPtr worldClient, PlayerPtr player, Json co
m_settings = jsonMerge(assets->json("/interface/windowconfig/crafting.config:default"), m_settings = jsonMerge(assets->json("/interface/windowconfig/crafting.config:default"),
jsonMerge(assets->fetchJson(baseConfig), settings)); jsonMerge(assets->fetchJson(baseConfig), settings));
m_maxSpinCount = m_settings.get("maxSpinCount", 1000);
m_filter = StringSet::from(jsonToStringList(m_settings.get("filter", JsonArray()))); m_filter = StringSet::from(jsonToStringList(m_settings.get("filter", JsonArray())));
GuiReader reader; GuiReader reader;
@ -752,14 +753,14 @@ List<ItemRecipe> CraftingPane::determineRecipes() {
int CraftingPane::maxCraft() { int CraftingPane::maxCraft() {
if (m_player->isAdmin()) if (m_player->isAdmin())
return 1000; return m_maxSpinCount;
auto itemDb = Root::singleton().itemDatabase(); auto itemDb = Root::singleton().itemDatabase();
int res = 0; int res = 0;
if (m_guiList->selectedItem() != NPos && m_guiList->selectedItem() < m_recipes.size()) { if (m_guiList->selectedItem() != NPos && m_guiList->selectedItem() < m_recipes.size()) {
HashMap<ItemDescriptor, uint64_t> normalizedBag = m_player->inventory()->availableItems(); HashMap<ItemDescriptor, uint64_t> normalizedBag = m_player->inventory()->availableItems();
auto selectedRecipe = recipeFromSelectedWidget(); auto selectedRecipe = recipeFromSelectedWidget();
res = itemDb->maxCraftableInBag(normalizedBag, m_player->inventory()->availableCurrencies(), selectedRecipe); res = itemDb->maxCraftableInBag(normalizedBag, m_player->inventory()->availableCurrencies(), selectedRecipe);
res = std::min(res, 1000); res = std::min(res, m_maxSpinCount);
} }
return res; return res;
} }