Advertisement
Ewgeniy

farm

Jul 12th, 2022
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.43 KB | None | 0 0
  1. local args = {...}
  2. local io = require("io")
  3. local robot = require("robot")
  4. local comp = require("computer")
  5. local filesystem = require("filesystem")
  6. local r_forward = robot.forward
  7. local arg1 = args[1]
  8. local arg2 = args[2]
  9. function robot.forward()
  10.   repeat os.sleep(0) until r_forward()
  11.   return true
  12. end
  13.  
  14. if (arg1 == "size") then
  15.   if (arg2 == nil) then return print("Не указан размер") end
  16.   local farmsize = io.open("/home/farm.cfg", "w")
  17.   farmsize:write(arg2)
  18.   farmsize:flush()
  19.   farmsize:close()
  20.   return print("Позиция установлена")
  21. end
  22.  
  23. if (filesystem.exists("/home/farm.cfg") == false) then
  24.   return print("Файл конфигурации не создан! пожалуйста используйте аргумент size *Размер поля*")
  25. end
  26.  
  27. local farmsize = io.open("/home/farm.cfg")
  28.  
  29. local size = farmsize:read()
  30.  
  31. farmsize:close()
  32.  
  33. function farm()
  34.   robot.forward()
  35.   for y = 1, size do
  36.     -- собрать 1 линию
  37.     robot.swingDown()
  38.     robot.useDown()
  39.     robot.placeDown()
  40.     for x = 1, (size - 1) do
  41.       robot.forward()
  42.       robot.swingDown()
  43.       robot.useDown()
  44.       robot.placeDown()
  45.     end
  46.     -- поворот
  47.     if y % 2 == 1 then
  48.       robot.turnLeft()
  49.       robot.forward()
  50.       robot.turnLeft()
  51.     else
  52.       robot.turnRight()
  53.       robot.forward()
  54.       robot.turnRight()
  55.     end
  56.   end
  57.   if(size%2 == 0) then
  58.     robot.turnLeft()
  59.     robot.turnLeft()
  60.     robot.turnLeft()
  61.     -- возвращение на базу
  62.     for y = 1, (size - 1) do robot.forward() end
  63.     robot.turnRight()
  64.     robot.turnLeft()
  65.     robot.forward()
  66.     robot.turnRight()
  67.     robot.forward()
  68.     robot.turnAround()
  69.       else
  70.     for y = 1, (size - 1) do robot.forward() end
  71.     robot.turnLeft()
  72.     for y = 1, (size) do robot.forward() end
  73.     robot.turnRight()
  74.     robot.forward()
  75.     robot.turnAround()    
  76.     end
  77. end
  78. function dropitem()
  79.   robot.turnAround()
  80.   for c = 2, 16 do
  81.     robot.select(c)
  82.     if robot.count() > 0 then
  83.       robot.drop()
  84.     else
  85.       robot.select(1)
  86.       break
  87.     end
  88.   end
  89.   robot.turnAround()
  90. end
  91. if arg1 == "primary" then
  92.   farm()
  93.   if robot.count(2) == 64 then dropitem() end
  94. end
  95. local primary = nil
  96. while true do
  97.   -- таймер(1час)
  98.   for i = 1, 10 do
  99.     os.sleep(370)
  100.     print((10 * i) .. '%')
  101.   end
  102.   farm()
  103.   if robot.count(2) == 64 then dropitem() end
  104. end
  105.  
  106.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement