Xylic

[ComputerCraft Tweaked 1.17.1] music-turtle(for player2)

Oct 16th, 2021 (edited)
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.86 KB | None | 0 0
  1. local modemSide = "left"
  2. local commands = {"next","set","getList"}
  3. local plates = {}
  4. local PCID = 4
  5. local plateIndex = 1
  6.  
  7. function getPlatesNameWhatTurtleHave()
  8.     getPlate()
  9.     local platesName = {}
  10.     for i=1,16 do
  11.         if turtle.getItemCount(i) > 0 then
  12.             local plateName = turtle.getItemDetail(i)["name"]
  13.             --term.write(plateName)
  14.             table.insert(platesName,plateName)
  15.         end
  16.     end
  17.     return platesName
  18. end
  19.  
  20. function next()
  21.     if plateIndex == #plates then plateIndex=1 else plateIndex=plateIndex+1 end
  22.     getPlate()
  23.     turtle.select(plateIndex)
  24.     turtle.dropDown()
  25. end
  26.  
  27. function getPlate()
  28.     for i=1, 16 do --забираем чо было в место где оно было
  29.         if turtle.getItemCount(i) == 0 then
  30.             turtle.select(i)
  31.             turtle.suckDown()
  32.             break
  33.         end
  34.     end
  35. end
  36.  
  37. function setPlateByName(setName)
  38.     for i=1,#plates do
  39.         if turtle.getItemCount(i) > 0 then
  40.             local plateName = turtle.getItemDetail(i)["name"]
  41.             if setName == plateName then
  42.                 getPlate()
  43.                 turtle.select(i)
  44.                 turtle.dropDown()
  45.             end
  46.         end
  47.     end
  48. end
  49.  
  50. rednet.open(modemSide)
  51. plates = getPlatesNameWhatTurtleHave()
  52. turtle.select(plateIndex)
  53.  
  54. while rednet.isOpen() do
  55.     local from, command = rednet.receive()
  56.     term.clear()
  57.     term.setCursorPos(1,1)
  58.     if PCID == from then
  59.         if command == commands[1] then
  60.             next()
  61.             rednet.send(from,"OK")
  62.         elseif command == commands[2] then
  63.             from, musicPlateName = rednet.receive()
  64.             if PCID == from then
  65.                 setPlateByName(musicPlateName)
  66.                 rednet.send(from,"OK")
  67.                 term.write("Set "..musicPlateName.." By Name")
  68.             end
  69.         elseif command == commands[3] then
  70.             term.write(command)
  71.             rednet.send(from,#plates)
  72.             term.write("send "..#plates)
  73.             for key, value in pairs(plates) do
  74.                 rednet.send(from,value)
  75.             end
  76.             rednet.send(from,"OK")
  77.             term.write("send done")
  78.         end
  79.     end
  80. end
  81.  
  82.  
  83. rednet.close(modemSide)
  84.  
Add Comment
Please, Sign In to add comment