diff --git a/oregen-manager.lua b/oregen-manager.lua index 0ada26e..9a74d32 100644 --- a/oregen-manager.lua +++ b/oregen-manager.lua @@ -24,6 +24,10 @@ local KEEP_STOCKED = { ["minecraft:gravel"] = 0, ["minecraft:netherite_scrap"] = 4, ["minecraft:nether_bricks"] = 0, + ["oreganized:silver_nugget"] = 4 * 64, + ["tfmg:nickel_nugget"] = 4 * 64, + ["tfmg:lithium_nugget"] = 64, + ["tfmg:bauxite_powder"] = 4 * 64, } local GLOBAL_LIMS = { @@ -44,6 +48,10 @@ local LIMIT_EXCEPTIONS = { lower = 0, upper = 4, }, + ["tfmg:lithium_nugget"] = { + lower = -1, + upper = 0, + }, } -- if these exist, they will be used up @@ -61,6 +69,11 @@ local PRODUCTS = { {"minecraft:brick", HAUNTER_ADDR}, {"minecraft:flint", CRUSHER_ADDR}, {"minecraft:nether_bricks", CRUSHER_ADDR}, + {"minecraft:basalt", CRUSHER_ADDR}, + {"create:crushed_raw_silver", WASHER_ADDR}, + {"minecraft:calcite", CRUSHER_ADDR}, + {"create:crushed_raw_nickel", WASHER_ADDR}, + {"tfmg:bauxite", CRUSHER_ADDR}, } -- these will be crafted when needed @@ -126,6 +139,27 @@ local RECIPES = { }, addr = PRESS_ADDR, }, + ["oreganized:silver_nugget"] = { + ingredients = { + {"oreganized:silver_nugget", 60}, + {"minecraft:gravel", 24}, + }, + addr = PRESS_ADDR, + }, + ["tfmg:nickel_nugget"] = { + ingredients = { + {"tfmg:nickel_nugget", 64}, + {"minecraft:gravel", 64}, + }, + addr = PRESS_ADDR, + }, + ["tfmg:bauxite_powder"] = { + ingredients = { + {"tfmg:bauxite_powder", 64}, + {"minecraft:gravel", 64}, + }, + addr = PRESS_ADDR, + }, } local SLEEP_T = 20 @@ -217,11 +251,19 @@ function getNumCraftable (ingredients, current_stock) return result end -function craftRecipe (ticker, recipe, count) - if count == nil then count = 1 end +function adjustStock (current_stock, recipe, count) + 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 count = math.min(count, recipe.limit) end + adjustStock(current_stock, recipe, count) local createRequest createRequest = function (recipe, i) if i == nil then i = 1 end @@ -263,8 +305,7 @@ function run (ticker, export_storage, current_modes) if mode[1] == "recipe" then -- make as many recipes as you can with current stock local recipe = RECIPES[item] - local count = getNumCraftable(recipe.ingredients, stock_amounts) - craftRecipe(ticker, recipe, count) + craftRecipe(ticker, recipe, stock_amounts) elseif mode[1] == "export" then local export_amt = export_amounts[item] if export_amt == nil then export_amt = 0 end