SHOW:
|
|
- or go back to the newest paste.
1 | -- This Version | |
2 | -- 2.13 10/11/2014 | |
3 | -- ChangeLogs | |
4 | -- 2.04 - Adding Left or Right Support | |
5 | -- 2.05 - Changing Lot Code For Some Stable And Cleaner Code | |
6 | -- 2.06 - Ops Forget Fuel Chcking Code after rewrtitting | |
7 | -- 2.07 - Woops My Bad i wrote back() not Back() | |
8 | -- 2.08 - Fixing Imputs | |
9 | -- 2.09 - Forget That i change remove line of code since i use local function now | |
10 | -- 2.10 - Minor error with back that it leave one block in wall | |
11 | -- Change: Torch spacing to 8 from 10 | |
12 | -- 2.11 - Change: Right to left and Left to Right better understand | |
13 | -- 2.12 - Add Stop Code when item are gone | |
14 | -- 2.13 - i made big mistake i forget to end to new stop code | |
15 | -- ToDoList | |
16 | -- Add Code to place torch each time it starts | |
17 | -- Add Fuel Code so can know almost how much fuel you need | |
18 | -- Add second fuel slot if you go allout diggin | |
19 | -- Mabye add code that make turtle make new line of tunnels | |
20 | ||
21 | --Local | |
22 | local distance = 0 -- How Far Did User Pick | |
23 | local onlight = 0 -- When to Place Torch | |
24 | - | local torch = turtle.getItemCount(1) -- How many items are in slot 1 (torch) |
24 | + | local torch = 0 -- How many items are in slot 1 (torch) |
25 | -- local torch = turtle.getItemCount(1) -- How many items are in slot 1 (torch) | |
26 | local chest = turtle.getItemCount(2) -- How many items are in slot 2 (chest) | |
27 | local ItemFuel = turtle.getItemCount(3) -- How many items are in slot 3 (Fuel) | |
28 | local MD = 3 -- How Many Blocks Apart From Each Mine | |
29 | local MineTimes = 0 -- If Multi Mines Are ON then This will keep Count | |
30 | local Fuel = 0 -- if 2 then it is unlimited no fuel needed | |
31 | local NeedFuel = 0 -- If Fuel Need Then 1 if not Then 0 | |
32 | local Error = 0 -- 0 = No Error and 1 = Error | |
33 | local Way = 0 -- 0 = Left and 1 = Right | |
34 | ||
35 | --Checking | |
36 | - | if torch == 0 then |
36 | + | |
37 | - | print("There are no torch's in Turtle") |
37 | + | |
38 | print("there are no chests") | |
39 | Error = 1 | |
40 | - | print("There are torch's in turtle") |
40 | + | |
41 | print("There are chest in turtle") | |
42 | end | |
43 | if ItemFuel == 0 then | |
44 | print("No Fuel Items") | |
45 | error = 1 | |
46 | else | |
47 | print("there is fuel") | |
48 | end | |
49 | repeat | |
50 | if turtle.getFuelLevel() == "unlimited" then | |
51 | print("NO NEED FOR FUEL") | |
52 | Needfuel = 0 | |
53 | elseif turtle.getFuelLevel() < 100 then | |
54 | turtle.select(3) | |
55 | turtle.refuel(1) | |
56 | Needfuel = 1 | |
57 | ItemFuel = ItemFuel - 1 | |
58 | elseif NeedFuel == 1 then | |
59 | Needfuel = 0 | |
60 | end | |
61 | until NeedFuel == 0 | |
62 | end | |
63 | ||
64 | -- Recheck if user forget something turtle will check after 15 sec | |
65 | local function Recheck() | |
66 | -- torch = turtle.getItemCount(1) | |
67 | chest = turtle.getItemCount(2) | |
68 | ItemFuel = turtle.getItemCount(3) | |
69 | Error = 0 | |
70 | end | |
71 | - | torch = turtle.getItemCount(1) |
71 | + | |
72 | --Mining | |
73 | local function ForwardM() | |
74 | repeat | |
75 | if turtle.detect() then | |
76 | turtle.dig() | |
77 | end | |
78 | if turtle.forward() then -- sometimes sand and gravel and block and mix-up distance | |
79 | TF = TF - 1 | |
80 | onlight = onlight + 1 | |
81 | end | |
82 | if turtle.detectUp() then | |
83 | turtle.digUp() | |
84 | end | |
85 | turtle.select(4) | |
86 | turtle.placeDown() | |
87 | if onlight == 8 then -- Every 10 Block turtle place torch | |
88 | if torch > 0 then | |
89 | turtle.turnLeft() | |
90 | turtle.turnLeft() | |
91 | turtle.select(1) | |
92 | turtle.place() | |
93 | turtle.turnLeft() | |
94 | turtle.turnLeft() | |
95 | -- torch = torch - 1 | |
96 | onlight = onlight - 8 | |
97 | else | |
98 | print("turtle run out of torchs") | |
99 | os.shutdown() | |
100 | - | torch = torch - 1 |
100 | + | |
101 | end | |
102 | if turtle.getItemCount(16)>0 then -- If slot 16 in turtle has item slot 5 to 16 will go to chest | |
103 | if chest > 0 then | |
104 | turtle.select(2) | |
105 | turtle.digDown() | |
106 | turtle.placeDown() | |
107 | chest = chest - 1 | |
108 | for slot = 5, 16 do | |
109 | turtle.select(slot) | |
110 | turtle.dropDown() | |
111 | sleep(1.5) | |
112 | end | |
113 | turtle.select(5) | |
114 | else | |
115 | print("turtle run out of chest") | |
116 | os.shutdown() | |
117 | end | |
118 | end | |
119 | repeat | |
120 | if turtle.getFuelLevel() == "unlimited" then | |
121 | print("NO NEED FOR FUEL") | |
122 | Needfuel = 0 | |
123 | elseif turtle.getFuelLevel() < 100 then | |
124 | turtle.select(3) | |
125 | turtle.refuel(1) | |
126 | Needfuel = 1 | |
127 | ItemFuel = ItemFuel - 1 | |
128 | elseif ItemFuel == 0 then | |
129 | print("turtle run out of fuel") | |
130 | os.shutdown() | |
131 | elseif NeedFuel == 1 then | |
132 | Needfuel = 0 | |
133 | end | |
134 | until NeedFuel == 0 | |
135 | until TF == 0 | |
136 | end | |
137 | ||
138 | --Warm Up For Back Program | |
139 | local function WarmUpForBackProgram() -- To make turn around so it can go back | |
140 | turtle.turnLeft() | |
141 | turtle.turnLeft() | |
142 | turtle.up() | |
143 | end | |
144 | ||
145 | --Back Program | |
146 | local function Back() | |
147 | repeat | |
148 | if turtle.forward() then -- sometimes sand and gravel and block and mix-up distance | |
149 | TB = TB - 1 | |
150 | end | |
151 | if turtle.detect() then -- Sometimes sand and gravel can happen and this will fix it | |
152 | if TB ~= 0 then | |
153 | turtle.dig() | |
154 | end | |
155 | end | |
156 | until TB == 0 | |
157 | end | |
158 | ||
159 | -- Multimines Program | |
160 | local function MultiMines() | |
161 | if Way == 1 then | |
162 | turtle.turnLeft() | |
163 | turtle.down() | |
164 | else | |
165 | turtle.turnRight() | |
166 | turtle.down() | |
167 | end | |
168 | repeat | |
169 | if turtle.detect() then | |
170 | turtle.dig() | |
171 | end | |
172 | if turtle.forward() then | |
173 | MD = MD - 1 | |
174 | end | |
175 | if turtle.detectUp() then | |
176 | turtle.digUp() | |
177 | end | |
178 | until MD == 0 | |
179 | if Way == 1 then | |
180 | turtle.turnLeft() | |
181 | else | |
182 | turtle.turnRight() | |
183 | end | |
184 | if MineTimes == 0 then | |
185 | print("Turtle is done") | |
186 | else | |
187 | MineTimes = MineTimes - 1 | |
188 | end | |
189 | end | |
190 | ||
191 | -- Restart | |
192 | local function Restart() | |
193 | TF = distance | |
194 | TB = distance | |
195 | MD = 3 | |
196 | onlight = 0 | |
197 | end | |
198 | ||
199 | -- EmptyInv | |
200 | function EmptyInv() | |
201 | if turtle.getItemCount(16) ~= 0 then | |
202 | turtle.dig() | |
203 | turtle.select(1) | |
204 | turtle.place() | |
205 | for i = 2,16 do | |
206 | turtle.select(i) | |
207 | turtle.drop() | |
208 | end | |
209 | turtle.select(1) | |
210 | turtle.dig() | |
211 | end | |
212 | end | |
213 | ||
214 | -- Starting | |
215 | function Start() | |
216 | repeat | |
217 | ForwardM() | |
218 | WarmUpForBackProgram() | |
219 | Back() | |
220 | MultiMines() | |
221 | EmptyInv() | |
222 | Restart() | |
223 | until MineTimes == 0 | |
224 | end | |
225 | ||
226 | -- Start | |
227 | print("Hi There Welcome to Mining Turtle Program") | |
228 | print("How Far Will Turtle Go") | |
229 | input = io.read() | |
230 | distance = tonumber(input) | |
231 | TF = distance | |
232 | TB = distance | |
233 | print("Left or Right") | |
234 | print("0 = Left and 1 = Right") | |
235 | input2 = io.read() | |
236 | Way = tonumber(input2) | |
237 | print("How Many Times") | |
238 | input3 = io.read() | |
239 | MineTimes = tonumber(input3) | |
240 | Check() | |
241 | if Error == 1 then | |
242 | repeat | |
243 | sleep(10) | |
244 | Recheck() | |
245 | Check() | |
246 | until Error == 0 | |
247 | end | |
248 | Start() |