OC_Scripts/scripts/cobble_generator/cobble_generator.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()