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) | |
25 | local chest = turtle.getItemCount(2) -- How many items are in slot 2 (chest) | |
26 | local ItemFuel = turtle.getItemCount(3) -- How many items are in slot 3 (Fuel) | |
27 | local MD = 3 -- How Many Blocks Apart From Each Mine | |
28 | local MineTimes = 0 -- If Multi Mines Are ON then This will keep Count | |
29 | local Fuel = 0 -- if 2 then it is unlimited no fuel needed | |
30 | local NeedFuel = 0 -- If Fuel Need Then 1 if not Then 0 | |
31 | local Error = 0 -- 0 = No Error and 1 = Error | |
32 | local Way = 0 -- 0 = Left and 1 = Right | |
33 | ||
34 | --Checking | |
35 | local function Check() | |
36 | if torch == 0 then | |
37 | print("There are no torch's in Turtle") | |
38 | Error = 1 | |
39 | else | |
40 | print("There are torch's in turtle") | |
41 | end | |
42 | if chest == 0 then | |
43 | print("there are no chests") | |
44 | Error = 1 | |
45 | else | |
46 | print("There are chest in turtle") | |
47 | end | |
48 | if ItemFuel == 0 then | |
49 | print("No Fuel Items") | |
50 | error = 1 | |
51 | else | |
52 | print("there is fuel") | |
53 | end | |
54 | repeat | |
55 | if turtle.getFuelLevel() == "unlimited" then | |
56 | print("NO NEED FOR FUEL") | |
57 | Needfuel = 0 | |
58 | elseif turtle.getFuelLevel() < 100 then | |
59 | turtle.select(3) | |
60 | turtle.refuel(1) | |
61 | Needfuel = 1 | |
62 | ItemFuel = ItemFuel - 1 | |
63 | elseif NeedFuel == 1 then | |
64 | Needfuel = 0 | |
65 | end | |
66 | until NeedFuel == 0 | |
67 | end | |
68 | ||
69 | -- Recheck if user forget something turtle will check after 15 sec | |
70 | local function Recheck() | |
71 | torch = turtle.getItemCount(1) | |
72 | chest = turtle.getItemCount(2) | |
73 | ItemFuel = turtle.getItemCount(3) | |
74 | Error = 0 | |
75 | end | |
76 | ||
77 | --Mining | |
78 | local function ForwardM() | |
79 | repeat | |
80 | if turtle.detect() then | |
81 | turtle.dig() | |
82 | end | |
83 | if turtle.forward() then -- sometimes sand and gravel and block and mix-up distance | |
84 | TF = TF - 1 | |
85 | onlight = onlight + 1 | |
86 | end | |
87 | if turtle.detectUp() then | |
88 | turtle.digUp() | |
89 | end | |
90 | turtle.select(4) | |
91 | turtle.placeDown() | |
92 | if onlight == 8 then -- Every 10 Block turtle place torch | |
93 | if torch > 0 then | |
94 | turtle.turnLeft() | |
95 | turtle.turnLeft() | |
96 | turtle.select(1) | |
97 | turtle.place() | |
98 | turtle.turnLeft() | |
99 | turtle.turnLeft() | |
100 | torch = torch - 1 | |
101 | onlight = onlight - 8 | |
102 | else | |
103 | print("turtle run out of torchs") | |
104 | os.shutdown() | |
105 | end | |
106 | end | |
107 | if turtle.getItemCount(16)>0 then -- If slot 16 in turtle has item slot 5 to 16 will go to chest | |
108 | if chest > 0 then | |
109 | turtle.select(2) | |
110 | turtle.digDown() | |
111 | turtle.placeDown() | |
112 | chest = chest - 1 | |
113 | for slot = 5, 16 do | |
114 | turtle.select(slot) | |
115 | turtle.dropDown() | |
116 | sleep(1.5) | |
117 | end | |
118 | turtle.select(5) | |
119 | else | |
120 | print("turtle run out of chest") | |
121 | os.shutdown() | |
122 | end | |
123 | end | |
124 | repeat | |
125 | if turtle.getFuelLevel() == "unlimited" then | |
126 | print("NO NEED FOR FUEL") | |
127 | Needfuel = 0 | |
128 | elseif turtle.getFuelLevel() < 100 then | |
129 | turtle.select(3) | |
130 | turtle.refuel(1) | |
131 | Needfuel = 1 | |
132 | ItemFuel = ItemFuel - 1 | |
133 | elseif ItemFuel == 0 then | |
134 | print("turtle run out of fuel") | |
135 | os.shutdown() | |
136 | elseif NeedFuel == 1 then | |
137 | Needfuel = 0 | |
138 | end | |
139 | until NeedFuel == 0 | |
140 | until TF == 0 | |
141 | end | |
142 | ||
143 | --Warm Up For Back Program | |
144 | local function WarmUpForBackProgram() -- To make turn around so it can go back | |
145 | turtle.turnLeft() | |
146 | turtle.turnLeft() | |
147 | turtle.up() | |
148 | end | |
149 | ||
150 | --Back Program | |
151 | local function Back() | |
152 | repeat | |
153 | if turtle.forward() then -- sometimes sand and gravel and block and mix-up distance | |
154 | TB = TB - 1 | |
155 | end | |
156 | if turtle.detect() then -- Sometimes sand and gravel can happen and this will fix it | |
157 | if TB ~= 0 then | |
158 | turtle.dig() | |
159 | end | |
160 | end | |
161 | until TB == 0 | |
162 | end | |
163 | ||
164 | -- Multimines Program | |
165 | local function MultiMines() | |
166 | if Way == 1 then | |
167 | turtle.turnLeft() | |
168 | turtle.down() | |
169 | else | |
170 | turtle.turnRight() | |
171 | turtle.down() | |
172 | end | |
173 | repeat | |
174 | if turtle.detect() then | |
175 | turtle.dig() | |
176 | end | |
177 | if turtle.forward() then | |
178 | MD = MD - 1 | |
179 | end | |
180 | if turtle.detectUp() then | |
181 | turtle.digUp() | |
182 | end | |
183 | until MD == 0 | |
184 | if Way == 1 then | |
185 | turtle.turnLeft() | |
186 | else | |
187 | turtle.turnRight() | |
188 | end | |
189 | if MineTimes == 0 then | |
190 | print("Turtle is done") | |
191 | else | |
192 | MineTimes = MineTimes - 1 | |
193 | end | |
194 | end | |
195 | ||
196 | -- Restart | |
197 | local function Restart() | |
198 | TF = distance | |
199 | TB = distance | |
200 | MD = 3 | |
201 | onlight = 0 | |
202 | end | |
203 | ||
204 | -- Starting | |
205 | function Start() | |
206 | repeat | |
207 | ForwardM() | |
208 | WarmUpForBackProgram() | |
209 | Back() | |
210 | MultiMines() | |
211 | Restart() | |
212 | until MineTimes == 0 | |
213 | end | |
214 | ||
215 | -- Start | |
216 | print("Hi There Welcome to Mining Turtle Program") | |
217 | print("How Far Will Turtle Go") | |
218 | input = io.read() | |
219 | distance = tonumber(input) | |
220 | TF = distance | |
221 | TB = distance | |
222 | print("Left or Right") | |
223 | print("0 = Left and 1 = Right") | |
224 | input2 = io.read() | |
225 | Way = tonumber(input2) | |
226 | print("How Many Times") | |
227 | input3 = io.read() | |
228 | MineTimes = tonumber(input3) | |
229 | Check() | |
230 | if Error == 1 then | |
231 | repeat | |
232 | sleep(10) | |
233 | Recheck() | |
234 | Check() | |
235 | until Error == 0 | |
236 | end | |
237 | Start() |