Advertisement
BlueFox_

F1 flag clients flag

Jul 10th, 2024 (edited)
413
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.17 KB | Gaming | 0 0
  1. -- pastebin get n2naMNvc flag
  2.  
  3. -- Initialisation
  4. print("Machine prete a recevoir les flags.")
  5. rednet.open("back")
  6. local monitor = peripheral.wrap("top")
  7. monitor.clear()
  8. monitor.setTextScale(1)  -- Réduire l'échelle du texte pour s'adapter à l'écran
  9.  
  10. local colorsMap = {
  11.     yellow = colors.yellow,
  12.     red = colors.red,
  13.     green = colors.green,
  14.     safety_car = colors.orange,
  15.     clear = colors.black
  16. }
  17.  
  18. local function displayColor(color)
  19.     monitor.setBackgroundColor(color)
  20.     monitor.clear()
  21. end
  22.  
  23. local function displaySafetyCar()
  24.     local w, h = monitor.getSize()
  25.     local text = "SAFETY CAR"
  26.     local textWidth = #text
  27.    
  28.     -- Afficher le cadre jaune
  29.     monitor.setBackgroundColor(colors.yellow)
  30.     monitor.clear()
  31.    
  32.     -- Calculer les dimensions du rectangle noir autour du texte
  33.     local rectWidth = textWidth + 4  -- Largeur du texte + marges
  34.     local rectHeight = 3  -- Hauteur fixe
  35.    
  36.     -- Centrer le rectangle noir
  37.     local startX = math.floor((w - rectWidth) / 2) + 1  -- Décalage d'1 pixel vers la droite
  38.     local startY = math.floor((h - rectHeight) / 2) + 1  -- Décalage d'1 pixel vers le bas
  39.    
  40.     -- Afficher le rectangle noir
  41.     monitor.setBackgroundColor(colors.black)
  42.     for y = startY, startY + rectHeight - 1 do
  43.         for x = startX, startX + rectWidth - 1 do
  44.             if y == startY or y == startY + rectHeight - 1 or x == startX or x == startX + rectWidth - 1 then
  45.                 monitor.setCursorPos(x, y)
  46.                 monitor.write(" ")
  47.             end
  48.         end
  49.     end
  50.    
  51.     -- Afficher "SAFETY CAR" en orange au centre du rectangle noir
  52.     monitor.setTextColor(colors.orange)
  53.     local textX = startX + math.floor((rectWidth - textWidth) / 2)
  54.     local textY = startY + 1.5  -- Décalage de 0.5 pixel vers le bas
  55.     monitor.setCursorPos(textX, textY)
  56.     monitor.write(text)
  57.    
  58.     monitor.setTextColor(colors.white)
  59. end
  60.  
  61. -- Boucle principale
  62. while true do
  63.     local senderId, message, protocol = rednet.receive()
  64.     if message == "safety_car" then
  65.         displaySafetyCar()
  66.     elseif colorsMap[message] then
  67.         displayColor(colorsMap[message])
  68.     end
  69. end
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement