Advertisement
Guest User

startup

a guest
Apr 7th, 2020
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.88 KB | None | 0 0
  1. local function chestView(cpId, side)
  2.  
  3.     fini = false
  4.     if side == nil then
  5.         if not turtle.detectDown() then
  6.             side = 6
  7.         elseif not turtle.detectUp() then
  8.             side = 5
  9.         else
  10.             rednet.send(cpId, "imp")
  11.             return nil
  12.         end
  13.     end
  14.  
  15.     print(side)
  16.    
  17.     turtle.select(15)
  18.    
  19.     if side == 1 then
  20.         turtle.place()
  21.     elseif side == 2 then
  22.         turtle.turnRight()
  23.         turtle.place()
  24.         turtle.turnLeft()
  25.     elseif side == 3 then
  26.         turtle.turnRight()
  27.         turtle.turnRight()
  28.         turtle.place()
  29.         turtle.turnLeft()
  30.         turtle.turnLeft()
  31.     elseif side == 4 then
  32.         turtle.turnLeft()
  33.         turtle.place()
  34.         turtle.turnRight()
  35.     elseif side == 5 then
  36.         turtle.placeUp()
  37.     else
  38.         turtle.placeDown()
  39.     end
  40.    
  41.     while not fini do
  42.         turtle.suck()
  43.         if (turtle.getItemCount() == 0) then
  44.             fini = true
  45.         else
  46.             rednet.send(cpId, turtle.getItemDetail().name)
  47.             rednet.send(cpId, turtle.getItemCount())
  48.             if side == 1 then
  49.                 turtle.drop()
  50.             elseif side == 2 then
  51.                 turtle.turnRight()
  52.                 turtle.drop()
  53.                 turtle.turnLeft()
  54.             elseif side == 3 then
  55.                 turtle.turnRight()
  56.                 turtle.turnRight()
  57.                 turtle.drop()
  58.                 turtle.turnLeft()
  59.                 turtle.turnLeft()
  60.             elseif side == 4 then
  61.                 turtle.turnLeft()
  62.                 turtle.drop()
  63.                 turtle.turnRight()
  64.             elseif side == 5 then
  65.                 turtle.dropUp()
  66.             else
  67.                 turtle.dropDown()
  68.             end
  69.         end
  70.     end
  71.    
  72.     fini = false
  73.     while not fini do
  74.         if side == 1 then
  75.             turtle.suck()
  76.         elseif side == 2 then
  77.             turtle.turnRight()
  78.             turtle.suck()
  79.             turtle.turnLeft()
  80.         elseif side == 3 then
  81.             turtle.turnRight()
  82.             turtle.turnRight()
  83.             turtle.suck()
  84.             turtle.turnLeft()
  85.             turtle.turnLeft()
  86.         elseif side == 4 then
  87.             turtle.turnLeft()
  88.             turtle.suck()
  89.             turtle.turnRight()
  90.         elseif side == 5 then
  91.             turtle.suckUp()
  92.         else
  93.             turtle.suckDown()
  94.         end
  95.  
  96.         if (turtle.getItemCount() == 0) then
  97.             fini = true
  98.         else
  99.             turtle.drop()
  100.         end
  101.     end
  102.  
  103.     if side == 1 then
  104.         turtle.dig()
  105.     elseif side == 2 then
  106.         turtle.turnRight()
  107.         turtle.dig()
  108.         turtle.turnLeft()
  109.     elseif side == 3 then
  110.         turtle.turnRight()
  111.         turtle.turnRight()
  112.         turtle.dig()
  113.         turtle.turnLeft()
  114.         turtle.turnLeft()
  115.     elseif side == 4 then
  116.         turtle.turnLeft()
  117.         turtle.dig()
  118.         turtle.turnRight()
  119.     elseif side == 5 then
  120.         turtle.digUp()
  121.     else
  122.         turtle.digDown()
  123.     end
  124. end
  125.  
  126. local function main()
  127.     rednet.open("left")
  128.     t = turtle
  129.     lastMove = 0
  130.  
  131.     -- last move:
  132.     -- 0 : nil
  133.     -- 1 : front
  134.     -- 2 : right
  135.     -- 3 : back
  136.     -- 4 : left
  137.     -- 5 : up
  138.     -- 6 : down
  139.    
  140.     while true do
  141.    
  142.         cpt, msg, ptc = rednet.receive()
  143.    
  144.         print("test")
  145.    
  146.         if (t.getFuelLevel() < 50) then
  147.             t.select(16)
  148.             t.refuel()
  149.         end
  150.    
  151.         if (msg == 44) then
  152.             t.forward()
  153.             lastMove = 3
  154.         elseif (msg == 31) then
  155.             t.back()
  156.             lastMove = 1
  157.         elseif (msg == 16) then
  158.             t.turnLeft()
  159.             if (lastMove >= 1 and lastMove <= 4) then
  160.                 lastMove = ((lastMove - 1) + 1) % 4 + 1
  161.             end
  162.         elseif (msg == 32) then
  163.             t.turnRight()
  164.             if (lastMove >= 1 and lastMove <= 4) then
  165.                 lastMove = ((lastMove - 1) - 1) % 4 + 1
  166.             end
  167.         elseif (msg == 30) then
  168.             t.up()
  169.             lastMove = 6
  170.         elseif (msg == 18) then
  171.             t.down()
  172.             lastMove = 5
  173.         elseif (msg >= 2 and msg <= 11) then
  174.             t.select(msg-1)
  175.             t.place()
  176.         elseif (msg == 33) then
  177.             t.dig()
  178.         elseif (msg == 34) then
  179.             t.digDown()
  180.         elseif (msg == 20) then
  181.             t.digUp()
  182.         elseif (msg == 45) then
  183.             t.attack()
  184.         elseif (msg == 71) then
  185.             rednet.send(cpt, "chest")
  186.             chestView(cpt, lastMove)
  187.             rednet.send(cpt, "fini")
  188.         elseif (msg == 72) then
  189.             redstone.setOutput("front", true)
  190.             rednet.send(cpt, yes)
  191.         else
  192.             rednet.send(cpt, "no")
  193.         end
  194.    
  195.         rednet.send(cpt, t.getFuelLevel())
  196.    
  197.     end
  198. end
  199.  
  200. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement