Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Hilfsfunktion: Prüft den Block unter der Turtle auf ein Wort
- local function checkBlockDown(word)
- local success, data = turtle.inspectDown()
- if success and data.name:find(word) then
- return true, data.name
- end
- return false
- end
- function unload()
- for i=1,16 do
- if turtle.getItemCount(i) > 0 then
- turtle.select(i)
- turtle.dropDown()
- end
- end
- turtle.select(1)
- end
- -- Funktion: Findet den Weg zurück zur Startmauer/Kiste
- local function returnToStart()
- print("Fahre zurück zur Startposition...")
- if turtle.detectDown() then
- turtle.up()
- turtle.up()
- else
- turtle.up()
- end
- -- Zurückfahren bis es nicht mehr weiter geht
- while turtle.back() do
- -- Die Turtle fährt einfach so lange rückwärts wie möglich
- end
- -- Nach unten bewegen, bis ein Boden erreicht ist
- while not turtle.detectDown() do
- turtle.down()
- end
- print("Startpunkt (Mauer/Boden) erreicht.")
- unload()
- end
- -- Funktion: Die Initialisierungs-Prüfung (Kisten-Check)
- local function ensureStartingPosition()
- if not checkBlockDown("chest") then
- print("Keine Kiste gefunden. Kalibriere Position...")
- if turtle.detectDown() then
- -- 2 Blöcke nach oben wenn Boden da ist
- turtle.up()
- turtle.up()
- else
- -- Nur 1 Block nach oben wenn kein Boden da ist
- turtle.up()
- end
- returnToStart()
- else
- print("Kiste bestätigt. Starte Farm-Vorgang.")
- end
- end
- -- Hauptschleife
- while true do
- -- 1. Check am Anfang: Stehe ich auf einer Kiste?
- ensureStartingPosition()
- -- 2. Farmen in einer Reihe
- while true do
- -- Zuckerrohr vor der Turtle abbauen
- turtle.dig()
- -- Aufsaugen, falls Items heruntergefallen sind
- turtle.suck()
- -- Versuchen nach vorne zu fahren
- if not turtle.forward() then
- print("Weg blockiert, fahre zurück.")
- break
- end
- -- Prüfen, ob wir noch auf Zuckerrohr-Boden (z.B. Sand/Erde unter dem Rohr) sind
- -- Laut deiner Logik: Abbruch wenn kein Block drunter oder Block kein "sugar_cane"
- local isSugarCane, name = checkBlockDown("sugar_cane")
- if not isSugarCane then
- print("Ende des Feldes erreicht (kein Zuckerrohr mehr).")
- turtle.back() -- Einen Schritt zurück wie gewünscht
- break
- end
- end
- -- 3. Zurückkehren und Entleeren (optional könntest du hier turtle.dropDown() einfügen)
- returnToStart()
- print("Warte kurz vor dem nächsten Durchlauf...")
- sleep(300) -- Kurze Pause, damit das Zuckerrohr wachsen kann
- end
Advertisement
Add Comment
Please, Sign In to add comment