-
Notifications
You must be signed in to change notification settings - Fork 0
/
executeautobuildcompactwall.lua
64 lines (58 loc) · 1.2 KB
/
executeautobuildcompactwall.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
--robot autobuild
local component = require("component")
local robot = component.robot
local os = require("os")
local args = require("shell").parse(...)
-- local direction. e.g. move(direction), suck(direction, amount)
-- 0 is down, 1 is up, 2 is back, 3 is forward
-- rotation
-- false is counterclockwise, true is clockwise
local function counting(time)
local l = 0
while l < time do
io.write("\n"..tostring(time-l))
l = l + 1
local freq = 200*(5-(time-l))
if freq < 100 then
freq = 100
end
component.computer.beep(freq, 0.5)
os.sleep(0.5)
end
end
if #args < 1 then return nil end
local i = 0
local j = tonumber(args[1])
while i<j do
io.write("\nIteration: "..i)
robot.drop(3,1)
robot.select(1)
robot.move(3)
robot.turn(false)
robot.move(3)
robot.turn(false)
robot.suck(3,1)
robot.turn(false)
robot.move(3)
robot.move(3)
robot.turn(true)
robot.suck(3,1)
robot.suck(3,1)
robot.suck(3,1)
robot.turn(true)
robot.turn(true)
robot.place(3)
robot.select(2)
robot.move(1)
robot.place(3)
robot.move(0)
robot.turn(false)
robot.move(3)
robot.turn(true)
robot.move(2)
robot.drop(3,1)
i = i + 1
if #args > 1 then counting(tonumber(args[2]))
elseif i<j then counting(5) end
end
robot.select(1)