Difference between revisions of "Cobble Generator"
m (→Colors) |
m (→Coding) |
||
Line 28: | Line 28: | ||
<span style="color:blue">end</span> | <span style="color:blue">end</span> | ||
This detects if a block is present, and then mines it. | This detects if a block is present, and then mines it. | ||
− | However, when all the | + | However, when all the 16 block spaces are filled with blocks, they must be dropped to collect new blocks: |
<span style="color:blue">while true do</span> | <span style="color:blue">while true do</span> | ||
<span style="color:green">if turtle.detect() then</span> | <span style="color:green">if turtle.detect() then</span> | ||
<span style="color:red">turtle.dig()</span> | <span style="color:red">turtle.dig()</span> | ||
<span style="color:green">end</span> | <span style="color:green">end</span> | ||
− | <span style="color:DarkViolet">itemcount = turtle.getItemCount( | + | <span style="color:DarkViolet">itemcount = turtle.getItemCount(16)</span> |
<span style="color:green">if itemcount == 64 then</span> | <span style="color:green">if itemcount == 64 then</span> | ||
''''Drop all stacks | ''''Drop all stacks | ||
Line 46: | Line 46: | ||
<span style="color:DarkViolet">itemcount = turtle.getItemCount(9)</span> | <span style="color:DarkViolet">itemcount = turtle.getItemCount(9)</span> | ||
<span style="color:green">if itemcount == 64 then</span> | <span style="color:green">if itemcount == 64 then</span> | ||
− | <span style="color:DarkCyan">for i=1, | + | <span style="color:DarkCyan">for i=1,16 do</span> |
''''Select each stack and then drops it | ''''Select each stack and then drops it | ||
<span style="color:DarkCyan">end</span> | <span style="color:DarkCyan">end</span> | ||
Line 56: | Line 56: | ||
<span style="color:red">turtle.dig()</span> | <span style="color:red">turtle.dig()</span> | ||
<span style="color:green">end</span> | <span style="color:green">end</span> | ||
− | <span style="color:DarkViolet">itemcount = turtle.getItemCount( | + | <span style="color:DarkViolet">itemcount = turtle.getItemCount(16)</span> |
<span style="color:green">if itemcount == 64 then</span> | <span style="color:green">if itemcount == 64 then</span> | ||
− | <span style="color:DarkCyan">for i=1, | + | <span style="color:DarkCyan">for i=1,16 do</span> |
<span style="color:red">turtle.select(i)<span> | <span style="color:red">turtle.select(i)<span> | ||
<span style="color:red">turtle.drop()<span> | <span style="color:red">turtle.drop()<span> |
Revision as of 19:30, 26 January 2013
Contents
Colors
Run Loop: while true do
If: if a==b then
Action: turtle.dig()
Var: a = turtle.getItemCount(1)
Print: Print("Cobble Farm")
For: for i=1,16 do
Image
Coding
First, you have to make a loop so the machine keeps running:
while true do 'Command end
Now, inside of the loop, you have to add something to detect the block:
while true do if turtle.detect() then 'Command end end
After that, the block must be mined:
while true do if turtle.detect() then turtle.dig() end end
This detects if a block is present, and then mines it. However, when all the 16 block spaces are filled with blocks, they must be dropped to collect new blocks:
while true do if turtle.detect() then turtle.dig() end itemcount = turtle.getItemCount(16) if itemcount == 64 then 'Drop all stacks end end
Not that it may not be a good idea to drop all stacks on the ground. To drop all stacks, another loop must be added:
while true do if turtle.detect() then turtle.dig() end itemcount = turtle.getItemCount(9) if itemcount == 64 then for i=1,16 do 'Select each stack and then drops it end end end
To select each stack and drop it, a turtle.select() and a turtle.drop() must be added:
while true do if turtle.detect() then turtle.dig() end itemcount = turtle.getItemCount(16) if itemcount == 64 then for i=1,16 do turtle.select(i) turtle.drop() end turtle.select(1) end end
Advanced Generator
This is the generator I created (for use with (height:4 width:2) monitor):
function counter() local i = 0 return function() i = i + 1 return i end end function modStr(num) if num < 10 then return "0" .. num else return num end end while true do if turtle.detect() then turtle.dig() term.clear() term.setCursorPos(1,1) local total = 0 for i=1,9,1 do total = total + turtle.getItemCount(i) end for i=1,9,1 do print("Row " .. i .. ": " .. turtle.getItemCount(i) .. " (" .. math.floor((turtle.getItemCount(i)/total)*100) .. "%)") end print("Total: " .. total) print("-----------------") local iterator = counter() print(" ___ ___ ___ ") print("|" .. modStr(turtle.getItemCount(iterator())) .. " |" .. modStr(turtle.getItemCount(iterator())) .. " |" .. modStr(turtle.getItemCount(iterator())) .. " |") print("|___|___|___|") print("|" .. modStr(turtle.getItemCount(iterator())) .. " |" .. modStr(turtle.getItemCount(iterator())) .. " |" .. modStr(turtle.getItemCount(iterator())) .. " |") print("|---|---|---|") print("|" .. modStr(turtle.getItemCount(iterator())) .. " |" .. modStr(turtle.getItemCount(iterator())) .. " |" .. modStr(turtle.getItemCount(iterator())) .. " |") print("|___|___|___|") print(" ") print("-----------------") print("Cobble Farmer") end totalcount = turtle.getItemCount(9) if totalcount == 64 then term.clear() term.setCursorPos(1,1) print("Dropping Stacks") print("...Please wait.") sleep(1) for i=1,9 do turtle.select(i) turtle.drop() end turtle.select(1) end end