diff --git a/biofuel-manager.lua b/biofuel-manager.lua index de23200..57a6267 100644 --- a/biofuel-manager.lua +++ b/biofuel-manager.lua @@ -57,7 +57,6 @@ local order = { end, biofuel = function (amt, ticker) -- TODO - amt = math.floor(amt / 125) local request = function () local biomass = { name = "createaddition:biomass", @@ -73,20 +72,32 @@ local order = { } return biomass, sugar, cinder_flour end - local notEnoughMaterials = function () - -- TODO + local enoughMaterials = function () -- use ticker to test ( biomass >= 32, sugar >= 16, and cinder flour >= 16 + local check = {} + check["createaddition:biomass"] = 32 + check["minecraft:sugar"] = 16 + check["create:cinder_flour"] = 16 + for _, item in pairs(ticker.stock()) do + if check[item.name] then + check[item.name] = check[item.name] - item.count + end + end + local enough_materials = true + for name, count in pairs(check) do + if count > 0 then enough_materials = false end + end + return enough_materials end - local make_order = function (amt_to_make, amt_made) - if amt_to_make <= 0 then return amt_made end - if notEnoughMaterials() then return amt_made end - local count = ticker.requestFiltered(BIOFUEL_PKG, request()) - if count == 0 then return amt_made end - amt_to_make = amt_to_make - count - amt_made = amt_made + count - return make_order (amt_to_make, amt_made) + + local amt_made = 0 + while amt_made < amt do + if not enoughMaterials() then break end + ticker.requestFiltered(BIOFUEL_PKG, request()) + amt_made = amt_made + 2000 + os.sleep(1) end - return make_order (amt, 0) + return amt_made end, }