AnonymusHochgenuss

sugarcanefarm

Mar 29th, 2026 (edited)
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. -- Hilfsfunktion: Prüft den Block unter der Turtle auf ein Wort
  2. local function checkBlockDown(word)
  3. local success, data = turtle.inspectDown()
  4. if success and data.name:find(word) then
  5. return true, data.name
  6. end
  7. return false
  8. end
  9.  
  10. function unload()
  11. for i=1,16 do
  12. if turtle.getItemCount(i) > 0 then
  13. turtle.select(i)
  14. turtle.dropDown()
  15. end
  16. end
  17. turtle.select(1)
  18. end
  19.  
  20. -- Funktion: Findet den Weg zurück zur Startmauer/Kiste
  21. local function returnToStart()
  22. print("Fahre zurück zur Startposition...")
  23.  
  24. if turtle.detectDown() then
  25. turtle.up()
  26. turtle.up()
  27. else
  28. turtle.up()
  29. end
  30. -- Zurückfahren bis es nicht mehr weiter geht
  31. while turtle.back() do
  32. -- Die Turtle fährt einfach so lange rückwärts wie möglich
  33. end
  34.  
  35. -- Nach unten bewegen, bis ein Boden erreicht ist
  36. while not turtle.detectDown() do
  37. turtle.down()
  38. end
  39. print("Startpunkt (Mauer/Boden) erreicht.")
  40. unload()
  41. end
  42.  
  43. -- Funktion: Die Initialisierungs-Prüfung (Kisten-Check)
  44. local function ensureStartingPosition()
  45. if not checkBlockDown("chest") then
  46. print("Keine Kiste gefunden. Kalibriere Position...")
  47. if turtle.detectDown() then
  48. -- 2 Blöcke nach oben wenn Boden da ist
  49. turtle.up()
  50. turtle.up()
  51. else
  52. -- Nur 1 Block nach oben wenn kein Boden da ist
  53. turtle.up()
  54. end
  55. returnToStart()
  56. else
  57. print("Kiste bestätigt. Starte Farm-Vorgang.")
  58. end
  59. end
  60.  
  61. -- Hauptschleife
  62. while true do
  63. -- 1. Check am Anfang: Stehe ich auf einer Kiste?
  64. ensureStartingPosition()
  65.  
  66. -- 2. Farmen in einer Reihe
  67. while true do
  68. -- Zuckerrohr vor der Turtle abbauen
  69. turtle.dig()
  70. -- Aufsaugen, falls Items heruntergefallen sind
  71. turtle.suck()
  72.  
  73. -- Versuchen nach vorne zu fahren
  74. if not turtle.forward() then
  75. print("Weg blockiert, fahre zurück.")
  76. break
  77. end
  78.  
  79. -- Prüfen, ob wir noch auf Zuckerrohr-Boden (z.B. Sand/Erde unter dem Rohr) sind
  80. -- Laut deiner Logik: Abbruch wenn kein Block drunter oder Block kein "sugar_cane"
  81. local isSugarCane, name = checkBlockDown("sugar_cane")
  82. if not isSugarCane then
  83. print("Ende des Feldes erreicht (kein Zuckerrohr mehr).")
  84. turtle.back() -- Einen Schritt zurück wie gewünscht
  85. break
  86. end
  87. end
  88.  
  89. -- 3. Zurückkehren und Entleeren (optional könntest du hier turtle.dropDown() einfügen)
  90. returnToStart()
  91.  
  92. print("Warte kurz vor dem nächsten Durchlauf...")
  93. sleep(300) -- Kurze Pause, damit das Zuckerrohr wachsen kann
  94. end
Advertisement
Add Comment
Please, Sign In to add comment