Added new scripts and sorted things

This commit is contained in:
TheLux83 2020-11-06 12:00:34 +01:00
parent d35c9517f9
commit 8fea20a1f0
4 changed files with 187 additions and 0 deletions

35
Modules/hare.lua Normal file
View 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

View 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

View 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
View 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