local TurtleTestingController = require("controller.turtle_testing_controller") local AudioTestingController = require("controller.audio_testing_controller") local ExcavationController = require("controller.excavation_controller") local AudioController = require("controller.audio_controller") local controllers = { TurtleTestingController:Create(), AudioTestingController:Create(), ExcavationController:Create(), AudioController:Create(), } print("Multiple controllers are available:") print("1: Turtle Testing Mode") print("2: Audio Testing Mode") print("3: Volume Excavation") print("4: Play Bangarang") local choice = 0 while choice < 1 or choice > #controllers do print("Choose a controller by entering its number:") choice = tonumber(io.read()) or 0 end controllers[choice]:Run() -- TODO: When refueling but chest is missing, wait there until the user puts a chest with fuel -- TODO: Improve error handling: Don't abort the program in all cases, -- but wait until the user fixes the issue (e.g. places a chest) -- TODO: Add shortcuts for the volume excavation: -- - Tunnel forward 3x2 or 3x3 with specified length -- - Excavate downwards (quarry) in a square, specify side length -- TODO: Add controller to build rooms with walls of a specified material -- TODO: Add a stair building mode (specify side length, min 2x2) -- TODO: Add configurable trash_list with items that won't be picked up