local TestingController = require("controller.testing_controller")
local ExcavationController = require("controller.excavation_controller")
local AudioController = require("controller.audio_controller")


local controllers = {
    TestingController:Create(),
    ExcavationController:Create(),
    AudioController:Create(),
}

print("Multiple controllers are available:")
print("1: Testing Mode")
print("2: Volume Excavation")
print("3: 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: StackOverflow once the inventory is full, unstocking doesn't work...
--       Is the InventoryFull check wrong?
-- TODO: Test if there's a chest when dropping/sucking/mining (don't mine chests!)
-- TODO: Add controller to build rooms with walls of a specified material
-- TODO: Support specifying the mining height
-- TODO: Add configurable trash_list with items that won't be picked up
-- TODO: Add a speaker to the turtle (listen to music while mining)