Guest User

Untitled

a guest
Feb 4th, 2021
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. -- ==========================
  2. -- === Parameter einlesen ===
  3. -- ==========================
  4.  
  5. local tArgs = { ... }
  6.  
  7. if #tArgs ~= 3 then
  8. print( "Usage: fuellen <breite> <laenge> <hoehe>" )
  9. print( "Turtle Initialposition: Vorne links unten 1 über erstem Block" )
  10. return
  11. end
  12.  
  13. local breite = tonumber( tArgs[1] )
  14. local laenge = tonumber( tArgs[2] )
  15. local hoehe = tonumber( tArgs[3] )
  16.  
  17. -- =================
  18. -- === Debugging ===
  19. -- =================
  20.  
  21. print( "Fuelle Quader mit Blöcken "..breite.." breit x "..laenge.." lang x "..hoehe.." hoch" )
  22.  
  23. -- ======================
  24. -- === Quader fuellen ===
  25. -- ======================
  26.  
  27. local aktuellerSlot = 1
  28.  
  29. -- Initialposition nach vorne verlassen um Zielgebiet zu erreichen
  30. turtle.forward()
  31.  
  32. for h=1,hoehe do
  33. for x=1,breite do
  34. -- Über die gesamte Länge jeweils einen Block unten platzieren und voranschreiten
  35. -- Ausnahme: Beim letzen Block nach dem Block platzieren nicht voranschreiten
  36. -- um das Gebiet nicht zu verlassen
  37. -- anschließend den ganzen Weg zurücklaufen
  38. for y=1,laenge do
  39. if not turtle.detectDown() then
  40.  
  41. -- Via detectDown() wurde festgestellt dass unter dem Turtle noch kein Block platziert ist
  42. -- Es wird nun zunächst überprüft ob der Turtle noch Items im aktuellen Slot hat
  43. -- Falls nicht wird der nächste Slot gewählt
  44. -- Falls der 17. (also nicht existente) Slot erreicht wird, bricht die gesamte Funktion ab via return
  45. if turtle.getItemCount(aktuellerSlot) == 0 then
  46. aktuellerSlot = aktuellerSlot + 1
  47. if aktuellerSlot > 16 then
  48. return
  49. end
  50. turtle.select(aktuellerSlot)
  51. end
  52.  
  53. if turtle.getItemCount(aktuellerSlot) == 0 then
  54. return
  55. end
  56.  
  57. turtle.placeDown()
  58. end
  59.  
  60. if y ~= laenge then
  61. turtle.forward()
  62. end
  63. end
  64. for y=1,laenge-1 do
  65. turtle.back()
  66. end
  67.  
  68. -- Sobald zurückgelaufen nach rechts zur nächsten Reihe wechseln
  69. -- Ausnahme: Beim letzten Block nach rechts nicht noch eins weiter nach rechts laufen
  70. -- da sonst das Gebiet verlassen würde
  71. if x ~= breite then
  72. turtle.turnRight()
  73. turtle.forward()
  74. turtle.turnLeft()
  75. end
  76. end
  77. turtle.turnLeft()
  78. for x=1,breite-1 do
  79. turtle.forward()
  80. end
  81. turtle.turnRight()
  82.  
  83. if h ~= hoehe then
  84. turtle.up()
  85. end
  86. end
  87.  
  88. -- Turtle zurücksetzen
  89. turtle.select(1)
  90.  
  91.  
Advertisement
Add Comment
Please, Sign In to add comment