Advertisement
4epB9Ik

HoloSetString.lua

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