View difference between Paste ID: nfMvxrac and tyt0MdFd
SHOW: | | - or go back to the newest paste.
1-
--[[
1+
print("Direwolf20's 9x9 House builder")
2-
    Author
2+
print("Slots 1-3 = Walls (?? Stacks)")
3-
        Rasmus Sommer aka. TheSommer
3+
print("Slot 4 = Floor (?? blocks)")
4-
        youtube.com/thesommersmc
4+
print("Slot 5 = Ceiling Middle (?? blocks)")
5-
        twitch.tv/thesommer
5+
print("Slot 6 = Glass (16 blocks)")
6-
    
6+
7-
    How to use:
7+
8-
        Slot 1 - Fuel
8+
9-
        Slot 2 - Bridge material
9+
10-
        Slot 3 - Torches
10+
11-
    
11+
local function checkCount(slot)
12-
        torchedtunnel <length>
12+
	if turtle.getItemCount(slot) == 0 then
13-
--]]
13+
		slot = slot + 1
14
		turtle.select(slot)
15-
local tArgs = { ... }
15+
		return slot
16-
if #tArgs ~= 1 then
16+
	end
17-
	print( "Usage: torchedtunnel <length>" )
17+
	return slot
18-
	return
18+
19
20
local function tryRefuel(slot)
21-
local length = tonumber( tArgs[1] )
21+
    if turtle.getFuelLevel() <= 5 then
22-
if length < 1 then
22+
        turtle.select(16)
23-
	print( "Tunnel length must be positive" )
23+
        turtle.refuel(4)
24-
	return
24+
		turtle.select(slot)
25
26
    end
27-
local function tryRefuel()
27+
28-
    if turtle.getFuelLevel() == 0 then
28+
29-
        turtle.select(1)
29+
local function floor(slot)
30-
        turtle.refuel(1)
30+
--Does 4 passes.  One up and one down for 8 rows.
31
--Leaves the 9th row empty to start the walls
32
	turtle.select(slot) --Selects cobble for floor
33
	for j = 0, 3 do
34-
local function tryDig()
34+
		for i = 0, 8 do --Does one row up and another back
35-
    while turtle.detect() == true do
35+
			tryRefuel(slot)
36-
        turtle.dig()
36+
			slot = checkCount(slot)
37-
        sleep(0.5)
37+
			turtle.placeDown()
38
			turtle.forward()
39
		end
40
		turtle.turnRight()
41-
local function tryDigUp()
41+
		turtle.forward()
42-
    while turtle.detectUp() == true do
42+
		turtle.turnRight()
43-
        turtle.digUp()
43+
		turtle.forward()
44-
        sleep(0.5)
44+
		for i = 0, 8 do
45
			tryRefuel(slot)
46
			slot = checkCount(slot)
47
			turtle.placeDown()
48-
local function tryUp()
48+
			turtle.forward()
49-
    tryDigUp()
49+
		end
50-
    tryRefuel()
50+
		turtle.turnLeft()
51-
    turtle.up()
51+
		turtle.forward()
52
		turtle.turnLeft()
53
		turtle.forward()
54-
local function tryDown()
54+
	end
55-
    while turtle.detectDown() == true do
55+
	return(slot)
56-
        turtle.digDown()
56+
57-
        sleep(0.5)
57+
58
59-
    tryRefuel()
59+
local function walls(slot)
60-
    turtle.down()
60+
--Starts on the last row of the floors as the first wall
61
	
62
	for j = 0, 8 do
63-
local function tryForward()
63+
		--places 6 blocks up on the first wall missing the floor
64-
    tryDig()
64+
		for i = 0, 6 do
65-
    tryRefuel()
65+
			tryRefuel(slot)
66-
    turtle.forward()
66+
			slot = checkCount(slot)
67
			turtle.placeDown()
68
			turtle.up()
69-
local function makeBridge()
69+
		end
70-
    if turtle.detectDown() == false then
70+
		turtle.forward()
71-
        turtle.select(2)
71+
		for i = 0, 6 do
72-
        turtle.placeDown()
72+
			tryRefuel(slot)
73
			slot = checkCount(slot)
74
			turtle.down()
75
		end
76-
local count = 1
76+
	end
77
	-- places it back onto the floor for the second wall.
