diff --git a/oregen-manager.lua b/oregen-manager.lua index 9a74d32..b285e65 100644 --- a/oregen-manager.lua +++ b/oregen-manager.lua @@ -70,9 +70,9 @@ local PRODUCTS = { {"minecraft:flint", CRUSHER_ADDR}, {"minecraft:nether_bricks", CRUSHER_ADDR}, {"minecraft:basalt", CRUSHER_ADDR}, - {"create:crushed_raw_silver", WASHER_ADDR}, + {"create:crushed_raw_silver", WASHER_ADDR, 16}, {"minecraft:calcite", CRUSHER_ADDR}, - {"create:crushed_raw_nickel", WASHER_ADDR}, + {"create:crushed_raw_nickel", WASHER_ADDR, 32}, {"tfmg:bauxite", CRUSHER_ADDR}, } @@ -204,9 +204,10 @@ end function cycleItems (ticker, items) local makeRequest - makeRequest = function (item, amt, addr) + makeRequest = function (item, amt, addr, limit_override) local limit = 64 if addr == MELTER_ADDR then limit = 9 end + if limit_override ~= nil then limit = limit_override end if amt < limit then return end local request = { name = item, @@ -217,10 +218,10 @@ function cycleItems (ticker, items) return makeRequest(item, amt - limit, addr) end for _, pair in pairs(PRODUCTS) do - local name, addr = pair[1], pair[2] + local name, addr, limit = pair[1], pair[2], pair[3] if items[name] ~= nil then local amt = items[name] - makeRequest(name, amt, addr) + makeRequest(name, amt, addr, limit) end end end @@ -251,8 +252,10 @@ function getNumCraftable (ingredients, current_stock) return result end -function adjustStock (current_stock, recipe, count) - for _, ingredient in ipairs(recipe.ingredients) do +function adjustStock (current_stock, ingredients, count) + if count == 0 then return end + local item, i_count + for _, ingredient in ipairs(ingredients) do item, i_count = ingredient[1], ingredient[2] current_stock[item] = current_stock[item] - (i_count * count) end @@ -263,7 +266,7 @@ function craftRecipe (ticker, recipe, current_stock) if recipe.limit ~= nil then count = math.min(count, recipe.limit) end - adjustStock(current_stock, recipe, count) + adjustStock(current_stock, recipe.ingredients, count) local createRequest createRequest = function (recipe, i) if i == nil then i = 1 end