Advertisement
AdslHouba

Dessiner/écrire avec de la lave

Aug 21st, 2015
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.50 KB | None | 0 0
  1. -- Création Adsl Houba
  2. -- Demo et explications https://youtu.be/w5BPnJxuZRw
  3.  
  4. -- Liste des cables  dans l'ordre pour la vue public
  5. liste={
  6.     {"back",colors.black},
  7.     {"back",colors.red},
  8.     {"back",colors.green},
  9.     {"back",colors.brown},
  10.     {"back",colors.blue},
  11.     {"back",colors.purple},
  12.     {"back",colors.cyan},
  13.     {"back",colors.lightGray},
  14.     {"back",colors.gray},
  15.     {"back",colors.pink},
  16.     {"back",colors.lime},
  17.     {"back",colors.yellow},
  18.     {"back",colors.lightBlue},
  19.     {"back",colors.magenta},
  20.     {"back",colors.orange},
  21.    
  22.     {"left",colors.black},
  23.     {"left",colors.red},
  24.     {"left",colors.green},
  25.     {"left",colors.brown},
  26.     {"left",colors.blue},
  27.     {"left",colors.purple},
  28.     {"left",colors.cyan},
  29.     {"left",colors.lightGray},
  30.     {"left",colors.gray},
  31.     {"left",colors.pink},
  32.     {"left",colors.lime},
  33.     {"left",colors.yellow},
  34.     {"left",colors.lightBlue},
  35.     {"left",colors.magenta},
  36.     {"left",colors.orange}
  37. }
  38.  
  39. -- Redstone actif par defaut
  40. redstone.setOutput("back",true);
  41. redstone.setOutput("left",true);
  42.  
  43. -- Liste de tous les channels
  44. tous={}
  45. tous.left=0;
  46. tous.back=0;
  47. i=1
  48. while i<=30 do
  49.     tous[liste[i][1]]=tous[liste[i][1]]+liste[i][2]
  50.     -- C'est un principe binaire 2 orange, 4 magenta, 2+4=6 orange et magenta
  51.     -- pour tous allumer, on fait le total de tous (en différenciant pour chaque coté)
  52.     i=i+1
  53. end
  54. -- On defini les couleurs lié à la redstonne
  55. redstone.setBundledOutput('left',tous.left)
  56. redstone.setBundledOutput('back',tous.back)
  57.  
  58. -- Le dessin : 0 pas de lave, 1 de la lave
  59. -- Pour des lettres ne pas oublier que le bas de la lettre sort avant le haut
  60. anim={
  61.     '000000101000100000000000000000',
  62.     '111000101000101110100010001110',
  63.     '101011101110101000100010001000',
  64.     '111010101010101100100010001100',
  65.     '001010101010101000101010101000',
  66.     '111010101110101110111011101110'
  67. }
  68.  
  69. toto={}
  70. toto.left=0;
  71. toto.back=0;
  72. i=1
  73. -- on scanne tous le dessin
  74. while(anim[i]) do
  75.     pis=1
  76.     toto.left=0;
  77.     toto.back=0;
  78.     -- on scanne les 30 couleurs utilisées
  79.     while(pis<=30) do
  80.         t=string.sub(anim[i],pis,pis)
  81.         -- si 0 pas de lave on ajoute pour que le piston reste étendu
  82.         if t=='0' then
  83.             toto[liste[pis][1]]=toto[liste[pis][1]]+liste[pis][2]  
  84.         end
  85.         pis=pis+1
  86.     end
  87.     -- on applique
  88.     redstone.setBundledOutput('left',toto.left)
  89.     redstone.setBundledOutput('back',toto.back)
  90.     i=i+1
  91.     -- on reprend dans 5 seconde
  92.     -- la lave mais bcp de temps à couler de 2 block pour devenir visible
  93.     os.sleep(5)
  94. end
  95. -- On referme tous
  96. redstone.setBundledOutput('left',tous.left)
  97. redstone.setBundledOutput('back',tous.back)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement