mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2025-12-24 13:02:49 +01:00
462 lines
8.2 KiB
Lua
462 lines
8.2 KiB
Lua
local c = require("component")
|
|
local unicode = require("unicode")
|
|
local term = require("term")
|
|
local holo = c.hologram
|
|
local gpu = c.gpu
|
|
|
|
if not holo then error("This program reqiures holoram projector.") 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
|