Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- io.write("Length of the side example: 5 = 5x5 ")
- local size = tonumber(read())
- io.write("Start Y-Level (e.g. 64): ")
- local currentHeight = tonumber(read())
- local startY = currentHeight
- local targetHeight = -30
- local areasize = size * size
- -- Fläche vorwärts graben
- local function digLayerForward()
- for row = 1, size do
- for col = 1, size - 1 do
- turtle.dig()
- turtle.forward()
- end
- if row < size then
- if row % 2 == 1 then
- turtle.turnRight()
- turtle.dig()
- turtle.forward()
- turtle.turnRight()
- else
- turtle.turnLeft()
- turtle.dig()
- turtle.forward()
- turtle.turnLeft()
- end
- end
- end
- end
- -- Fläche rückwärts graben
- local function digLayerBackward(odd)
- if odd == true then
- for row = 1, size do
- for col = 1, size - 1 do
- turtle.dig()
- turtle.forward()
- end
- if row < size then
- if row % 2 == 1 then
- turtle.turnRight()
- turtle.dig()
- turtle.forward()
- turtle.turnRight()
- else
- turtle.turnLeft()
- turtle.dig()
- turtle.forward()
- turtle.turnLeft()
- end
- end
- end
- else
- for row = 1, size do
- for col = 1, size - 1 do
- turtle.dig()
- turtle.forward()
- end
- if row < size then
- if row % 2 == 1 then
- turtle.turnLeft()
- turtle.dig()
- turtle.forward()
- turtle.turnLeft()
- else
- turtle.turnRight()
- turtle.dig()
- turtle.forward()
- turtle.turnRight()
- end
- end
- end
- end
- end
- local unwanted = { cobblestone=true, dirt=true, grass=true, cobbled_deepslate=true, gravel=true }
- local function cleanupInventory()
- for i=1,16 do
- local d = turtle.getItemDetail(i)
- if d and unwanted[d.name:match(".+:(.+)")] then
- turtle.select(i); turtle.drop()
- end
- end
- turtle.select(1)
- end
- local function isInventoryFull()
- cleanupInventory()
- local maxvalue = areasize * 2
- if maxvalue > 800 then
- maxvalue = 800
- end
- local cnt=0
- for i=1,16 do cnt=cnt + turtle.getItemCount(i) end
- print("Inventar: " .. cnt)
- return cnt >= maxvalue
- end
- local function goHomeAndBack()
- local layer = (startY - currentHeight) + 1
- -- nach oben zur Startposition (bei der Kiste)
- while turtle.detectUp() do turtle.digUp(); sleep(0.2) end
- while currentHeight < startY do
- turtle.up()
- currentHeight = currentHeight + 1
- end
- -- Kiste ist direkt hinter der Turtle
- turtle.turnLeft()
- turtle.turnLeft()
- -- Items droppen
- for i = 2, 16 do
- turtle.select(i)
- turtle.drop()
- end
- turtle.select(1)
- turtle.turnLeft()
- turtle.turnLeft()
- -- zurück auf das alte Y-Level
- while turtle.detectDown() do turtle.digDown(); sleep(0.2) end
- while currentHeight > (startY - layer + 1) do
- turtle.down()
- currentHeight = currentHeight - 1
- end
- end
- local function moveCoalToSlot1()
- turtle.select(1)
- for i=2,16 do
- local it = turtle.getItemDetail(i)
- if it and it.name=="minecraft:coal" then
- turtle.transferTo(1, turtle.getItemCount(i))
- break
- end
- end
- turtle.select(1)
- end
- local function fuelCheck()
- moveCoalToSlot1()
- turtle.select(1)
- local coalusage = areasize / 80
- local coalusageround = math.ceil(coalusage)
- local d = turtle.getItemDetail()
- if d and d.name=="minecraft:coal" then
- turtle.refuel(coalusageround); return
- else
- print("No Coal")
- end
- end
- -- Hauptloop
- while currentHeight > targetHeight do
- fuelCheck()
- if isInventoryFull() then
- goHomeAndBack()
- end
- digLayerForward()
- turtle.turnLeft()
- turtle.turnLeft()
- while turtle.detectDown() do
- turtle.digDown()
- sleep(0.4)
- end
- if turtle.down() then
- currentHeight = currentHeight - 1
- print("Aktuelle Höhe: " .. currentHeight)
- else
- print("Konnte nicht nach unten.")
- break -- ✅ jetzt korrekt innerhalb der while-Schleife
- end
- digLayerBackward(size % 2 == 1)
- turtle.turnLeft()
- turtle.turnLeft()
- while turtle.detectDown() do
- turtle.digDown()
- sleep(0.4)
- end
- if turtle.down() then
- currentHeight = currentHeight - 1
- print("Aktuelle Höhe: " .. currentHeight)
- else
- print("Konnte nicht nach unten.")
- break -- ✅ jetzt korrekt innerhalb der while-Schleife
- end
- -- nach unten graben
- end
- print("Fertig!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement