feat: track item usage better

This commit is contained in:
Emerson Rosen-Jones 2026-01-03 19:26:39 -05:00
parent 528d5f7f80
commit 04f6d66e56

View file

@ -251,11 +251,19 @@ function getNumCraftable (ingredients, current_stock)
return result return result
end end
function craftRecipe (ticker, recipe, count) function adjustStock (current_stock, recipe, count)
if count == nil then count = 1 end for _, ingredient in ipairs(recipe.ingredients) do
item, i_count = ingredient[1], ingredient[2]
current_stock[item] = current_stock[item] - (i_count * count)
end
end
function craftRecipe (ticker, recipe, current_stock)
local count = getNumCraftable(recipe.ingredients, current_stock)
if recipe.limit ~= nil then if recipe.limit ~= nil then
count = math.min(count, recipe.limit) count = math.min(count, recipe.limit)
end end
adjustStock(current_stock, recipe, count)
local createRequest local createRequest
createRequest = function (recipe, i) createRequest = function (recipe, i)
if i == nil then i = 1 end if i == nil then i = 1 end
@ -297,8 +305,7 @@ function run (ticker, export_storage, current_modes)
if mode[1] == "recipe" then if mode[1] == "recipe" then
-- make as many recipes as you can with current stock -- make as many recipes as you can with current stock
local recipe = RECIPES[item] local recipe = RECIPES[item]
local count = getNumCraftable(recipe.ingredients, stock_amounts) craftRecipe(ticker, recipe, stock_amounts)
craftRecipe(ticker, recipe, count)
elseif mode[1] == "export" then elseif mode[1] == "export" then
local export_amt = export_amounts[item] local export_amt = export_amounts[item]
if export_amt == nil then export_amt = 0 end if export_amt == nil then export_amt = 0 end