TeoremaPi

Subestación eléctrica

Sep 4th, 2020 (edited)
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- funcion que coloca columnas de 3 en 3
  2. -- x hacia delante
  3. -- y hacia la derecha
  4.  
  5. -- espacio entre filas (espacio en x)
  6. -- dis = 3 -> oxxxo
  7. disX = 9 --9
  8.  
  9. -- espacio entre columnas (espacio en y)
  10. disY = 4 --4
  11.  
  12. -- espacio entre grupos de 3 columnas
  13. disY2 = 9 --9
  14.  
  15. -- numero de filas
  16. nfil = 25
  17.  
  18. -- numero de columnas
  19. ncol = 9
  20.  
  21. -- si hay que colocar postes hay que poner la tortuga un bloque a la derecha del primero
  22. postes = false
  23.  
  24. -- mandamos el selector al primer slot del inventario
  25. turtle.select(1)
  26.  
  27. -- funcion para poner un bloque
  28. function colocarBloque(col)
  29.   -- seleccionamos el siguiente slot con materiales
  30.   while (turtle.getItemCount() == 0) and (turtle.getSelectedSlot() < 16) do
  31.     turtle.select(turtle.getSelectedSlot() + 1)
  32.   end
  33.  
  34.   if (turtle.getItemCount() == 0) and (turtle.getSelectedSlot() == 16) then
  35.       return false
  36.   end
  37.  
  38.   -- si hay que poner un bloque
  39.   if postes then
  40.     -- si hay que colocar postes
  41.     if col%2 == 0 then
  42.       -- los postes de las columnas pares son a la derecha
  43.       turtle.turnRight()
  44.       turtle.place()
  45.       turtle.turnLeft()
  46.     else
  47.       -- los postes de las columnas impares son a la derecha
  48.       turtle.turnLeft()
  49.       turtle.place()
  50.       turtle.turnRight()
  51.     end
  52.   else
  53.     -- si no hay que colocar postes, los bloques se ponen debajo
  54.     -- se intenta poner dos veces para que se conecten los cables electricos
  55.     turtle.placeDown()
  56.     turtle.placeDown()
  57.   end
  58.  
  59.   return true
  60. end
  61.  
  62.  
  63. -- este condicional es conectar el primer cable
  64. if not postes then
  65.   turtle.placeDown()
  66. end
  67.  
  68. -- hacemos todas la columnas
  69. for col = 1, ncol do
  70.  
  71.  
  72.   -- funcion para colocar bloque o poste
  73.   if not colocarBloque(col) then
  74.     return
  75.   end
  76.  
  77.   -- hacemos todas las filas
  78.   for fila = 1, nfil do
  79.     -- avanzamos la distancia entre filas
  80.     for k = 1, disX + 1 do
  81.       turtle.forward()
  82.     end
  83.  
  84.     -- funcion para colocar bloque o poste
  85.     if not colocarBloque(col) then
  86.       return
  87.     end
  88.   end
  89.  
  90.   -- al llegar al final de una columna giramos en funcion de si es par o impar
  91.   if col%2 == 1 then
  92.     turtle.turnRight()
  93.   else
  94.     turtle.turnLeft()
  95.   end
  96.  
  97.   -- avanzamos en función de si es una columna normal o es la ultima de un grupo de tres
  98.   if col%3 == 0 then
  99.     for k = 1, disY2 + 1 do
  100.       turtle.forward()
  101.     end
  102.   else
  103.     for k = 1, disY + 1 do
  104.       turtle.forward()
  105.     end
  106.   end
  107.  
  108.   -- giramos para recolocarse
  109.   if col%2 == 1 then
  110.     turtle.turnRight()
  111.   else
  112.     turtle.turnLeft()
  113.   end
  114. end
Add Comment
Please, Sign In to add comment