Blackhome

Main Storage Management

May 2nd, 2025 (edited)
504
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.80 KB | Gaming | 0 0
  1.     -- pastebin get wngsBEP2 StorageManager
  2.  
  3.     TCE = require("TCE")
  4.  
  5.     SM = {}
  6.  
  7.     local function varInList(var, list)
  8.         for _, v1 in ipairs(list) do
  9.             if var == v1 then return true end
  10.         end
  11.         return false
  12.     end
  13.  
  14.     local function existsOutgoingTask()
  15.         local taskOut = SDM.getOutgoingTasks()
  16.         if taskOut and #textutils.serialize(taskOut) > 2 then
  17.             return true
  18.         end
  19.         return false
  20.     end
  21.  
  22.     function SM.moveOutgoingToFinished()
  23.         local taskList = SDM.getOutgoingTasks()
  24.         local task = table.remove(taskList, 1)
  25.         SDM.setOutgoingTasks(taskList)
  26.         if task then
  27.             SDM.setFinishedTask(task)
  28.         end
  29.     end
  30.  
  31.     function SM.main()
  32.         local creatorLists = {TCE.createFromRequest, TCE.createFromIncoming, TCE.createChest, TCE.createChestCheck}
  33.         local needChestsCreators = {TCE.createFromIncoming}
  34.         local cnt = 1
  35.         local cntSleep = 0
  36.         while true do
  37.             if FM.getEmptyDiskAmount() >= 2 and not existsOutgoingTask() then
  38.                 local taskCreator = creatorLists[cnt]
  39.                 if not SDM.chestAvailable() then
  40.                     while varInList(taskCreator, {needChestsCreators}) do
  41.                         cnt = cnt % #createFunctions + 1
  42.                         taskCreator = creatorLists[cnt]
  43.                     end
  44.                 end
  45.                 if not taskCreator() then
  46.                     cntSleep = cntSleep + 1
  47.                 end
  48.                 cnt = cnt % #creatorLists + 1
  49.             end
  50.  
  51.             TCE.evaluateTasks()
  52.  
  53.             if cntSleep == #creatorLists then
  54.                 sleep(0.5)
  55.                 cntSleep = 0
  56.             end
  57.             sleep(0.3)
  58.         end
  59.     end
  60.  
  61.  
  62.     return SM
Advertisement
Add Comment
Please, Sign In to add comment