Damaged

Trash n Craft

Aug 4th, 2014
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. local trashListChest = peripheral.wrap("back")
  3. local aeNetwork = peripheral.wrap("right")
  4. local craftListChest = peripheral.wrap("top")
  5. local loopCounter = 0
  6. local delayCrafting = {}
  7.  
  8. while true do
  9.    for i,data in pairs(craftListChest.getAllStacks()) do
  10.       if delayCrafting[tostring(data["id"]..data["dmg"])] ~= nil then
  11.          delayCrafting[tostring(data["id"]..data["dmg"])] = delayCrafting[tostring(data["id"]..data["dmg"])] - 1
  12.          if delayCrafting[tostring(data["id"]..data["dmg"])] < 0 then
  13.             delayCrafting[tostring(data["id"]..data["dmg"])] = nil
  14.          end
  15.       else
  16.          if data["maxSize"] == 1 then
  17.             data["maxSize"] = 5
  18.          end
  19.          if ( ( data["qty"] * data["maxSize"] ) - aeNetwork.countOfItemType(data["id"], data["dmg"]) ) > 0 then
  20.             print("Crafting:"..data["maxSize"].." x "..data["id"])
  21.             aeNetwork.requestCrafting({ ["id"] = data["id"], ["dmg"] = data["dmg"], ["qty"] = ( ( data["qty"] * data["maxSize"] ) - aeNetwork.countOfItemType(data["id"], data["dmg"]) ) })
  22.             sleep(1)
  23.             loopCounter = loopCounter + 1
  24.             if data["id"] > 400 then
  25.                delayCrafting[tostring(data["id"]..data["dmg"])] = 300
  26.                print("Delaying future crafting due to complexity")
  27.             end
  28.          end
  29.       end
  30.    end
  31.    loopCounter = loopCounter + 1
  32.    if loopCounter > 30 then
  33.       trashList = {}
  34.       for i,data in pairs(trashListChest.getAllStacks()) do
  35.          while aeNetwork.countOfItemType(data["id"], data["dmg"]) > ( data["qty"] * 1000 ) do
  36.             print("trying to delete item:"..data["name"])
  37.             local status, outputData = pcall( function () return aeNetwork.extractItem({ ["id"] = data["id"], ["dmg"] = data["dmg"], ["qty"] = math.min(aeNetwork.countOfItemType(data["id"], data["dmg"]) - ( data["qty"] * 1000 ), data["maxSize"]) }, "up") end )
  38.             if not status then
  39.                print("Error")
  40.                break
  41.             end
  42.             if trashList[data["name"]] == nil then
  43.                trashList[data["name"]] = outputData
  44.             else
  45.                trashList[data["name"]] = trashList[data["name"]] + outputData
  46.             end
  47.             print("success")
  48.             sleep(.05)
  49.          end
  50.       end
  51.       print("Cleaned out:")
  52.       for name,i in pairs(trashList) do
  53.          print(name.." - "..i)
  54.       end
  55.       loopCounter = 0
  56.    end
  57.    print("sleep then loop")
  58.    sleep(1)
  59. end
Advertisement
Add Comment
Please, Sign In to add comment