Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Hilfsfunktionen
- function selectItem(itemID)
- local slot = turtle.getSelectedSlot()
- local count = 0
- while (count < 16) do
- local info = turtle.getItemDetail(slot)
- if(info ~= nil and info.name == itemID) then
- turtle.select(slot)
- return true
- end
- if(slot == 16) then
- slot = 1
- else
- slot = slot +1
- end
- count = count + 1
- end
- return false
- end
- function anzItem(itemID)
- local numb = 0
- for slot=1, 16 do
- local info = turtle.getItemDetail(slot)
- if (info ~= nil and info.name == itemID) then
- numb = numb + turtle.getItemCount(slot)
- end
- end
- return numb
- end
- -- GUI
- function dialog()
- print("1) Treppe (RUNTER)")
- print("2) Treppe (HOCH)")
- print("3) Tunnel")
- write(">")
- inp = read()
- write("Breite: ")
- a = tonumber(read())
- write("Hoehe: ")
- b = tonumber(read())
- write("Tiefe: ")
- c = tonumber(read())
- print(a," ",b," ",c)
- if(inp == "1") then
- print("--Treppe(R)--")
- baueTreppeUnten(a,b,c)
- end
- if(inp == "2") then
- print("--Treppe(H)--")
- baueTreppeHoch(a,b,c)
- end
- if(inp == "3") then
- print("--Tunnel--")
- baueTunnel(a,b,c)
- end
- end
- function drawGUI(akt, komp)
- term.clear()
- term.setCursorPos(0,0)
- local hr = "---------------------------------------"
- print(hr)
- print(textutils.formatTime(os.time(),false)," ",os.computerLabel())
- print(hr)
- print("stage: ",akt," von ",komp)
- print("fuel: ",turtle.getFuelLevel(),"/",turtle.getFuelLimit())
- end
- -- bessere Turtle-Funktionen
- function dig()
- while (turtle.dig() ~= false) do end
- end
- function digUp()
- while (turtle.digUp() ~= false) do end
- end
- function digDown()
- while (turtle.digDown() ~= false) do end
- end
- function moveTurtle(side)
- if(side == "right") then
- turtle.turnRight()
- moveTurtle("front")
- turtle.turnLeft()
- end
- if(side == "left") then
- turtle.turnLeft()
- moveTurtle("front")
- turtle.turnRight()
- end
- if(side == "front") then
- while(turtle.forward() == false) do
- dig()
- turtle.attack()
- end
- end
- if(side == "up") then
- while(turtle.up() == false) do
- digUp()
- turtle.attack()
- end
- end
- if(side == "down") then
- while(turtle.down() == false) do
- digDown()
- turtle.attack()
- end
- end
- end
- -- Abbau-Funktionen
- function baueWandAb(breite, hoehe)
- function baueAb()
- local side = "right"
- for y=1,hoehe do
- dig()
- for x=2,breite do
- moveTurtle(side)
- dig()
- end
- if (y < hoehe) then
- moveTurtle("up")
- end
- if (side == "left") then
- side = "right"
- else
- side = "left"
- end
- end
- return side
- end
- function setzeZurueck(side)
- if(side == "left") then
- turtle.turnLeft()
- for x=2,breite do moveTurtle("front") end
- turtle.turnRight()
- end
- for y=2,hoehe do moveTurtle("down") end
- end
- setzeZurueck(baueAb())
- end
- function baueTunnel(breite, hoehe, tiefe)
- for z=1,tiefe do
- drawGUI(z,tiefe)
- baueWandAb(breite, hoehe)
- moveTurtle("front")
- end
- end
- function baueTreppeUnten(breite, hoehe, tiefe)
- for z=1,tiefe do
- drawGUI(z,tiefe)
- baueWandAb(breite, hoehe)
- moveTurtle("front")
- moveTurtle("down")
- end
- end
- function baueTreppeHoch(breite, hoehe, tiefe)
- for z=1,tiefe do
- drawGUI(z,tiefe)
- baueWandAb(breite, hoehe)
- moveTurtle("up")
- moveTurtle("front")
- end
- end
- -- Aufbau-Funktionen
- function baueBodenLinie(laenge, itemID)
- if (anzItem(itemID) < laenge) then
- print("Nicht genug '", itemID, "' im Inventar.")
- else
- for x=1,laenge do
- while (turtle.detectDown() == false) do
- moveTurtle("down")
- end
- moveTurtle("up")
- selectItem(itemID)
- turtle.placeDown()
- moveTurtle("front")
- end
- end
- end
- function baueBoden(breite, laenge, itemID)
- local isLeft = true
- for x=1, breite-1 do
- baueBodenLinie(laenge, itemID)
- if (isLeft) then
- turtle.turnRight()
- moveTurtle.forward()
- turtle.turnRight()
- else
- turtle.turnLeft()
- moveTurtle.forward()
- turtle.turnLeft()
- end
- isLeft = not isLeft
- end
- end
- -- Main
- baueBoden(2, 20, "minecraft:wool")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement