-- 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()