Advertisement
Guest User

Untitled

a guest
Feb 25th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.34 KB | None | 0 0
  1. -- Hilfsfunktionen
  2. function selectItem(itemID)
  3. local slot = turtle.getSelectedSlot()
  4. local count = 0
  5.  
  6. while (count < 16) do
  7. local info = turtle.getItemDetail(slot)
  8. if(info ~= nil and info.name == itemID) then
  9. turtle.select(slot)
  10. return true
  11. end
  12.  
  13. if(slot == 16) then
  14. slot = 1
  15. else
  16. slot = slot +1
  17. end
  18.  
  19. count = count + 1
  20. end
  21.  
  22. return false
  23. end
  24.  
  25. function anzItem(itemID)
  26. local numb = 0
  27.  
  28. for slot=1, 16 do
  29. local info = turtle.getItemDetail(slot)
  30.  
  31. if (info ~= nil and info.name == itemID) then
  32. numb = numb + turtle.getItemCount(slot)
  33. end
  34. end
  35.  
  36. return numb
  37. end
  38.  
  39. -- GUI
  40. function dialog()
  41. print("1) Treppe (RUNTER)")
  42. print("2) Treppe (HOCH)")
  43. print("3) Tunnel")
  44. write(">")
  45. inp = read()
  46.  
  47. write("Breite: ")
  48. a = tonumber(read())
  49. write("Hoehe: ")
  50. b = tonumber(read())
  51. write("Tiefe: ")
  52. c = tonumber(read())
  53. print(a," ",b," ",c)
  54.  
  55. if(inp == "1") then
  56. print("--Treppe(R)--")
  57. baueTreppeUnten(a,b,c)
  58. end
  59. if(inp == "2") then
  60. print("--Treppe(H)--")
  61. baueTreppeHoch(a,b,c)
  62. end
  63. if(inp == "3") then
  64. print("--Tunnel--")
  65. baueTunnel(a,b,c)
  66. end
  67.  
  68. end
  69.  
  70. function drawGUI(akt, komp)
  71. term.clear()
  72. term.setCursorPos(0,0)
  73.  
  74. local hr = "---------------------------------------"
  75. print(hr)
  76. print(textutils.formatTime(os.time(),false)," ",os.computerLabel())
  77. print(hr)
  78. print("stage: ",akt," von ",komp)
  79. print("fuel: ",turtle.getFuelLevel(),"/",turtle.getFuelLimit())
  80.  
  81.  
  82. end
  83.  
  84. -- bessere Turtle-Funktionen
  85. function dig()
  86. while (turtle.dig() ~= false) do end
  87. end
  88.  
  89. function digUp()
  90. while (turtle.digUp() ~= false) do end
  91. end
  92.  
  93. function digDown()
  94. while (turtle.digDown() ~= false) do end
  95. end
  96.  
  97. function moveTurtle(side)
  98.  
  99. if(side == "right") then
  100. turtle.turnRight()
  101. moveTurtle("front")
  102. turtle.turnLeft()
  103. end
  104.  
  105. if(side == "left") then
  106. turtle.turnLeft()
  107. moveTurtle("front")
  108. turtle.turnRight()
  109. end
  110.  
  111. if(side == "front") then
  112. while(turtle.forward() == false) do
  113. dig()
  114. turtle.attack()
  115. end
  116. end
  117.  
  118. if(side == "up") then
  119. while(turtle.up() == false) do
  120. digUp()
  121. turtle.attack()
  122. end
  123. end
  124.  
  125. if(side == "down") then
  126. while(turtle.down() == false) do
  127. digDown()
  128. turtle.attack()
  129. end
  130. end
  131.  
  132. end
  133.  
  134. -- Abbau-Funktionen
  135. function baueWandAb(breite, hoehe)
  136. function baueAb()
  137. local side = "right"
  138.  
  139. for y=1,hoehe do
  140.  
  141. dig()
  142. for x=2,breite do
  143. moveTurtle(side)
  144. dig()
  145. end
  146.  
  147. if (y < hoehe) then
  148. moveTurtle("up")
  149. end
  150.  
  151. if (side == "left") then
  152. side = "right"
  153. else
  154. side = "left"
  155. end
  156. end
  157.  
  158. return side
  159. end
  160.  
  161. function setzeZurueck(side)
  162. if(side == "left") then
  163. turtle.turnLeft()
  164. for x=2,breite do moveTurtle("front") end
  165. turtle.turnRight()
  166. end
  167.  
  168. for y=2,hoehe do moveTurtle("down") end
  169. end
  170.  
  171. setzeZurueck(baueAb())
  172. end
  173.  
  174. function baueTunnel(breite, hoehe, tiefe)
  175. for z=1,tiefe do
  176. drawGUI(z,tiefe)
  177. baueWandAb(breite, hoehe)
  178. moveTurtle("front")
  179. end
  180. end
  181.  
  182. function baueTreppeUnten(breite, hoehe, tiefe)
  183. for z=1,tiefe do
  184. drawGUI(z,tiefe)
  185. baueWandAb(breite, hoehe)
  186. moveTurtle("front")
  187. moveTurtle("down")
  188. end
  189. end
  190.  
  191. function baueTreppeHoch(breite, hoehe, tiefe)
  192. for z=1,tiefe do
  193. drawGUI(z,tiefe)
  194. baueWandAb(breite, hoehe)
  195. moveTurtle("up")
  196. moveTurtle("front")
  197. end
  198. end
  199.  
  200.  
  201. -- Aufbau-Funktionen
  202. function baueBodenLinie(laenge, itemID)
  203. if (anzItem(itemID) < laenge) then
  204. print("Nicht genug '", itemID, "' im Inventar.")
  205. else
  206. for x=1,laenge do
  207. while (turtle.detectDown() == false) do
  208. moveTurtle("down")
  209. end
  210. moveTurtle("up")
  211. selectItem(itemID)
  212. turtle.placeDown()
  213. moveTurtle("front")
  214. end
  215. end
  216. end
  217.  
  218. function baueBoden(breite, laenge, itemID)
  219. local isLeft = true
  220.  
  221. for x=1, breite-1 do
  222. baueBodenLinie(laenge, itemID)
  223.  
  224. if (isLeft) then
  225. turtle.turnRight()
  226. moveTurtle.forward()
  227. turtle.turnRight()
  228. else
  229. turtle.turnLeft()
  230. moveTurtle.forward()
  231. turtle.turnLeft()
  232. end
  233.  
  234. isLeft = not isLeft
  235. end
  236. end
  237.  
  238. -- Main
  239. baueBoden(2, 20, "minecraft:wool")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement