Added new scripts and sorted things
This commit is contained in:
parent
d35c9517f9
commit
8fea20a1f0
35
Modules/hare.lua
Normal file
35
Modules/hare.lua
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
--[[Function Module program by Al Sweigart
|
||||||
|
Provides useful utility functions.]]
|
||||||
|
|
||||||
|
-- selectItem() selects the inventory
|
||||||
|
-- slot with the named item, returns
|
||||||
|
-- true if found and false if not
|
||||||
|
function selectItem(name)
|
||||||
|
-- check all inventory slots
|
||||||
|
local item
|
||||||
|
for slot = 1, 16 do
|
||||||
|
item = turtle.getItemDetail(slot)
|
||||||
|
if item ~= nil and item['name'] == name then
|
||||||
|
turtle.select(slot)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return false -- couldn't find item
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- selectEmptySlot() selects inventory
|
||||||
|
-- slot that is empty, returns true if
|
||||||
|
-- found, false if no empty spaces
|
||||||
|
function selectEmptySlot()
|
||||||
|
|
||||||
|
-- loop through all slots
|
||||||
|
for slot = 1, 16 do
|
||||||
|
if turtle.getItemCount(slot) == 0 then
|
||||||
|
turtle.select(slot)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false -- couldn't find empty space
|
||||||
|
end
|
49
Stone_Factory/brickcrafter.lua
Normal file
49
Stone_Factory/brickcrafter.lua
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
--[[Stone Brick Factory program by Al Sweigart
|
||||||
|
Gets stone from furnace to craft stone bricks, turtle 2 of 2]]
|
||||||
|
|
||||||
|
print('Starting stone brick crafting program')
|
||||||
|
|
||||||
|
local NUM_FURNACES = 5
|
||||||
|
local brickCount = 0
|
||||||
|
while true do
|
||||||
|
-- check turtle's fuel
|
||||||
|
if turtle.getFuelLevel() < (2 * NUM_FURNACES) then
|
||||||
|
error('Turtle needs more fuel!')
|
||||||
|
end
|
||||||
|
|
||||||
|
turtle.select(1) -- put stone in slot 1
|
||||||
|
|
||||||
|
-- start collecting stone from furnaces
|
||||||
|
for i = 1, NUM_FURNACES do
|
||||||
|
turtle.suckUp(64 - turtle.getItemCount(1)) -- get stone from furnace
|
||||||
|
if turtle.getItemCount(1) == 64 then
|
||||||
|
break -- stop once there are 64 stone blocks
|
||||||
|
end
|
||||||
|
if i ~= NUM_FURNACES then
|
||||||
|
turtle.back() -- move to next furnace
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- craft stone bricks
|
||||||
|
if turtle.getItemCount(1) == 64 then
|
||||||
|
turtle.transferTo(2, 16) -- put in slot 2
|
||||||
|
turtle.transferTo(5, 16) -- put in slot 5
|
||||||
|
turtle.transferTo(6, 16) -- put in slot 6
|
||||||
|
turtle.select(16) -- stone brick to go in slot 16
|
||||||
|
turtle.craft() -- craft stone bricks
|
||||||
|
brick.Count = brickCount + 64
|
||||||
|
print('Total stone bricks: ' .. brickCount)
|
||||||
|
else
|
||||||
|
print('Not enough stones yet. Sleeping...')
|
||||||
|
os.sleep(120) -- wait for 2 minutes
|
||||||
|
end
|
||||||
|
|
||||||
|
-- move back to chest (by first furnace)
|
||||||
|
for i = 1, NUM_FURNACES - 1 do
|
||||||
|
turtle.forward()
|
||||||
|
end
|
||||||
|
turtle.turnLeft() -- face chest
|
||||||
|
turtle.select(16) -- select stone bricks
|
||||||
|
turtle.drop() -- put stone bricks into chest
|
||||||
|
turtle.turnRight() -- face generator again
|
||||||
|
end
|
46
Stone_Factory/cobminer.lua
Normal file
46
Stone_Factory/cobminer.lua
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
--[[Stone Brick Factory program by Al Sweigart
|
||||||
|
Mines cobblestone from a generator, trutle 1 of 2]]
|
||||||
|
|
||||||
|
os.loadAPI('hare') -- load the hare module
|
||||||
|
local numToDrop
|
||||||
|
local NUM_FURNACES = 5
|
||||||
|
|
||||||
|
print('Starting mining program...')
|
||||||
|
while true do
|
||||||
|
-- mine cobblestone
|
||||||
|
if turtle.detect() then
|
||||||
|
print('Cobblestone detected. Mining...')
|
||||||
|
turtle.dig() -- Mine cobblestone
|
||||||
|
else
|
||||||
|
print('No cobblestone detected. Sleeping...')
|
||||||
|
os.sleep(0.5) -- half-second pause
|
||||||
|
end
|
||||||
|
|
||||||
|
-- check for a full stack of cobblestone
|
||||||
|
hare.selectItem('minecraft:cobblestone')
|
||||||
|
if turtle.getItemCount() == 64 then
|
||||||
|
-- check turtle's fuel
|
||||||
|
if turtle.getFuelLevel() < (2 * NUM_FURNACES) then
|
||||||
|
error('Turtle needs more fuel!')
|
||||||
|
end
|
||||||
|
|
||||||
|
-- put cobblestone in furnaces
|
||||||
|
print('Dropping off cobblestone...')
|
||||||
|
for furnacesToFill = NUM_FURNACES, 1, -1 do
|
||||||
|
turtle.back() -- move over furnace
|
||||||
|
numToDrop = math.floor(turtle.getItemCount() / furnacesToFill)
|
||||||
|
turtle.dropDown(numToDrop) -- put cobblestone in furnace
|
||||||
|
end
|
||||||
|
|
||||||
|
-- move back to cobblestone generator
|
||||||
|
for moves = 1, NUM_FURNACES do
|
||||||
|
turtle.forward()
|
||||||
|
end
|
||||||
|
|
||||||
|
if turtle.getItemCount() > 0 then
|
||||||
|
print('All furnaces full. Sleeping...')
|
||||||
|
os.sleep(300) -- wait for five minutes
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
57
Tree_Farm/farmtree.lua
Normal file
57
Tree_Farm/farmtree.lua
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
--[[Tree Farming program by Al Sweigart
|
||||||
|
Plants tree then cuts it down.]]
|
||||||
|
|
||||||
|
os.loadAPI('hare') -- load the hare module
|
||||||
|
|
||||||
|
local blockExists, item
|
||||||
|
local logCount = 0
|
||||||
|
|
||||||
|
-- check if choptree program exists
|
||||||
|
if not fs.exists('choptree.lua') then
|
||||||
|
error('You must install choptree program first.')
|
||||||
|
end
|
||||||
|
|
||||||
|
while true do
|
||||||
|
-- check inventory for saplings
|
||||||
|
if not hare.selectItem('minecraft:spruce_sapling') then
|
||||||
|
error('Out of spruce saplings.')
|
||||||
|
end
|
||||||
|
|
||||||
|
print('Planting...')
|
||||||
|
turtle.place() -- plant sapling
|
||||||
|
|
||||||
|
-- loop until a tree has grown
|
||||||
|
while true do
|
||||||
|
blockExists, item = turtle.inspect()
|
||||||
|
if blockExists and item['name'] == 'minecraft:spruce_sapling' then
|
||||||
|
-- "dye" is the name ID for bone meal
|
||||||
|
if not hare.selectItem('minecraft:dye') then
|
||||||
|
error('Out of bone meal.')
|
||||||
|
end
|
||||||
|
|
||||||
|
print('Using bone meal...')
|
||||||
|
turtle.place() -- use bone meal
|
||||||
|
else
|
||||||
|
break -- tree has grown
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
hare.selectEmptySlot()
|
||||||
|
shell.run('choptree') -- run choptree
|
||||||
|
|
||||||
|
-- move to and face chest
|
||||||
|
turtle.back()
|
||||||
|
turtle.turnLeft()
|
||||||
|
turtle.turnLeft()
|
||||||
|
|
||||||
|
-- put logs into chest
|
||||||
|
while hare.selectItem('minecraft:log') do
|
||||||
|
logCount = logCount + turtle.getItemCount()
|
||||||
|
print('Total logs: ' .. logCount)
|
||||||
|
turtle.drop()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- face planting spot
|
||||||
|
turtle.turnLeft()
|
||||||
|
turtle.turnLeft()
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user