Advertisement
Guest User

Coupe

a guest
Aug 1st, 2014
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. --Ce programme permet de découper un arbre seul.
  2. --Plus d'info sur https://www.youtube.com/watch?v=rnhgpmMM6jM et https://www.youtube.com/watch?v=aPwSHFlwwq0
  3.  
  4. --Initialisation slots turtle
  5. slotCharbon = 7
  6. slotWood = 1
  7. slotPlastic = 2
  8. slotTree = 3
  9. slotWaypoint = 8
  10. slotChest = 9
  11. slotBonemeal = 10
  12.  
  13. --Permet à la turtle de refaiure le plein d'energie si la turtle à moins de 800 d'énergie
  14. function reEnergy()
  15. turtle.select(slotCharbon)
  16. if turtle.getFuelLevel() < 800 then
  17. turtle.suck()
  18. turtle.refuel()
  19. end
  20. end
  21.  
  22. -- Permet de déposer le "itemSlotName" (slotWood, slotPlastic, ...) dans le container situé en dessous de la turtle
  23. function deposeItem(itemSlotName)
  24. turtle.select(itemSlotName)
  25. turtle.drop(turtle.getItemCount(itemSlotName)-1)
  26. end
  27.  
  28. --Permet de refaire le plein de "Item" si la turtle en à moins de count dans son inventaire
  29. function reItem(itemSlotName, count, suckType)
  30. turtle.select(itemSlotName)
  31. if turtle.getItemCount(itemSlotName) < count then
  32. if suckType == "suckUp" then
  33. turtle.suckUp()
  34. else
  35. turtle.suck()
  36. end
  37. end
  38. end
  39.  
  40.  
  41. --Vérifie si le block situé sous la turtle est du même type que le "type" (waypoint, chest, ...)défini plus haut. Utilisé comme réparage
  42. --pour le déplacement de la turtle (nottament lors de son initialisation)
  43. function isBlockType(type)
  44. turtle.select(type)
  45. return turtle.compare()
  46. end
  47.  
  48. --Replante un arbre
  49. function rePlant()
  50. turtle.select(slotTree)
  51. turtle.place()
  52. end
  53.  
  54. --Fonction qui permet de déposer le bois, le plastic, refaire le plein d'énergie et de sapling, de replanter l'arbre et
  55. --d'attendre qu'il pousse
  56. function reAndFill(init)
  57. if not init then
  58. turtle.turnLeft()
  59. turtle.turnLeft()
  60. while true do
  61. turtle.forward()
  62. end
  63. end
  64. turtle.turnLeft()
  65. reEnergy()
  66. turtle.turnRight()
  67. deposeItem(slotWood)
  68. deposeItem(slotPlastic)
  69. turtle.turnRight()
  70. reItem(slotTree, 2, "suck")
  71. turtle.turnRight()
  72. reItem(slotBonemeal, 5, "suckUp")
  73. i = 0
  74. while isBlockType(slotWaypoint) do
  75. i = i+1
  76. turtle.forward()
  77. if i > 10 then
  78. break
  79. end
  80. else
  81. turtle.back()
  82. end
  83.  
  84. rePlant()
  85. os.sleep(200)
  86. turtle.select(slotBonemeal)
  87. for i=0,4 do
  88. turtle.place()
  89. end
  90. end
  91.  
  92. --Fonction qui permet de découper l'arbre. Fonctionnement uniquement avec des troncs droits (une seule ligne de tronc).
  93. --La turtle casse le bois et monte en hauteur tant qu'il y a du bois devant elle, jusqu'a atteindre la cime de l'arbre.
  94. function decoupeArbre()
  95. turtle.select(slotWood)
  96. while turtle.detect() do
  97. turtle.dig()
  98. turtle.digUp()
  99. turtle.up()
  100. end
  101. while not isBlockType(slotWaypoint) do
  102. turtle.down()
  103. end
  104. end
  105.  
  106. --Fonction d'initialisation, déclenchée au démarrage de la turtle. Indispensable pour repositioner correctement la
  107. --turtle (utile en cas de reboot serv par exemple)
  108. function init()
  109. turtle.select(slotCharbon)
  110. turtle.refuel(1)
  111.  
  112. while true do
  113. if not isBlockType(slotWaypoint) then
  114. if not turtle.down() then
  115. break
  116. end
  117. else
  118. break
  119. end
  120. end
  121.  
  122. while true do
  123. if not turtle.forward() then
  124. if isBlockType(slotChest) then
  125. break
  126. else
  127. turtle.turnLeft()
  128. end
  129. else
  130. if isBlockType(slotWaypoint) then
  131. break
  132. else
  133. turtle.back()
  134. turtle.turnLeft()
  135. end
  136. end
  137. end
  138. while turtle.forward() do
  139. if not isBlockType(slotWaypoint) then
  140. turtle.turnLeft()
  141. turtle.turnLeft()
  142. turtle.forward()
  143. end
  144. end
  145. tourne()
  146. end
  147.  
  148. --Fonction principale, appelé par le programme parent
  149. function tourne()
  150. reAndFill(true)
  151. while true do
  152. decoupeArbre()
  153. reAndFill()
  154. end
  155. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement