diff --git a/biofuel-manager.lua b/biofuel-manager.lua index 57a6267..de23200 100644 --- a/biofuel-manager.lua +++ b/biofuel-manager.lua @@ -57,6 +57,7 @@ local order = { end, biofuel = function (amt, ticker) -- TODO + amt = math.floor(amt / 125) local request = function () local biomass = { name = "createaddition:biomass", @@ -72,32 +73,20 @@ local order = { } return biomass, sugar, cinder_flour end - local enoughMaterials = function () + local notEnoughMaterials = function () + -- TODO -- 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 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) + 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) end - return amt_made + return make_order (amt, 0) end, }