mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2025-12-24 21:12:50 +01:00
467 lines
8.3 KiB
Lua
467 lines
8.3 KiB
Lua
local c = require("component")
|
||
local unicode = require("unicode")
|
||
local term = require("term")
|
||
local holo
|
||
local gpu = c.gpu
|
||
|
||
--Проверка на наличие нужных устройств
|
||
if not c.isAvailable("hologram") then
|
||
ecs.error("Подключите голографический проектор 2-ого уровня")
|
||
return
|
||
else
|
||
holo = c.hologram
|
||
end
|
||
|
||
local hologram = {}
|
||
|
||
---------------------------------------
|
||
|
||
local symbols = {
|
||
A = {
|
||
{0, 0, 1, 0, 0},
|
||
{0, 1, 0, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 1, 1, 1, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
},
|
||
B = {
|
||
{1, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 1, 1, 1, 0},
|
||
},
|
||
C = {
|
||
{0, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
D = {
|
||
{1, 1, 1, 1, 0},
|
||
{0, 1, 0, 0, 1},
|
||
{0, 1, 0, 0, 1},
|
||
{0, 1, 0, 0, 1},
|
||
{0, 1, 0, 0, 1},
|
||
{0, 1, 0, 0, 1},
|
||
{1, 1, 1, 1, 0},
|
||
},
|
||
E = {
|
||
{1, 1, 1, 1, 1},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 1, 1, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 1, 1, 1, 1},
|
||
},
|
||
F = {
|
||
{1, 1, 1, 1, 1},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
},
|
||
G = {
|
||
{0, 1, 1, 1, 1},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 1, 1, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
H = {
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 1, 1, 1, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
},
|
||
I = {
|
||
{0, 1, 1, 1, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
J = {
|
||
{0, 0, 0, 0, 01},
|
||
{0, 0, 0, 0, 1},
|
||
{0, 0, 0, 0, 1},
|
||
{0, 0, 0, 0, 1},
|
||
{0, 0, 0, 0, 1},
|
||
{0, 1, 0, 0, 1},
|
||
{0, 0, 1, 1, 0},
|
||
},
|
||
K = {
|
||
{1, 0, 0, 1, 1},
|
||
{1, 0, 1, 0, 0},
|
||
{1, 0, 1, 0, 0},
|
||
{1, 1, 0, 0, 0},
|
||
{1, 0, 1, 0, 0},
|
||
{1, 0, 0, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
},
|
||
L = {
|
||
{0, 1, 0, 0, 0},
|
||
{0, 1, 0, 0, 0},
|
||
{0, 1, 0, 0, 0},
|
||
{0, 1, 0, 0, 0},
|
||
{0, 1, 0, 0, 0},
|
||
{0, 1, 0, 0, 0},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
M = {
|
||
{1, 0, 0, 0, 1},
|
||
{1, 1, 0, 1, 1},
|
||
{1, 0, 1, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
},
|
||
N = {
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 1, 0, 0, 1},
|
||
{1, 0, 1, 0, 1},
|
||
{1, 0, 0, 1, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
},
|
||
O = {
|
||
{0, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
P = {
|
||
{1, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
},
|
||
Q = {
|
||
{0, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 1, 0, 1},
|
||
{1, 0, 0, 1, 1},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
R = {
|
||
{1, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 1, 1, 0, 0},
|
||
{1, 0, 0, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
},
|
||
S = {
|
||
{0, 1, 1, 1, 1},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{0, 1, 1, 1, 0},
|
||
{0, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
T = {
|
||
{1, 1, 1, 1, 1},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
},
|
||
U = {
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
V = {
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 0, 1, 0},
|
||
{0, 0, 1, 0, 0},
|
||
},
|
||
W = {
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 1, 0, 1},
|
||
{1, 1, 0, 1, 1},
|
||
{1, 0, 0, 0, 1},
|
||
},
|
||
X = {
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 0, 1, 0},
|
||
{0, 1, 0, 1, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 1, 0, 1, 0},
|
||
{0, 1, 0, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
},
|
||
Y = {
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 0, 1, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
},
|
||
Z = {
|
||
{1, 1, 1, 1, 1},
|
||
{0, 0, 0, 0, 1},
|
||
{0, 0, 0, 1, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 1, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 1, 1, 1, 1},
|
||
},
|
||
["."] = {
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
},
|
||
[","] = {
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 1, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
},
|
||
["!"] = {
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
},
|
||
[":"] = {
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
},
|
||
["-"] = {
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 1, 1, 1, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
},
|
||
["_"] = {
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{1, 1, 1, 1, 1},
|
||
},
|
||
["1"] = {
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 1, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
["2"] = {
|
||
{0, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 1, 1, 1, 1},
|
||
},
|
||
["3"] = {
|
||
{0, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 0, 0, 0, 1},
|
||
{0, 0, 1, 1, 0},
|
||
{0, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
["4"] = {
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 1, 1, 1, 1},
|
||
{0, 0, 0, 0, 1},
|
||
{0, 0, 0, 0, 1},
|
||
{0, 0, 0, 0, 1},
|
||
},
|
||
["5"] = {
|
||
{1, 1, 1, 1, 1},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 1, 1, 1, 0},
|
||
{0, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
["6"] = {
|
||
{0, 0, 1, 1, 1},
|
||
{0, 1, 0, 0, 0},
|
||
{1, 0, 0, 0, 0},
|
||
{1, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
["7"] = {
|
||
{1, 1, 1, 1, 1},
|
||
{0, 0, 0, 0, 1},
|
||
{0, 0, 0, 1, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
{0, 0, 1, 0, 0},
|
||
},
|
||
["8"] = {
|
||
{0, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
["9"] = {
|
||
{0, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 1},
|
||
{0, 0, 0, 0, 1},
|
||
{0, 0, 0, 1, 0},
|
||
{1, 1, 1, 0, 0},
|
||
},
|
||
["0"] = {
|
||
{0, 1, 1, 1, 0},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{1, 0, 0, 0, 1},
|
||
{0, 1, 1, 1, 0},
|
||
},
|
||
[" "] = {
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
},
|
||
empty = {
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
{0, 0, 0, 0, 0},
|
||
},
|
||
}
|
||
|
||
local function clear()
|
||
holo.clear()
|
||
end
|
||
|
||
function hologram.drawSymbol(x, y, z, symbol, color)
|
||
for j = 1, #symbol do
|
||
for i = 1, #symbol[j] do
|
||
if symbol[j][i] == 1 then
|
||
holo.set(x + i - 1, y - j + 1, z, color)
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
function hologram.text(x, y, z, text, color)
|
||
local length = unicode.len(text)
|
||
local smeshenie = 0
|
||
for i = 1, length do
|
||
local sym = unicode.sub(text, i, i)
|
||
hologram.drawSymbol(x + smeshenie, y, z, symbols[sym], color)
|
||
smeshenie = smeshenie + 6
|
||
end
|
||
end
|
||
|
||
|
||
---------------------------------------
|
||
|
||
local args = {...}
|
||
local scale = tonumber(args[1]) or 2
|
||
local height = tonumber(args[2]) or 15
|
||
|
||
local date
|
||
|
||
holo.setScale(scale)
|
||
|
||
while true do
|
||
holo.clear()
|
||
date = string.sub(os.date("%T"), 1, -4)
|
||
hologram.text(10, height, 24, date, 2)
|
||
|
||
term.clear()
|
||
gpu.set(2, 2, "Текущее время: " .. date)
|
||
|
||
os.sleep(1)
|
||
end
|
||
|
||
---------------------------------------
|
||
|
||
return hologram
|