diff --git a/Modules/fvcircles.lua b/Modules/fvcircles.lua new file mode 100644 index 0000000..ef57e2b --- /dev/null +++ b/Modules/fvcircles.lua @@ -0,0 +1,78 @@ +--[[ 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) + return false + end + + if modules.count_inventory(imaterial) < imaterial_count then + error('Error! Not enough blocks of ' .. 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) + -- Start the initial Setup and place the turtle in + -- the right position + fvcircles.initial_full_circle_setup(omaterial, 12, imaterial, 9) + + -- 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(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 + + diff --git a/Underwater_Base/build_pipe.lua b/Underwater_Base/build_pipe.lua new file mode 100644 index 0000000..d622de8 --- /dev/null +++ b/Underwater_Base/build_pipe.lua @@ -0,0 +1,27 @@ +--[[ App for building an underwater Pipe +--written by TheLux +--Check https://i.redd.it/swn3e9w8dyc31.jpg to see +--the references for the numbers]] + +--- Check if the fvcircles API is present +-- and load it. We need it +if not os.loadAPI('fvcircles.lua') then + error('Error! fvcircles.lua is missing. Please insert it into turtle.') +end + +print("How many pipes do you want to build: ") +local pipes = read() + +print("What should be the outer Material (ex. glass): ") +local omaterial = read() + +print("What should be the inner Material (ex. sand): ") +local imaterial = read() + +print("Building a " .. pipes .. " blocks long tunnel") +for i = 1, pipes do + turtle.down() + fvcircles.fvcircle5(omaterial, imaterial) +end + +print("Done build the tunnel")