serafim7

hologram clock [OpenComputers]

Jul 27th, 2016
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.48 KB | None | 0 0
  1. local c = require("component")
  2. local unicode = require("unicode")
  3. local holo = c.hologram
  4.  
  5. if not holo then error("This program reqiures holoram projector.") end
  6.  
  7.  
  8. local hologram = {}
  9.  
  10. ---------------------------------------
  11.  
  12. local symbols = {
  13.   A = {
  14.     {0, 0, 1, 0, 0},
  15.     {0, 1, 0, 1, 0},
  16.     {1, 0, 0, 0, 1},
  17.     {1, 1, 1, 1, 1},
  18.     {1, 0, 0, 0, 1},
  19.     {1, 0, 0, 0, 1},
  20.     {1, 0, 0, 0, 1},
  21.   },
  22.   B = {
  23.     {1, 1, 1, 1, 0},
  24.     {1, 0, 0, 0, 1},
  25.     {1, 1, 1, 1, 0},
  26.     {1, 0, 0, 0, 1},
  27.     {1, 0, 0, 0, 1},
  28.     {1, 0, 0, 0, 1},
  29.     {1, 1, 1, 1, 0},
  30.   },
  31.   C = {
  32.     {0, 1, 1, 1, 0},
  33.     {1, 0, 0, 0, 1},
  34.     {1, 0, 0, 0, 0},
  35.     {1, 0, 0, 0, 0},
  36.     {1, 0, 0, 0, 0},
  37.     {1, 0, 0, 0, 1},
  38.     {0, 1, 1, 1, 0},
  39.   },
  40.   D = {
  41.     {1, 1, 1, 1, 0},
  42.     {0, 1, 0, 0, 1},
  43.     {0, 1, 0, 0, 1},
  44.     {0, 1, 0, 0, 1},
  45.     {0, 1, 0, 0, 1},
  46.     {0, 1, 0, 0, 1},
  47.     {1, 1, 1, 1, 0},
  48.   },
  49.   E = {
  50.     {1, 1, 1, 1, 1},
  51.     {1, 0, 0, 0, 0},
  52.     {1, 1, 1, 0, 0},
  53.     {1, 0, 0, 0, 0},
  54.     {1, 0, 0, 0, 0},
  55.     {1, 0, 0, 0, 0},
  56.     {1, 1, 1, 1, 1},
  57.   },
  58.   F = {
  59.     {1, 1, 1, 1, 1},
  60.     {1, 0, 0, 0, 0},
  61.     {1, 1, 1, 1, 0},
  62.     {1, 0, 0, 0, 0},
  63.     {1, 0, 0, 0, 0},
  64.     {1, 0, 0, 0, 0},
  65.     {1, 0, 0, 0, 0},
  66.   },
  67.   G = {
  68.     {0, 1, 1, 1, 1},
  69.     {1, 0, 0, 0, 0},
  70.     {1, 0, 0, 0, 0},
  71.     {1, 0, 1, 1, 1},
  72.     {1, 0, 0, 0, 1},
  73.     {1, 0, 0, 0, 1},
  74.     {0, 1, 1, 1, 0},
  75.   },
  76.   H = {
  77.     {1, 0, 0, 0, 1},
  78.     {1, 0, 0, 0, 1},
  79.     {1, 0, 0, 0, 1},
  80.     {1, 1, 1, 1, 1},
  81.     {1, 0, 0, 0, 1},
  82.     {1, 0, 0, 0, 1},
  83.     {1, 0, 0, 0, 1},
  84.   },
  85.   I = {
  86.     {0, 1, 1, 1, 0},
  87.     {0, 0, 1, 0, 0},
  88.     {0, 0, 1, 0, 0},
  89.     {0, 0, 1, 0, 0},
  90.     {0, 0, 1, 0, 0},
  91.     {0, 0, 1, 0, 0},
  92.     {0, 1, 1, 1, 0},
  93.   },
  94.   J = {
  95.     {0, 0, 0, 0, 01},
  96.     {0, 0, 0, 0, 1},
  97.     {0, 0, 0, 0, 1},
  98.     {0, 0, 0, 0, 1},
  99.     {0, 0, 0, 0, 1},
  100.     {0, 1, 0, 0, 1},
  101.     {0, 0, 1, 1, 0},
  102.   },
  103.   K = {
  104.     {1, 0, 0, 1, 1},
  105.     {1, 0, 1, 0, 0},
  106.     {1, 0, 1, 0, 0},
  107.     {1, 1, 0, 0, 0},
  108.     {1, 0, 1, 0, 0},
  109.     {1, 0, 0, 1, 0},
  110.     {1, 0, 0, 0, 1},
  111.   },
  112.   L = {
  113.     {0, 1, 0, 0, 0},
  114.     {0, 1, 0, 0, 0},
  115.     {0, 1, 0, 0, 0},
  116.     {0, 1, 0, 0, 0},
  117.     {0, 1, 0, 0, 0},
  118.     {0, 1, 0, 0, 0},
  119.     {0, 1, 1, 1, 0},
  120.   },
  121.   M = {
  122.     {1, 0, 0, 0, 1},
  123.     {1, 1, 0, 1, 1},
  124.     {1, 0, 1, 0, 1},
  125.     {1, 0, 0, 0, 1},
  126.     {1, 0, 0, 0, 1},
  127.     {1, 0, 0, 0, 1},
  128.     {1, 0, 0, 0, 1},
  129.   },
  130.   N = {
  131.     {1, 0, 0, 0, 1},
  132.     {1, 0, 0, 0, 1},
  133.     {1, 1, 0, 0, 1},
  134.     {1, 0, 1, 0, 1},
  135.     {1, 0, 0, 1, 1},
  136.     {1, 0, 0, 0, 1},
  137.     {1, 0, 0, 0, 1},
  138.   },
  139.   O = {
  140.     {0, 1, 1, 1, 0},
  141.     {1, 0, 0, 0, 1},
  142.     {1, 0, 0, 0, 1},
  143.     {1, 0, 0, 0, 1},
  144.     {1, 0, 0, 0, 1},
  145.     {1, 0, 0, 0, 1},
  146.     {0, 1, 1, 1, 0},
  147.   },
  148.   P = {
  149.     {1, 1, 1, 1, 0},
  150.     {1, 0, 0, 0, 1},
  151.     {1, 0, 0, 0, 1},
  152.     {1, 1, 1, 1, 0},
  153.     {1, 0, 0, 0, 0},
  154.     {1, 0, 0, 0, 0},
  155.     {1, 0, 0, 0, 0},
  156.   },
  157.   Q = {
  158.     {0, 1, 1, 1, 0},
  159.     {1, 0, 0, 0, 1},
  160.     {1, 0, 0, 0, 1},
  161.     {1, 0, 0, 0, 1},
  162.     {1, 0, 1, 0, 1},
  163.     {1, 0, 0, 1, 1},
  164.     {0, 1, 1, 1, 0},
  165.   },
  166.   R = {
  167.     {1, 1, 1, 1, 0},
  168.     {1, 0, 0, 0, 1},
  169.     {1, 0, 0, 0, 1},
  170.     {1, 1, 1, 0, 0},
  171.     {1, 0, 0, 1, 0},
  172.     {1, 0, 0, 0, 1},
  173.     {1, 0, 0, 0, 1},
  174.   },
  175.   S = {
  176.     {0, 1, 1, 1, 1},
  177.     {1, 0, 0, 0, 0},
  178.     {1, 0, 0, 0, 0},
  179.     {0, 1, 1, 1, 0},
  180.     {0, 0, 0, 0, 1},
  181.     {1, 0, 0, 0, 1},
  182.     {0, 1, 1, 1, 0},
  183.   },
  184.   T = {
  185.     {1, 1, 1, 1, 1},
  186.     {0, 0, 1, 0, 0},
  187.     {0, 0, 1, 0, 0},
  188.     {0, 0, 1, 0, 0},
  189.     {0, 0, 1, 0, 0},
  190.     {0, 0, 1, 0, 0},
  191.     {0, 0, 1, 0, 0},
  192.   },
  193.   U = {
  194.     {1, 0, 0, 0, 1},
  195.     {1, 0, 0, 0, 1},
  196.     {1, 0, 0, 0, 1},
  197.     {1, 0, 0, 0, 1},
  198.     {1, 0, 0, 0, 1},
  199.     {1, 0, 0, 0, 1},
  200.     {0, 1, 1, 1, 0},
  201.   },
  202.   V = {
  203.     {1, 0, 0, 0, 1},
  204.     {1, 0, 0, 0, 1},
  205.     {1, 0, 0, 0, 1},
  206.     {1, 0, 0, 0, 1},
  207.     {1, 0, 0, 0, 1},
  208.     {0, 1, 0, 1, 0},
  209.     {0, 0, 1, 0, 0},
  210.   },
  211.   W = {
  212.     {1, 0, 0, 0, 1},
  213.     {1, 0, 0, 0, 1},
  214.     {1, 0, 0, 0, 1},
  215.     {1, 0, 0, 0, 1},
  216.     {1, 0, 1, 0, 1},
  217.     {1, 1, 0, 1, 1},
  218.     {1, 0, 0, 0, 1},
  219.   },
  220.   X = {
  221.     {1, 0, 0, 0, 1},
  222.     {0, 1, 0, 1, 0},
  223.     {0, 1, 0, 1, 0},
  224.     {0, 0, 1, 0, 0},
  225.     {0, 1, 0, 1, 0},
  226.     {0, 1, 0, 1, 0},
  227.     {1, 0, 0, 0, 1},
  228.   },
  229.   Y = {
  230.     {1, 0, 0, 0, 1},
  231.     {1, 0, 0, 0, 1},
  232.     {0, 1, 0, 1, 0},
  233.     {0, 0, 1, 0, 0},
  234.     {0, 0, 1, 0, 0},
  235.     {0, 0, 1, 0, 0},
  236.     {0, 0, 1, 0, 0},
  237.   },
  238.   Z = {
  239.     {1, 1, 1, 1, 1},
  240.     {0, 0, 0, 0, 1},
  241.     {0, 0, 0, 1, 0},
  242.     {0, 0, 1, 0, 0},
  243.     {0, 1, 0, 0, 0},
  244.     {1, 0, 0, 0, 0},
  245.     {1, 1, 1, 1, 1},
  246.   },
  247.   ["."] = {
  248.     {0, 0, 0, 0, 0},
  249.     {0, 0, 0, 0, 0},
  250.     {0, 0, 0, 0, 0},
  251.     {0, 0, 0, 0, 0},
  252.     {0, 0, 0, 0, 0},
  253.     {0, 0, 0, 0, 0},
  254.     {1, 0, 0, 0, 0},
  255.   },
  256.   [","] = {
  257.     {0, 0, 0, 0, 0},
  258.     {0, 0, 0, 0, 0},
  259.     {0, 0, 0, 0, 0},
  260.     {0, 0, 0, 0, 0},
  261.     {0, 0, 0, 0, 0},
  262.     {0, 1, 0, 0, 0},
  263.     {1, 0, 0, 0, 0},
  264.   },
  265.   ["!"] = {
  266.     {1, 0, 0, 0, 0},
  267.     {1, 0, 0, 0, 0},
  268.     {1, 0, 0, 0, 0},
  269.     {1, 0, 0, 0, 0},
  270.     {1, 0, 0, 0, 0},
  271.     {0, 0, 0, 0, 0},
  272.     {1, 0, 0, 0, 0},
  273.   },
  274.   [":"] = {
  275.     {0, 0, 0, 0, 0},
  276.     {0, 0, 1, 0, 0},
  277.     {0, 0, 0, 0, 0},
  278.     {0, 0, 0, 0, 0},
  279.     {0, 0, 0, 0, 0},
  280.     {0, 0, 1, 0, 0},
  281.     {0, 0, 0, 0, 0},
  282.   },
  283.   ["-"] = {
  284.     {0, 0, 0, 0, 0},
  285.     {0, 0, 0, 0, 0},
  286.     {0, 0, 0, 0, 0},
  287.     {0, 1, 1, 1, 0},
  288.     {0, 0, 0, 0, 0},
  289.     {0, 0, 0, 0, 0},
  290.     {0, 0, 0, 0, 0},
  291.   },
  292.   ["_"] = {
  293.     {0, 0, 0, 0, 0},
  294.     {0, 0, 0, 0, 0},
  295.     {0, 0, 0, 0, 0},
  296.     {0, 0, 0, 0, 0},
  297.     {0, 0, 0, 0, 0},
  298.     {0, 0, 0, 0, 0},
  299.     {1, 1, 1, 1, 1},
  300.   },
  301.   ["1"] = {
  302.     {0, 0, 1, 0, 0},
  303.     {0, 0, 1, 0, 0},
  304.     {0, 1, 1, 0, 0},
  305.     {0, 0, 1, 0, 0},
  306.     {0, 0, 1, 0, 0},
  307.     {0, 0, 1, 0, 0},
  308.     {0, 1, 1, 1, 0},
  309.   },
  310.   ["2"] = {
  311.     {0, 1, 1, 1, 0},
  312.     {1, 0, 0, 0, 1},
  313.     {0, 0, 0, 0, 1},
  314.     {0, 1, 1, 1, 0},
  315.     {1, 0, 0, 0, 0},
  316.     {1, 0, 0, 0, 0},
  317.     {1, 1, 1, 1, 1},
  318.   },
  319.   ["3"] = {
  320.     {0, 1, 1, 1, 0},
  321.     {1, 0, 0, 0, 1},
  322.     {0, 0, 0, 0, 1},
  323.     {0, 0, 1, 1, 0},
  324.     {0, 0, 0, 0, 1},
  325.     {1, 0, 0, 0, 1},
  326.     {0, 1, 1, 1, 0},
  327.   },
  328.   ["4"] = {
  329.     {1, 0, 0, 0, 1},
  330.     {1, 0, 0, 0, 1},
  331.     {1, 0, 0, 0, 1},
  332.     {1, 1, 1, 1, 1},
  333.     {0, 0, 0, 0, 1},
  334.     {0, 0, 0, 0, 1},
  335.     {0, 0, 0, 0, 1},
  336.   },
  337.   ["5"] = {
  338.     {1, 1, 1, 1, 1},
  339.     {1, 0, 0, 0, 0},
  340.     {1, 0, 0, 0, 0},
  341.     {1, 1, 1, 1, 0},
  342.     {0, 0, 0, 0, 1},
  343.     {1, 0, 0, 0, 1},
  344.     {0, 1, 1, 1, 0},
  345.   },
  346.   ["6"] = {
  347.     {0, 0, 1, 1, 1},
  348.     {0, 1, 0, 0, 0},
  349.     {1, 0, 0, 0, 0},
  350.     {1, 1, 1, 1, 0},
  351.     {1, 0, 0, 0, 1},
  352.     {1, 0, 0, 0, 1},
  353.     {0, 1, 1, 1, 0},
  354.   },
  355.   ["7"] = {
  356.     {1, 1, 1, 1, 1},
  357.     {0, 0, 0, 0, 1},
  358.     {0, 0, 0, 1, 0},
  359.     {0, 0, 1, 0, 0},
  360.     {0, 0, 1, 0, 0},
  361.     {0, 0, 1, 0, 0},
  362.     {0, 0, 1, 0, 0},
  363.   },
  364.   ["8"] = {
  365.     {0, 1, 1, 1, 0},
  366.     {1, 0, 0, 0, 1},
  367.     {1, 0, 0, 0, 1},
  368.     {0, 1, 1, 1, 0},
  369.     {1, 0, 0, 0, 1},
  370.     {1, 0, 0, 0, 1},
  371.     {0, 1, 1, 1, 0},
  372.   },
  373.   ["9"] = {
  374.     {0, 1, 1, 1, 0},
  375.     {1, 0, 0, 0, 1},
  376.     {1, 0, 0, 0, 1},
  377.     {0, 1, 1, 1, 1},
  378.     {0, 0, 0, 0, 1},
  379.     {0, 0, 0, 1, 0},
  380.     {1, 1, 1, 0, 0},
  381.   },
  382.   ["0"] = {
  383.     {0, 1, 1, 1, 0},
  384.     {1, 0, 0, 0, 1},
  385.     {1, 0, 0, 0, 1},
  386.     {1, 0, 0, 0, 1},
  387.     {1, 0, 0, 0, 1},
  388.     {1, 0, 0, 0, 1},
  389.     {0, 1, 1, 1, 0},
  390.   },
  391.   [" "] = {
  392.     {0, 0, 0, 0, 0},
  393.     {0, 0, 0, 0, 0},
  394.     {0, 0, 0, 0, 0},
  395.     {0, 0, 0, 0, 0},
  396.     {0, 0, 0, 0, 0},
  397.     {0, 0, 0, 0, 0},
  398.     {0, 0, 0, 0, 0},
  399.   },
  400.   empty = {
  401.     {0, 0, 0, 0, 0},
  402.     {0, 0, 0, 0, 0},
  403.     {0, 0, 0, 0, 0},
  404.     {0, 0, 0, 0, 0},
  405.     {0, 0, 0, 0, 0},
  406.     {0, 0, 0, 0, 0},
  407.     {0, 0, 0, 0, 0},
  408.   },
  409. }
  410.  
  411. local function clear()
  412.   holo.clear()
  413. end
  414.  
  415. function hologram.drawSymbol(x, y, z, symbol, color)
  416.   for j = 1, #symbol do
  417.     for i = 1, #symbol[j] do
  418.       if symbol[j][i] == 1 then
  419.         holo.set(x + i - 1, y - j + 1, z, color)
  420.       end
  421.     end
  422.   end
  423. end
  424.  
  425. function hologram.text(x, y, z, text, color)
  426.   local length = unicode.len(text)
  427.   local smeshenie = 0
  428.   for i = 1, length do
  429.     local sym = unicode.sub(text, i, i)
  430.     hologram.drawSymbol(x + smeshenie, y, z, symbols[sym], color)
  431.     smeshenie = smeshenie + 6
  432.   end
  433. end
  434.  
  435.  
  436. ---------------------------------------
  437.  
  438. local args = {...}
  439. local scale = tonumber(args[1]) or 1
  440. local height = tonumber(args[2]) or 10
  441.  
  442. local date
  443.  
  444. holo.setScale(scale)
  445.  
  446. while true do
  447.   holo.clear()
  448.   date = os.date("%T")
  449.   hologram.text(1, height, 24, date, 2)
  450.   os.sleep(1)
  451. end
  452.  
  453. ---------------------------------------
  454.  
  455. return hologram
Add Comment
Please, Sign In to add comment