Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Programm fuer eine Treppe abwaerts (optional ohne Boden-Platzierung)
- local args = { ... }
- local steps = tonumber(args[1])
- -- Wenn das zweite Argument "off" ist, wird placeMode auf false gesetzt
- local placeMode = args[2] ~= "off"
- if not steps then
- print("Nutzung: stairdown <anzahl> [off]")
- print("Beispiel: stairdown 10 off")
- return
- end
- -- Funktion: Findet den naechsten Slot mit Bloecken
- local function selectBlocks()
- if turtle.getItemCount() > 0 then
- return true
- end
- for i = 1, 16 do
- if turtle.getItemCount(i) > 0 then
- turtle.select(i)
- return true
- end
- end
- print("Fehler: Keine Bloecke vorhanden!")
- return false
- end
- -- Funktion: Decke ueber der Turtle entfernen
- local function clearCeiling()
- while turtle.detectUp() do
- turtle.digUp()
- sleep(0.5)
- end
- end
- -- Funktion: Sicher nach unten bewegen
- local function moveDown()
- while turtle.detectDown() do
- turtle.digDown()
- sleep(0.5)
- end
- if not turtle.down() then
- print("Blockiert beim Runtergehen!")
- return false
- end
- return true
- end
- -- Funktion: Sicher vorwaerts bewegen
- local function moveForward()
- while turtle.detect() do
- turtle.dig()
- sleep(0.5)
- end
- if not turtle.forward() then
- print("Blockiert beim Vorwaertsgehen!")
- return false
- end
- return true
- end
- print("Starte Treppenbau (" .. steps .. " Stufen)")
- if not placeMode then
- print("Modus: OHNE Boden-Platzierung")
- end
- for i = 1, steps do
- -- Checke Treibstoff
- if turtle.getFuelLevel() == 0 then
- print("Fehler: Kein Treibstoff!")
- break
- end
- -- 1. Decke am aktuellen Standpunkt entfernen
- clearCeiling()
- -- 2. Schritt: Nach unten graben und gehen
- if not moveDown() then break end
- -- 3. Schritt: Block unter sich platzieren (NUR wenn placeMode true ist)
- if placeMode then
- if not turtle.detectDown() then
- if selectBlocks() then
- turtle.placeDown()
- end
- end
- end
- -- 4. Schritt: Nach vorne graben und gehen
- if not moveForward() then break end
- -- 5. Decke am neuen Standpunkt entfernen
- clearCeiling()
- print("Stufe " .. i .. " von " .. steps .. " fertig.")
- end
- print("Treppe beendet!")
Advertisement
Add Comment
Please, Sign In to add comment