78-
for i = 1, length do
78+
	-- possibly loop this twice and finish with a seperate door piece?
79-
    tryForward()
79+
	for k = 0, 1 do
80-
    makeBridge()
80+
		turtle.turnLeft()
81-
    tryDigUp()
81+
		turtle.forward()
82-
    turtle.turnLeft()
82+
		turtle.turnLeft()
83-
    tryDig()
83+
		turtle.forward()
84-
    tryUp()
84+
		turtle.turnRight()
85-
    tryDig()
85+
		for j = 0, 7 do
86-
    if count % 8 == 0 then
86+
			--places 5 blocks up from the floor
87-
        turtle.select(3)
87+
			for i = 0, 6 do
88-
        turtle.place()
88+
				tryRefuel(slot)
89
				slot = checkCount(slot)
90-
    turtle.turnRight()
90+
				turtle.placeDown()
91-
    turtle.turnRight()
91+
				turtle.up()
92-
    tryDig()
92+
			end
93-
    tryDown()
93+
			turtle.forward()
94-
    tryDig()
94+
			for i = 0, 6 do 
95-
    turtle.turnLeft()
95+
				tryRefuel(slot)
96-
    count = count + 1
96+
				slot = checkCount(slot)
97-
end
97+
				turtle.down()
98
			end
99
		end
100
	end
101
	turtle.turnLeft()
102
	turtle.forward()
103
	turtle.turnLeft()
104
	turtle.forward()
105
	turtle.turnRight()
106
	--Last wall with the door does a column of 3 then a door then repeats
107
			for j = 0, 2 do
108
				--places 5 blocks up from the floor
109
				for i = 0, 6 do
110
					tryRefuel(slot)
111
					slot = checkCount(slot)
112
					turtle.placeDown()
113
					turtle.up()
114
				end
115
				turtle.forward()
116
				for i = 0, 6 do 
117
					tryRefuel(slot)
118
					slot = checkCount(slot)
119
					turtle.down()
120
				end
121
			end
122
			---------------------
123
			--Door is placed here
124
			turtle.up()
125
			turtle.up()
126
			---------------------
127
			for i = 0, 4 do
128
					tryRefuel(slot)
129
					slot = checkCount(slot)
130
					turtle.placeDown()
131
					turtle.up()
132
				end
133
				turtle.forward()
134
				for i = 0, 6 do 
135
					tryRefuel(slot)
136
					slot = checkCount(slot)
137
					turtle.down()
138
				end
139
			
140
			
141
			--Finished out the row of columns
142
			for j = 0, 2 do
143
				--places 5 blocks up from the floor
144
				for i = 0, 6 do
145
					tryRefuel(slot)
146
					slot = checkCount(slot)
147
					turtle.placeDown()
148
					turtle.up()
149
				end
150
				turtle.forward()
151
				for i = 0, 6 do 
152
					tryRefuel(slot)
153
					slot = checkCount(slot)
154
					turtle.down()
155
				end
156
			end
157
	
158
	end
159
160
local function roof(slot)
161
	turtle.turnLeft()
162
	turtle.forward()
163
	turtle.turnLeft()
164
	turtle.forward()
165
	print("enter loop")
166
	for j = 0, 2 do
167
		for i = 0, 8 do
168
			tryRefuel(slot)
169
			slot = checkCount(slot)
170
			turtle.placeDown()
171
			print("place down")
172
			turtle.forward()
173
			print("forward")
174
		end
175
		turtle.turnRight()
176
		turtle.forward()
177
		turtle.turnRight()
178
		for i = 0, 8 do
179
			tryRefuel(slot)
180
			slot = checkCount(slot)
181
			turtle.placeDown()
182
			turtle.forward()
183
		end
184
		turtle.turnLeft()
185
		turtle.forward()
186
		turtle.turnLeft()
187
	end
188
	for i = 0, 8 do
189
			tryRefuel(slot)
190
			slot = checkCount(slot)
191
			turtle.placeDown()
192
			turtle.forward()
193
	end
194
	
195
end
196
197
--Control Section
198
--Starts with slot 1 for cobble
199
local function control()
200
	slot = 1
201
	tryRefuel(slot)
202
	slot = checkCount(slot)
203
--	turtle.up()
204
--	floor(slot)
205
--	walls(slot)
206
	roof(slot)
207
end
208
209
control()