50 lines
1.2 KiB
Lua
50 lines
1.2 KiB
Lua
---@module "cctAPI"
|
|
local monitor = peripheral.find("monitor")
|
|
local computer = term.redirect(monitor)
|
|
|
|
-- suggested
|
|
monitor.setTextScale(0.5)
|
|
|
|
term.clear()
|
|
term.setCursorPos(1, 1)
|
|
|
|
local M = require("utf8textutils")
|
|
|
|
---@param str string
|
|
---@param fps number films per second
|
|
local function pirntScrolling(str, fps)
|
|
str = str .. " "
|
|
local termWidth = term.getSize()
|
|
local cfg1 = M.getCfg("noauto")
|
|
cfg1.masking = { 2, 2, termWidth - 1, cfg1.fontFamily.maxHeight + 1 }
|
|
|
|
local spf = 1 / fps
|
|
---@type FontFamily
|
|
local fontFamily = cfg1.fontFamily
|
|
local wid = 0
|
|
for _, code in M.codes(str) do
|
|
local bm = M.getCharMap(code, fontFamily)
|
|
wid = wid + #bm[1]
|
|
end
|
|
|
|
local cursorX = 2
|
|
local cursorY = 2
|
|
local maskingWidth = cfg1.masking[3] - cfg1.masking[1]
|
|
local repeatNum = math.max(maskingWidth, wid)
|
|
while true do
|
|
cursorX = 2
|
|
for i = 1, repeatNum do
|
|
term.setCursorPos(cursorX, cursorY)
|
|
M.printUtf8(str, cfg1)
|
|
|
|
term.setCursorPos(cursorX + repeatNum, cursorY)
|
|
M.printUtf8(str, cfg1)
|
|
cursorX = cursorX - 1
|
|
|
|
os.sleep(spf)
|
|
end
|
|
end
|
|
end
|
|
|
|
pirntScrolling("hello -- by AAAB60", 5)
|