Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Einstellungen fuer das Loch
- local length = 10 -- Laenge des Lochs
- local width = 10 -- Breite des Lochs
- local depth = 0 -- Start-Position in Z (wird von der aktuellen Position der Turtle uebernommen)
- local fuelLevel = turtle.getFuelLevel() -- Initialer Treibstoffstand
- -- Hilfsfunktionen
- -- Bewegt die Turtle vorwaerts und graebt, wenn noetig
- function moveForward()
- while not turtle.forward() do
- turtle.dig()
- end
- end
- -- Graebt nach oben
- function digUp()
- turtle.digUp()
- end
- -- Graebt nach unten
- function digDown()
- turtle.digDown()
- end
- -- Prueft, ob das Inventar voll ist
- function isFull()
- for i = 1, 16 do
- if turtle.getItemCount(i) == 0 then
- return false
- end
- end
- return true
- end
- -- Prueft, ob eine Kiste hinter der Turtle vorhanden ist
- function checkForChest()
- -- Turtle dreht sich nach hinten und untersucht die Umgebung
- turtle.turnLeft()
- turtle.turnLeft()
- local success, data = turtle.inspect()
- turtle.turnLeft()
- turtle.turnLeft() -- Dreht die Turtle wieder zurueck
- if success and data.name == "minecraft:chest" then
- return true
- end
- return false
- end
- -- Entleert das Inventar in eine Kiste hinter der Turtle, wenn eine Kiste gefunden wurde
- function emptyInventory()
- if checkForChest() then
- print("Kiste gefunden! Entleere Inventar...")
- for i = 1, 15 do
- turtle.select(i)
- turtle.drop()
- end
- else
- print("Keine Kiste gefunden, werfe Items auf den Boden...")
- for i = 1, 15 do
- turtle.select(i)
- turtle.dropDown() -- Wirft die Items direkt nach unten
- end
- end
- end
- -- Tankt die Turtle, wenn der Treibstoff knapp wird
- function refuel()
- if turtle.getFuelLevel() < 50 then
- print("Treibstoff niedrig, versuche zu tanken...")
- for i = 1, 16 do
- local item = turtle.getItemDetail(i)
- if item and (item.name == "minecraft:coal" or item.name == "minecraft:charcoal") then
- turtle.select(i)
- turtle.refuel(1)
- if turtle.getFuelLevel() >= 50 then
- print("Treibstoff ausreichend!")
- return
- end
- end
- end
- print("Nicht genug Treibstoff. Bitte fuege mehr hinzu.")
- while turtle.getFuelLevel() < 50 do
- sleep(5)
- refuel()
- end
- end
- end
- -- Graebt das Loch in der aktuellen Blickrichtung
- function digLayer()
- -- Durchlaeuft die gesamte Laenge und Breite
- for i = 1, length do
- for j = 1, width do
- digDown() -- Graebt nach unten
- if j < width then
- moveForward() -- Bewegt sich vorwaerts, ausser nach der letzten Spalte
- end
- end
- -- Wenn das Ende einer Reihe erreicht ist, dreht sich die Turtle und wechselt die Richtung
- if i < length then
- if i % 2 == 0 then
- turtle.turnRight()
- moveForward()
- turtle.turnRight()
- else
- turtle.turnLeft()
- moveForward()
- turtle.turnLeft()
- end
- end
- end
- end
- -- Hauptfunktion
- function main()
- -- Initialisieren der Turtle
- print("Starte das Mining-Programm!")
- refuel()
- -- Beginnt den Grabevorgang
- for d = depth, 0, -1 do -- Graebt bis zum Bedrock
- print("Graebe Schicht bei Tiefe: " .. d)
- digLayer()
- -- Wenn das Inventar voll ist, entleert es sich
- if isFull() then
- print("Inventar ist voll, gehe zur Kiste zum Entleeren.")
- emptyInventory()
- end
- -- Bevor die Turtle mit der naechsten Schicht fortfaehrt, muss sie nach unten graeben
- if d > 0 then
- turtle.down()
- depth = depth - 1
- end
- end
- -- Fertig mit dem Graben
- print("Das Loch wurde fertig ausgehoben!")
- end
- -- Programm starten
- main()
Advertisement
Add Comment
Please, Sign In to add comment