Guest User

Untitled

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