--[[ Modules for generation or building vertical circles in --various forms which are filled. Good for underwater bases --written by TheLux --Check https://i.redd.it/swn3e9w8dyc31.jpg to see --the references for the numbers]] -- Check if the modules API is present -- and load it. We need it if not os.loadAPI('modules.lua') then error('Error! modules.lua is missing. Please insert it into turtle.') end --initial_full_circle_setup() checks if there is enough --material and sets the turtle to the start --position and places the first block. --Alle circles uses this function function initial_full_circle_setup(omaterial, omaterial_count, imaterial, imaterial_count) -- Check if we have enough material if modules.count_inventory(omaterial) < omaterial_count then error('Error! Not enough blocks of ' .. omaterial .. '. You need ' .. omaterial_count .. omaterial) return false end if modules.count_inventory(imaterial) < imaterial_count then error('Error! Not enough blocks of ' .. imaterial .. '. You need ' .. imaterial_count .. imaterial) return false end turtle.up() end --fvcircle5 builds a vertical 5 by 5 circle --which are filled with another material function fvcircle5(omaterial, imaterial, times) -- times checks how often this function should be called -- this is only for checking, if we have enough blocks in -- our inventory times = times or 1 omatcount = 12 * times imatcount = 9 * times -- Start the initial Setup and place the turtle in -- the right position fvcircles.initial_full_circle_setup(omaterial, omatcount, imaterial, imatcount) -- First Row turtle.turnLeft() turtle.back() turtle.back() for i = 1, 3 do modules.select_and_place_down(omaterial) turtle.forward() end turtle.up() -- Second and Third and Fourth Row for i = 1, 3 do turtle.turnLeft() turtle.turnLeft() modules.select_and_place_down(omaterial) turtle.forward() modules.select_and_place_down(imaterial) turtle.forward() modules.select_and_place_down(imaterial) turtle.forward() modules.select_and_place_down(imaterial) turtle.forward() modules.select_and_place_down(omaterial) turtle.up() end -- Fifth and last row turtle.turnLeft() turtle.turnLeft() for i = 1, 3 do turtle.forward() modules.select_and_place_down(omaterial) end turtle.turnRight() turtle.forward() for i = 1, 5 do turtle.down() end print('Done building a filled and vertical 5 by 5 circle') end