-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcube.lua
More file actions
97 lines (84 loc) · 1.69 KB
/
cube.lua
File metadata and controls
97 lines (84 loc) · 1.69 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
--robot = require("robot")
robot = require("testing")
movement = require("movement")
arg = {...}
blockIndex = 0
function orientate()
while robot.detect() do
robot.turnLeft()
end
robot.forward()
robot.up()
movement.moveLeft(1)
end
function lineUpRow()
movement.moveLeft(2)
robot.turnRight()
end
function place(cube)
blockIndex = blockIndex + 1
if cube[blockIndex] == nil then
robot.select(cube.default)
else
robot.select(cube[blockIndex])
end
robot.placeDown()
end
function placeColumn(cube)
for i=1,2 do
place(cube)
robot.up()
end
place(cube)
print("Column Done")
end
function resetColumn()
robot.forward()
movement.moveDown(2)
end
function placeWall(cube, last)
for i=1,2 do
placeColumn(cube)
if not (i == 2 and last) then
resetColumn()
end
end
end
function drop(cube)
robot.select(cube["drop"])
robot.drop()
end
function reset(cube)
movement.moveBackwards(3)
drop(cube)
resetColumn()
movement.moveLeft(1)
movement.moveRight(1)
end
function placeCube(cube)
for i=1,4 do
placeWall(cube, i == 4)
robot.turnRight()
end
resetColumn()
placeColumn(cube)
print("Completed " .. cubeName)
reset(cube)
end
cubes = {
["enderpearl"]={["default"]=1, ["drop"]=3; [14]=2},
}
cubeName = arg[1]
n = arg[2] or 1
if cubeName == nil then
print("Enter cube to build")
elseif cubes[cubeName] == nil then
print('Unknown cube "' .. cubeName .. '"')
elseif not tonumber(n) then
print(n .. " is not an integer")
else
orientate()
for j=1,n do
placeCube(cubes[arg[1]])
end
end