Karto4an

grief open computers robot

Oct 31st, 2020 (edited)
955
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local component = require("component")
  2. local robot = require("robot")
  3. local event = require("event")
  4. local fs = require("filesystem")
  5. local port = 512
  6. local keyWord = "ECSGrief"
  7. local modem
  8. local redstone = component.redstone
  9. local redstoneState = false
  10. local howmuchtime = 770
  11.  
  12. if component.isAvailable("modem") then
  13.     modem = component.modem
  14. else
  15.     error("Этой программе требуется беспроводной модем для работы!")
  16. end
  17.  
  18. modem.open(port)
  19.  
  20. -------------------------------------------------------------------------------------
  21.  
  22. local commands = {
  23.     forward = robot.forward,
  24.     back = robot.back,
  25.     turnRight = robot.turnRight,
  26.     turnLeft = robot.turnLeft,
  27.     up = robot.up,
  28.     down = robot.down,
  29. }
  30.  
  31. local function redstoneControl()
  32.     if not redstone then return end
  33.     if redstoneState then
  34.         for i = 0, 5 do
  35.             redstone.setOutput(i, 0)
  36.         end
  37.         print("Сигнал редстоуна включен со всех сторон робота!")
  38.         redstoneState = false
  39.     else
  40.         for i = 0, 5 do
  41.             redstone.setOutput(i, 15)
  42.         end
  43.         print("Сигнал редстоуна отключен.")
  44.         redstoneState = true
  45.     end
  46. end
  47.  
  48. local function receive()
  49.     while true do
  50.         local eventData = { event.pull() }
  51.         if eventData[1] == "modem_message" and eventData[4] == port and eventData[6] == keyWord then
  52.             local message = eventData[7]
  53.             if commands[message] then
  54.                 commands[message]()
  55.             else
  56.                 if message == "selfDestroy" then
  57.                     for howmuchtime >= 0 do
  58.                         howmuchtime = howmuchtime - 1
  59.                         robot.forward()
  60.                     end
  61.                     require("term").clear()
  62.                     require("computer").shutdown()
  63.                 elseif message == "use" then
  64.                     robot.use()
  65.                     robot.useUp()
  66.                     robot.useDown()
  67.                     robot.swing()
  68.                     robot.swingUp()
  69.                     robot.swingDown()
  70.                 elseif message == "exit" then
  71.                     return
  72.                 elseif message == "redstone" then
  73.                     redstoneControl()
  74.                 end
  75.             end
  76.         end
  77.     end
  78. end
  79.  
  80. local function main()
  81.     print(" ")
  82.     print("Добро пожаловать в программу ECSGrief Receiver v1.0 alpha early access! Идет ожидание команд с беспроводного устройства.")
  83.     print(" ")
  84.     receive()
  85.     print(" ")
  86.     print("Программа приема сообщений завершена!")
  87. end
  88.  
  89. -------------------------------------------------------------------------------------
  90.  
  91. main()
  92.  
  93. -------------------------------------------------------------------------------------
RAW Paste Data