Advertisement
Guest User

startup.lua

a guest
Apr 21st, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.82 KB | None | 0 0
  1. modem = peripheral.wrap("left")
  2. interface = peripheral.wrap("front")
  3. modem.open(3)
  4. modem.open(4)
  5. modem.open(69)
  6. table = {}
  7. resultTable = {}
  8. turtleNum = 12
  9.  
  10. while (1) do
  11.     table = {}
  12.     resultTable = {}
  13.    
  14.     a, b, c, d, input, e = os.pullEvent("modem_message")
  15.    
  16.     table[1] = input
  17.     table[2] = turtleNum
  18.    
  19.     modem.transmit(2,3,table)
  20.    
  21.     message = {}
  22.    
  23.     max = 0
  24.     for k = 1,turtleNum,1 do
  25.         a, b, c, d, message, e = os.pullEvent("modem_message")
  26.         if (tonumber(message) > max) then
  27.             max = tonumber(message)
  28.         end
  29.     end
  30.    
  31.     modem.transmit(5,4,max)
  32.    
  33.     for k = 1,turtleNum,1 do
  34.         a, b, c, d, message, e = os.pullEvent("modem_message")
  35.         for i in pairs(message) do
  36.             resultTable[message[i]] = 1
  37.         end
  38.     end
  39.     num = 1
  40.     tt = {}
  41.     numberedTable = {}
  42.     numberedIndex = {}
  43.     for result in pairs(resultTable) do
  44.         a = string.find(result, "=")
  45.         tt[num] = num..": "..string.sub(result, 1, a-1)
  46.         numberedTable[num] = string.sub(result, 1, a-1)
  47.         numberedIndex[num] = string.sub(result, a+1)
  48.         num = num + 1
  49.     end
  50.    
  51.     modem.transmit(69,69,tt)
  52.     a, b, c, d, message, e = os.pullEvent("modem_message")
  53.     message = tonumber(message)
  54.     if (message > 0) and (message < num) then
  55.         items = interface.findItems(numberedIndex[message])
  56.         b = string.find(numberedTable[message],"%(")
  57.         c = string.find(numberedTable[message],"%)")
  58.         number = string.sub(numberedTable[message],b+1,c-1)
  59.         if (tonumber(number) == 0) then
  60.             number = "craftable"
  61.         end
  62.         modem.transmit(69,69,number)
  63.         aa, bb, cc, dd, amount, ee = os.pullEvent("modem_message")
  64.         amount = tonumber(amount)
  65.         for item in pairs(items) do
  66.             if (items[item].getMetadata()["displayName"] == string.sub(numberedTable[message], 1, b-2)) then
  67.                 if (number == "craftable") then
  68.                     crafting = items[item].craft(amount)
  69.                     while (crafting.status() == "unknown") do
  70.                         sleep(1)
  71.                     end
  72.                     if (crafting.status() == "finished") then
  73.                         while (amount > 64) do
  74.                             items[item].export("up", 64)
  75.                             amount = amount - 64
  76.                         end
  77.                         items[item].export("up", amount)
  78.                     end
  79.                 else
  80.                     while (amount > 64) do
  81.                         items[item].export("up", 64)
  82.                         amount = amount - 64
  83.                     end
  84.                     items[item].export("up", amount)
  85.                 end
  86.             end
  87.         end
  88.     else
  89.         modem.transmit(69,69,-1)
  90.     end
  91. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement