74 lines
1.6 KiB
Lua
74 lines
1.6 KiB
Lua
--[[
|
|
Author: Andrew Lalis
|
|
File: cobble_generator.lua
|
|
Version: 1.0
|
|
Last Modified: 24-06-2018
|
|
|
|
Description:
|
|
This script makes a robot operate a square cobble generator, in the setup below
|
|
|
|
0CO
|
|
CRC
|
|
OC0
|
|
Where 0 = lava, O = water, C = cobble, and R = robot.
|
|
|
|
The items gathered will be dropped below the robot, into a hopper or chest.
|
|
|
|
--]]
|
|
|
|
--Require statements and componenent definitions.
|
|
local robot = require("robot")
|
|
|
|
--Global variables:
|
|
local cyclesPerformed = 0
|
|
|
|
--[[
|
|
Mines one block of cobble, checking for a proper tool first.
|
|
--]]
|
|
local function mineCobble()
|
|
local dur = robot.durability()
|
|
while not dur do
|
|
print("No valid tool. Please place one in the tool slot and press enter.")
|
|
io.read()
|
|
dur = robot.durability()
|
|
end
|
|
robot.swing()
|
|
end
|
|
|
|
--[[
|
|
Performs one cycle of cobblestone harvesting. Will check if it has a tool.
|
|
--]]
|
|
local function cycle()
|
|
for i=1,4 do
|
|
mineCobble()
|
|
robot.turnRight()
|
|
end
|
|
robot.dropDown()
|
|
print("Cycles done: "..cyclesPerformed)
|
|
cyclesPerformed = cyclesPerformed + 1
|
|
end
|
|
|
|
--[[
|
|
Main function in which the iterations of the cycle are performed.
|
|
--]]
|
|
local function main()
|
|
print("# Andrew's Cobblestone Generator #")
|
|
print("# Copyright 2018 Andrew Lalis #")
|
|
print("#--------------------------------#")
|
|
print("Please enter the number of cycles to perform, or -1 to continue forever.")
|
|
local choice = tonumber(io.read())
|
|
if (choice == nil or choice == -1) then
|
|
print("Beginning infinite cycles.")
|
|
while true do
|
|
cycle()
|
|
end
|
|
else
|
|
print("Beginning "..choice.." cycles.")
|
|
for i=1,choice do
|
|
cycle()
|
|
end
|
|
end
|
|
print("#------Program completed.--------#")
|
|
end
|
|
|
|
main() |