314 lines
6.0 KiB
Lua
314 lines
6.0 KiB
Lua
local f1 = {
|
|
{
|
|
"\159\143\159\143\139\143",
|
|
"ffffff",
|
|
"000000",
|
|
},
|
|
{
|
|
"\128\149\159\137\143\155",
|
|
"00ffff",
|
|
"ff0000",
|
|
},
|
|
{
|
|
"\130\151\128\148\148\148",
|
|
"000000",
|
|
"ffffff",
|
|
},
|
|
{
|
|
"\136\135\159\133\149\138",
|
|
"00f00f",
|
|
"ff0ff0",
|
|
},
|
|
}
|
|
|
|
local f2 = {
|
|
{
|
|
"\159\143\159\143\139\143",
|
|
"ffffff",
|
|
"000000",
|
|
},
|
|
{
|
|
"\128\149\151\157\153\151",
|
|
"00ffff",
|
|
"ff0000",
|
|
},
|
|
{
|
|
"\130\151\157\140\136\140",
|
|
"00ffff",
|
|
"ff0000",
|
|
},
|
|
{
|
|
"\136\135\149\142\134\145",
|
|
"00f00f",
|
|
"ff0ff0",
|
|
},
|
|
}
|
|
|
|
local f3 = {
|
|
{
|
|
"\159\143\132\159\128\148",
|
|
"ff0f00",
|
|
"00f0ff",
|
|
},
|
|
{
|
|
"\159\133\144\144\129\149",
|
|
"ff0000",
|
|
"00ffff",
|
|
},
|
|
{
|
|
"\128\129\144\130\143\157",
|
|
"0f00f0",
|
|
"f0ff0f",
|
|
},
|
|
{
|
|
"\130\149\128\131\128\149",
|
|
"0f0000",
|
|
"f0ffff",
|
|
},
|
|
}
|
|
|
|
local f4 = {
|
|
{
|
|
"\128\148\128\128\148\128",
|
|
"000000",
|
|
"ffffff",
|
|
},
|
|
{
|
|
"\130\151\130\131\151\131",
|
|
"000000",
|
|
"ffffff",
|
|
},
|
|
{
|
|
"\136\151\149\131\131\149",
|
|
"00f000",
|
|
"ff0fff",
|
|
},
|
|
{
|
|
"\159\149\143\153\153\143",
|
|
"f0f0ff",
|
|
"0f0f00",
|
|
},
|
|
}
|
|
|
|
local n = {" ","ffffff","ffffff"}
|
|
|
|
-- 创建 img 表结构
|
|
local img = {}
|
|
for i1 = 1, 8 do
|
|
img[i1] = {}
|
|
for i2 = 1, 4 do
|
|
img[i1][i2] = {}
|
|
end
|
|
end
|
|
|
|
-- ✅ 关键修复:将 logon 改为函数,每次返回新表
|
|
local function logon()
|
|
return {
|
|
" ",
|
|
"fffffffffffffffffffffffff",
|
|
"fffffffffffffffffffffffff"
|
|
}
|
|
end
|
|
|
|
-- 定义 logo 为普通表(不是函数)
|
|
local logo = {
|
|
{
|
|
" \139 ",
|
|
"fffffff0000000f000fffffff",
|
|
"ffffffffffffff0ffffffffff"
|
|
},
|
|
{
|
|
" \143\129\149 \132 ",
|
|
"fffffff0000ff00000fffffff",
|
|
"fffffffffff00f00fffffffff"
|
|
},
|
|
{
|
|
" \159\135 \149\143\158\135\149 ",
|
|
"fffffff0ff00000ff0fffffff",
|
|
"ffffffff00000ff00ffffffff"
|
|
},
|
|
{
|
|
" \149 \143\150\144 \131\133 ",
|
|
"ffffffff00000f0000fffffff",
|
|
"fffffff00000f0fffffffffff"
|
|
},
|
|
{
|
|
" \149 \136 \149 \131\144 ",
|
|
"ffffffff00f00f0f00fffffff",
|
|
"fffffff0000ff000fffffffff"
|
|
},
|
|
{
|
|
" \138 \131\133 \149 ",
|
|
"fffffff00000ff0000fffffff",
|
|
"ffffffff00000000fffffffff"
|
|
},
|
|
{
|
|
" \130\139\144 \149 ",
|
|
"fffffff000f0000000fffffff",
|
|
"ffffffffff000000fffffffff"
|
|
},
|
|
{
|
|
" \143\131 \135 ",
|
|
"fffffff00ff0000000fffffff",
|
|
"fffffffff000000ffffffffff"
|
|
},
|
|
{
|
|
" \143\131 ",
|
|
"fffffff00000000000fffffff",
|
|
"fffffffff000fffffffffffff"
|
|
},
|
|
{
|
|
" \143\135\129 ",
|
|
"fffffff00000000000fffffff",
|
|
"fffffffffffffffffffffffff"
|
|
},
|
|
}
|
|
|
|
local logo1 = {{},{},{},{}}
|
|
|
|
-- 第一组
|
|
for i = 1, 3 do
|
|
table.insert(logo1[1], logon())
|
|
end
|
|
-- 插入 logo 的每一帧
|
|
for _, frame in ipairs(logo) do
|
|
table.insert(logo1[1], frame)
|
|
end
|
|
for i = 1, 2 do
|
|
table.insert(logo1[1], logon())
|
|
end
|
|
logo1[1].duration = 1
|
|
|
|
-- 第二组
|
|
for i = 1, 2 do
|
|
table.insert(logo1[2], logon())
|
|
end
|
|
for _, frame in ipairs(logo) do
|
|
table.insert(logo1[2], frame)
|
|
end
|
|
for i = 1, 3 do
|
|
table.insert(logo1[2], logon())
|
|
end
|
|
|
|
-- 第三组
|
|
table.insert(logo1[3], logon())
|
|
for _, frame in ipairs(logo) do
|
|
table.insert(logo1[3], frame)
|
|
end
|
|
for i = 1, 4 do
|
|
table.insert(logo1[3], logon())
|
|
end
|
|
|
|
-- 第四组
|
|
for _, frame in ipairs(logo) do
|
|
table.insert(logo1[4], frame)
|
|
end
|
|
for i = 1, 5 do
|
|
table.insert(logo1[4], logon())
|
|
end
|
|
|
|
-- 填充 img 前 4 行
|
|
for i = 1, 4 do
|
|
img[i] = logo1[i]
|
|
end
|
|
|
|
-- 清理临时变量
|
|
logo1 = nil
|
|
logo = nil
|
|
|
|
-- 构建 img[5] 到 img[8]
|
|
for i=1,3 do
|
|
img[5][1][i] = n[i] .. f2[4][i] .. n[i] .. f4[4][i]
|
|
end
|
|
for i=1,3 do
|
|
img[5][2][i] = n[i] .. n[i] .. n[i] .. n[i]
|
|
end
|
|
for i=1,3 do
|
|
img[5][3][i] = n[i] .. n[i] .. n[i] .. n[i]
|
|
end
|
|
for i=1,3 do
|
|
img[5][4][i] = f1[1][i] .. n[i] .. f3[1][i] .. n[i]
|
|
end
|
|
|
|
for i=1,3 do
|
|
img[6][1][i] = n[i] .. f2[3][i] .. n[i] .. f4[3][i]
|
|
end
|
|
for i=1,3 do
|
|
img[6][2][i] = n[i] .. f2[4][i] .. n[i] .. f4[4][i]
|
|
end
|
|
for i=1,3 do
|
|
img[6][3][i] = f1[1][i] .. n[i] .. f3[1][i] .. n[i]
|
|
end
|
|
for i=1,3 do
|
|
img[6][4][i] = f1[2][i] .. n[i] .. f3[2][i] .. n[i]
|
|
end
|
|
|
|
for i=1,3 do
|
|
img[7][1][i] = n[i] .. f2[2][i] .. n[i] .. f4[2][i]
|
|
end
|
|
for i=1,3 do
|
|
img[7][2][i] = f1[1][i] .. f2[3][i] .. f3[1][i] .. f4[3][i]
|
|
end
|
|
for i=1,3 do
|
|
img[7][3][i] = f1[2][i] .. f2[4][i] .. f3[2][i] .. f4[4][i]
|
|
end
|
|
for i=1,3 do
|
|
img[7][4][i] = f1[3][i] .. n[i] .. f3[3][i] .. n[i]
|
|
end
|
|
|
|
for i=1,3 do
|
|
img[8][1][i] = f1[1][i] .. f2[1][i] .. f3[1][i] .. f4[1][i]
|
|
end
|
|
for i=1,3 do
|
|
img[8][2][i] = f1[2][i] .. f2[2][i] .. f3[2][i] .. f4[2][i]
|
|
end
|
|
for i=1,3 do
|
|
img[8][3][i] = f1[3][i] .. f2[3][i] .. f3[3][i] .. f4[3][i]
|
|
end
|
|
for i=1,3 do
|
|
img[8][4][i] = f1[4][i] .. f2[4][i] .. f3[4][i] .. f4[4][i]
|
|
end
|
|
|
|
-- 清理
|
|
f1 = nil
|
|
f2 = nil
|
|
f3 = nil
|
|
f4 = nil
|
|
n = nil
|
|
|
|
img.animation = true
|
|
img.secondsPerFrame = 0.1
|
|
|
|
-- ✅ 现在可以安全序列化
|
|
print(textutils.serialize(img[1]))
|
|
|
|
|
|
local function drawFrame(frame, term)
|
|
for y, row in ipairs(frame) do
|
|
term.setCursorPos(1, y)
|
|
term.blit(table.unpack(row))
|
|
end
|
|
if frame.palette then for i = 0, #frame.palette do
|
|
local c = frame.palette[i]
|
|
if type(c) == "table" then term.setPaletteColor(2^i, table.unpack(c))
|
|
else term.setPaletteColor(2^i, c) end
|
|
end end
|
|
if img.multiMonitor then term.setTextScale(img.multiMonitor.scale or 0.5) end
|
|
end
|
|
|
|
|
|
|
|
term.clear()
|
|
for i, frame in ipairs(img) do
|
|
drawFrame(frame, term)
|
|
if img.animation then sleep(frame.duration or img.secondsPerFrame or 0.05)
|
|
else read() break end
|
|
end
|
|
read()
|
|
term.setBackgroundColor(colors.black)
|
|
term.setTextColor(colors.white)
|
|
term.clear()
|
|
term.setCursorPos(1, 1)
|
|
for i = 0, 15 do term.setPaletteColor(2^i, term.nativePaletteColor(2^i)) end
|
|
|