Damaged

Trash n Craft 2.3.1

Oct 20th, 2015
603
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local trashListChest = peripheral.wrap("back")
  2. local aeNetwork = peripheral.wrap("right")
  3. local craftListChest = peripheral.wrap("top")
  4. local alwaysCraftListChest = peripheral.wrap("left")
  5. local loopCounter = 3601
  6.  
  7. function processTrash ()
  8.    if unexpected_condition then error() end
  9.    trash_list = {}
  10.    for i,data in pairs(trashListChest.getAllStacks(false)) do
  11.       data_stack = {["id"] = data.id, ["dmg"] = data.dmg}
  12.       network_item = aeNetwork.getItemDetail(data_stack, false)
  13.       if network_item ~= nil and data_stack ~= nil and data ~= nil then
  14.          while network_item.qty > ( data.qty * 1000 ) do
  15.             if trash_list[data.display_name] == nil then
  16.                trash_list[data.display_name] = aeNetwork.exportItem(data_stack, "up", math.min(network_item.qty - ( data.qty * 1000 ), data.max_size)).size
  17.             else
  18.                trash_list[data.display_name] = trash_list[data.display_name] + aeNetwork.exportItem(data_stack, "up", math.min(network_item.qty - ( data.qty * 1000 ), data.max_size)).size
  19.             end
  20.             sleep(.05)
  21.             network_item = aeNetwork.getItemDetail(data_stack, false)
  22.             if ( network_item == nil ) then
  23.                break
  24.             end
  25.          end
  26.       end
  27.    end
  28.    if trash_list ~= nil then
  29.       print("Cleaned out:")
  30.       for name,i in pairs(trash_list) do
  31.          print(name.." - "..i)
  32.       end
  33.    end
  34. end
  35.  
  36. function processCrafting ()
  37.    if unexpected_condition then error() end
  38.    for i,data in pairs(craftListChest.getAllStacks(false)) do
  39.       data_stack = {["id"] = data.id, ["dmg"] = data.dmg}
  40.       network_item = aeNetwork.getItemDetail(data_stack, false)
  41.       if network_item ~= nil and data_stack ~= nil and data ~= nil then
  42.          if data["max_size"] == 1 then
  43.             data["max_size"] = 5
  44.          end
  45.          if ( ( data.qty * data.max_size ) - network_item.qty ) > 0 then
  46.             print("Crafting:"..((data.qty * data.max_size) - network_item.qty ).." x "..data.display_name)
  47.             aeNetwork.requestCrafting(network_item, ( data.qty * data.max_size ) - network_item.qty)
  48.             sleep(1)
  49.             loopCounter = loopCounter + 1
  50.          end
  51.       end
  52.    end
  53. end
  54.  
  55. function processAlwaysCraft ()
  56.    if unexpected_condition then error() end
  57.    for i,data in pairs(alwaysCraftListChest.getAllStacks(false)) do
  58.       data_stack = {["id"] = data.id, ["dmg"] = data.dmg}
  59.       network_item = aeNetwork.getItemDetail(data_stack, false)
  60.       if network_item ~= nil and data_stack ~= nil and data ~= nil then
  61.          print("Crafting:"..data.qty.." x "..data.display_name)
  62.          aeNetwork.requestCrafting(network_item, ( data.qty ) )
  63.          sleep(1)
  64.          loopCounter = loopCounter + 1
  65.       end
  66.    end
  67. end
  68.  
  69. while true do
  70.    if pcall(processTrash) then
  71.       sleep(30)
  72.       loopCounter = loopCounter + 30
  73.    else
  74.       print("Error trashing, trying to run again...")
  75.       sleep(1)
  76.       loopCounter = loopCounter + 1
  77.    end
  78.    if loopCounter >= 3600 then
  79.       if pcall(processCrafting) then
  80.          loopCounter = 0
  81.       else
  82.          print("Error crafting, trying to run again...")
  83.       end
  84.    end
  85.    if pcall(processAlwaysCraft) then
  86.    else
  87.       print("Error crafting, trying to run again...")
  88.    end
  89. end
Advertisement
Add Comment
Please, Sign In to add comment