Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- ==========================
- -- === Parameter einlesen ===
- -- ==========================
- local tArgs = { ... }
- if #tArgs ~= 3 then
- print( "Usage: fuellen <breite> <laenge> <hoehe>" )
- print( "Turtle Initialposition: Vorne links unten 1 über erstem Block" )
- return
- end
- local breite = tonumber( tArgs[1] )
- local laenge = tonumber( tArgs[2] )
- local hoehe = tonumber( tArgs[3] )
- -- =================
- -- === Debugging ===
- -- =================
- print( "Fuelle Quader mit Blöcken "..breite.." breit x "..laenge.." lang x "..hoehe.." hoch" )
- -- ======================
- -- === Quader fuellen ===
- -- ======================
- local aktuellerSlot = 1
- -- Initialposition nach vorne verlassen um Zielgebiet zu erreichen
- turtle.forward()
- for h=1,hoehe do
- for x=1,breite do
- -- Über die gesamte Länge jeweils einen Block unten platzieren und voranschreiten
- -- Ausnahme: Beim letzen Block nach dem Block platzieren nicht voranschreiten
- -- um das Gebiet nicht zu verlassen
- -- anschließend den ganzen Weg zurücklaufen
- for y=1,laenge do
- if not turtle.detectDown() then
- -- Via detectDown() wurde festgestellt dass unter dem Turtle noch kein Block platziert ist
- -- Es wird nun zunächst überprüft ob der Turtle noch Items im aktuellen Slot hat
- -- Falls nicht wird der nächste Slot gewählt
- -- Falls der 17. (also nicht existente) Slot erreicht wird, bricht die gesamte Funktion ab via return
- if turtle.getItemCount(aktuellerSlot) == 0 then
- aktuellerSlot = aktuellerSlot + 1
- if aktuellerSlot > 16 then
- return
- end
- turtle.select(aktuellerSlot)
- end
- if turtle.getItemCount(aktuellerSlot) == 0 then
- return
- end
- turtle.placeDown()
- end
- if y ~= laenge then
- turtle.forward()
- end
- end
- for y=1,laenge-1 do
- turtle.back()
- end
- -- Sobald zurückgelaufen nach rechts zur nächsten Reihe wechseln
- -- Ausnahme: Beim letzten Block nach rechts nicht noch eins weiter nach rechts laufen
- -- da sonst das Gebiet verlassen würde
- if x ~= breite then
- turtle.turnRight()
- turtle.forward()
- turtle.turnLeft()
- end
- end
- turtle.turnLeft()
- for x=1,breite-1 do
- turtle.forward()
- end
- turtle.turnRight()
- if h ~= hoehe then
- turtle.up()
- end
- end
- -- Turtle zurücksetzen
- turtle.select(1)
Advertisement
Add Comment
Please, Sign In to add comment