Add files via upload

This commit is contained in:
Ale32bit 2016-11-13 21:46:56 +01:00 committed by GitHub
parent 936b12815d
commit 2f663a6b85

305
src/apis/bigfont Normal file
View file

@ -0,0 +1,305 @@
--# BigFont API - Write bigger letters. v1.1
--# Made By Wojbie
--# http://pastebin.com/3LfWxRWh
local rawFont = {
{
"\32\32\32\137\156\148\158\159\148\135\135\144\159\139\32\136\157\32\159\139\32\32\143\32\32\143\32\32\32\32\32\32\32\32\147\148\150\131\148\32\32\32\151\140\148\151\140\147",
"\32\32\32\149\132\149\136\156\149\144\32\133\139\159\129\143\159\133\143\159\133\138\32\133\138\32\133\32\32\32\32\32\32\150\150\129\137\156\129\32\32\32\133\131\129\133\131\132",
"\32\32\32\130\131\32\130\131\32\32\129\32\32\32\32\130\131\32\130\131\32\32\32\32\143\143\143\32\32\32\32\32\32\130\129\32\130\135\32\32\32\32\131\32\32\131\32\131",
"\139\144\32\32\143\148\135\130\144\149\32\149\150\151\149\158\140\129\32\32\32\135\130\144\135\130\144\32\149\32\32\139\32\159\148\32\32\32\32\159\32\144\32\148\32\147\131\132",
"\159\135\129\131\143\149\143\138\144\138\32\133\130\149\149\137\155\149\159\143\144\147\130\132\32\149\32\147\130\132\131\159\129\139\151\129\148\32\32\139\131\135\133\32\144\130\151\32",
"\32\32\32\32\32\32\130\135\32\130\32\129\32\129\129\131\131\32\130\131\129\140\141\132\32\129\32\32\129\32\32\32\32\32\32\32\131\131\129\32\32\32\32\32\32\32\32\32",
"\32\32\32\32\149\32\159\154\133\133\133\144\152\141\132\133\151\129\136\153\32\32\154\32\159\134\129\130\137\144\159\32\144\32\148\32\32\32\32\32\32\32\32\32\32\32\151\129",
"\32\32\32\32\133\32\32\32\32\145\145\132\141\140\132\151\129\144\150\146\129\32\32\32\138\144\32\32\159\133\136\131\132\131\151\129\32\144\32\131\131\129\32\144\32\151\129\32",
"\32\32\32\32\129\32\32\32\32\130\130\32\32\129\32\129\32\129\130\129\129\32\32\32\32\130\129\130\129\32\32\32\32\32\32\32\32\133\32\32\32\32\32\129\32\129\32\32",
"\150\156\148\136\149\32\134\131\148\134\131\148\159\134\149\136\140\129\152\131\32\135\131\149\150\131\148\150\131\148\32\148\32\32\148\32\32\152\129\143\143\144\130\155\32\134\131\148",
"\157\129\149\32\149\32\152\131\144\144\131\148\141\140\149\144\32\149\151\131\148\32\150\32\150\131\148\130\156\133\32\144\32\32\144\32\130\155\32\143\143\144\32\152\129\32\134\32",
"\130\131\32\131\131\129\131\131\129\130\131\32\32\32\129\130\131\32\130\131\32\32\129\32\130\131\32\130\129\32\32\129\32\32\133\32\32\32\129\32\32\32\130\32\32\32\129\32",
"\150\140\150\137\140\148\136\140\132\150\131\132\151\131\148\136\147\129\136\147\129\150\156\145\138\143\149\130\151\32\32\32\149\138\152\129\149\32\32\157\152\149\157\144\149\150\131\148",
"\149\143\142\149\32\149\149\32\149\149\32\144\149\32\149\149\32\32\149\32\32\149\32\149\149\32\149\32\149\32\144\32\149\149\130\148\149\32\32\149\32\149\149\130\149\149\32\149",
"\130\131\129\129\32\129\131\131\32\130\131\32\131\131\32\131\131\129\129\32\32\130\131\32\129\32\129\130\131\32\130\131\32\129\32\129\131\131\129\129\32\129\129\32\129\130\131\32",
"\136\140\132\150\131\148\136\140\132\153\140\129\131\151\129\149\32\149\149\32\149\149\32\149\137\152\129\137\152\129\131\156\133\149\131\32\150\32\32\130\148\32\152\137\144\32\32\32",
"\149\32\32\149\159\133\149\32\149\144\32\149\32\149\32\149\32\149\150\151\129\138\155\149\150\130\148\32\149\32\152\129\32\149\32\32\32\150\32\32\149\32\32\32\32\32\32\32",
"\129\32\32\130\129\129\129\32\129\130\131\32\32\129\32\130\131\32\32\129\32\129\32\129\129\32\129\32\129\32\131\131\129\130\131\32\32\32\129\130\131\32\32\32\32\140\140\132",
"\32\154\32\159\143\32\149\143\32\159\143\32\159\144\149\159\143\32\159\137\145\159\143\144\149\143\32\32\145\32\32\32\145\149\32\144\32\149\32\143\159\32\143\143\32\159\143\32",
"\32\32\32\152\140\149\151\32\149\149\32\145\149\130\149\157\140\133\32\149\32\154\143\149\151\32\149\32\149\32\144\32\149\149\153\32\32\149\32\149\133\149\149\32\149\149\32\149",
"\32\32\32\130\131\129\131\131\32\130\131\32\130\131\129\130\131\129\32\129\32\140\140\129\129\32\129\32\129\32\137\140\129\130\32\129\32\130\32\129\32\129\129\32\129\130\131\32",
"\144\143\32\159\144\144\144\143\32\159\143\144\159\138\32\144\32\144\144\32\144\144\32\144\144\32\144\144\32\144\143\143\144\32\150\129\32\149\32\130\150\32\134\137\134\134\131\148",
"\136\143\133\154\141\149\151\32\129\137\140\144\32\149\32\149\32\149\154\159\133\149\148\149\157\153\32\154\143\149\159\134\32\130\148\32\32\149\32\32\151\129\32\32\32\32\134\32",
"\133\32\32\32\32\133\129\32\32\131\131\32\32\130\32\130\131\129\32\129\32\130\131\129\129\32\129\140\140\129\131\131\129\32\130\129\32\129\32\130\129\32\32\32\32\32\129\32",
"\32\32\32\32\149\32\32\149\32\32\32\32\32\32\32\32\149\32\32\149\32\32\32\32\32\32\32\32\149\32\32\149\32\32\32\32\32\32\32\32\149\32\32\149\32\32\32\32",
"\32\32\32\32\32\32\32\32\32\32\32\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\32\32\32\32\32\32\32\32\32\32\32",
"\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32",
"\32\32\32\32\149\32\32\149\32\32\32\32\32\32\32\32\149\32\32\149\32\32\32\32\32\32\32\32\149\32\32\149\32\32\32\32\32\32\32\32\149\32\32\149\32\32\32\32",
"\32\32\32\32\32\32\32\32\32\32\32\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\32\32\32\32\32\32\32\32\32\32\32",
"\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32\32\149\32",
"\32\32\32\32\145\32\159\139\32\151\131\132\155\143\132\134\135\145\32\149\32\158\140\129\130\130\32\152\147\155\157\134\32\32\144\144\32\32\32\32\32\32\152\131\155\131\131\129",
"\32\32\32\32\149\32\149\32\145\148\131\32\149\32\149\140\157\132\32\148\32\137\155\149\32\32\32\149\154\149\137\142\32\153\153\32\131\131\149\131\131\129\149\135\145\32\32\32",
"\32\32\32\32\129\32\130\135\32\131\131\129\134\131\132\32\129\32\32\129\32\131\131\32\32\32\32\130\131\129\32\32\32\32\129\129\32\32\32\32\32\32\130\131\129\32\32\32",
"\150\150\32\32\148\32\134\32\32\132\32\32\134\32\32\144\32\144\150\151\149\32\32\32\32\32\32\145\32\32\152\140\144\144\144\32\133\151\129\133\151\129\132\151\129\32\145\32",
"\130\129\32\131\151\129\141\32\32\142\32\32\32\32\32\149\32\149\130\149\149\32\143\32\32\32\32\142\132\32\154\143\133\157\153\132\151\150\148\151\158\132\151\150\148\144\130\148",
"\32\32\32\140\140\132\32\32\32\32\32\32\32\32\32\151\131\32\32\129\129\32\32\32\32\134\32\32\32\32\32\32\32\129\129\32\129\32\129\129\130\129\129\32\129\130\131\32",
"\156\143\32\159\141\129\153\140\132\153\137\32\157\141\32\159\142\32\150\151\129\150\131\132\140\143\144\143\141\145\137\140\148\141\141\144\157\142\32\159\140\32\151\134\32\157\141\32",
"\157\140\149\157\140\149\157\140\149\157\140\149\157\140\149\157\140\149\151\151\32\154\143\132\157\140\32\157\140\32\157\140\32\157\140\32\32\149\32\32\149\32\32\149\32\32\149\32",
"\129\32\129\129\32\129\129\32\129\129\32\129\129\32\129\129\32\129\129\131\129\32\134\32\131\131\129\131\131\129\131\131\129\131\131\129\130\131\32\130\131\32\130\131\32\130\131\32",
"\151\131\148\152\137\145\155\140\144\152\142\145\153\140\132\153\137\32\154\142\144\155\159\132\150\156\148\147\32\144\144\130\145\136\137\32\146\130\144\144\130\145\130\136\32\151\140\132",
"\151\32\149\151\155\149\149\32\149\149\32\149\149\32\149\149\32\149\149\32\149\152\137\144\157\129\149\149\32\149\149\32\149\149\32\149\149\32\149\130\150\32\32\157\129\149\32\149",
"\131\131\32\129\32\129\130\131\32\130\131\32\130\131\32\130\131\32\130\131\32\32\32\32\130\131\32\130\131\32\130\131\32\130\131\32\130\131\32\32\129\32\130\131\32\133\131\32",
"\156\143\32\159\141\129\153\140\132\153\137\32\157\141\32\159\142\32\159\159\144\152\140\144\156\143\32\159\141\129\153\140\132\157\141\32\130\145\32\32\147\32\136\153\32\130\146\32",
"\152\140\149\152\140\149\152\140\149\152\140\149\152\140\149\152\140\149\149\157\134\154\143\132\157\140\133\157\140\133\157\140\133\157\140\133\32\149\32\32\149\32\32\149\32\32\149\32",
"\130\131\129\130\131\129\130\131\129\130\131\129\130\131\129\130\131\129\130\130\131\32\134\32\130\131\129\130\131\129\130\131\129\130\131\129\32\129\32\32\129\32\32\129\32\32\129\32",
"\159\134\144\137\137\32\156\143\32\159\141\129\153\140\132\153\137\32\157\141\32\32\132\32\159\143\32\147\32\144\144\130\145\136\137\32\146\130\144\144\130\145\130\138\32\146\130\144",
"\149\32\149\149\32\149\149\32\149\149\32\149\149\32\149\149\32\149\149\32\149\131\147\129\138\134\149\149\32\149\149\32\149\149\32\149\149\32\149\154\143\149\32\157\129\154\143\149",
"\130\131\32\129\32\129\130\131\32\130\131\32\130\131\32\130\131\32\130\131\32\32\32\32\130\131\32\130\131\129\130\131\129\130\131\129\130\131\129\140\140\129\130\131\32\140\140\129",
},
{
[[000110000110110000110010101000000010000000100101]],
[[000000110110000000000010101000000010000000100101]],
[[000000000000000000000000000000000000000000000000]],
[[100010110100000010000110110000010100000100000110]],
[[000000110000000010110110000110000000000000110000]],
[[000000000000000000000000000000000000000000000000]],
[[000000110110000010000000100000100000000000000010]],
[[000000000110110100010000000010000000000000000100]],
[[000000000000000000000000000000000000000000000000]],
[[010000000000100110000000000000000000000110010000]],
[[000000000000000000000000000010000000010110000000]],
[[000000000000000000000000000000000000000000000000]],
[[011110110000000100100010110000000100000000000000]],
[[000000000000000000000000000000000000000000000000]],
[[000000000000000000000000000000000000000000000000]],
[[110000110110000000000000000000010100100010000000]],
[[000010000000000000110110000000000100010010000000]],
[[000000000000000000000000000000000000000000000000]],
[[010110010110100110110110010000000100000110110110]],
[[000000000000000000000110000000000110000000000000]],
[[000000000000000000000000000000000000000000000000]],
[[010100010110110000000000000000110000000010000000]],
[[110110000000000000110000110110100000000010000000]],
[[000000000000000000000000000000000000000000000000]],
[[000100011111000100011111000100011111000100011111]],
[[000000000000100100100100011011011011111111111111]],
[[000000000000000000000000000000000000000000000000]],
[[000100011111000100011111000100011111000100011111]],
[[000000000000100100100100011011011011111111111111]],
[[100100100100100100100100100100100100100100100100]],
[[000000110100110110000010000011110000000000011000]],
[[000000000100000000000010000011000110000000001000]],
[[000000000000000000000000000000000000000000000000]],
[[010000100100000000000000000100000000010010110000]],
[[000000000000000000000000000000110110110110110000]],
[[000000000000000000000000000000000000000000000000]],
[[110110110110110110000000110110110110110110110110]],
[[000000000000000000000110000000000000000000000000]],
[[000000000000000000000000000000000000000000000000]],
[[000000000000110110000110010000000000000000010010]],
[[000010000000000000000000000000000000000000000000]],
[[000000000000000000000000000000000000000000000000]],
[[110110110110110110110000110110110110000000000000]],
[[000000000000000000000110000000000000000000000000]],
[[000000000000000000000000000000000000000000000000]],
[[110110110110110110110000110000000000000000010000]],
[[000000000000000000000000100000000000000110000110]],
[[000000000000000000000000000000000000000000000000]],
}
}
--Cut for 3x3 chars per a character. (1 character is 6x9 pixels)
local fonts = {}
do
local firstFont = {}
local char = 0
local height = #rawFont[1]
local lenght = #rawFont[1][1]
for i=1,height,3 do
for j=1,lenght,3 do
local thisChar = string.char(char)
local temp = {}
temp[1] = rawFont[1][i]:sub(j,j+2)
temp[2] = rawFont[1][i+1]:sub(j,j+2)
temp[3] = rawFont[1][i+2]:sub(j,j+2)
local temp2 = {}
temp2[1] = rawFont[2][i]:sub(j,j+2)
temp2[2] = rawFont[2][i+1]:sub(j,j+2)
temp2[3] = rawFont[2][i+2]:sub(j,j+2)
firstFont[thisChar] = {temp,temp2}
char = char + 1
end
end
fonts[1] = firstFont
local inverter = {["0"]="1",["1"]="0"} --:gsub("[01]",inverter)
for f=2,3 do
--automagicly make bigger fonts using firstFont and fonts[f-1].
local nextFont = {}
local lastFont = fonts[f-1]
for char=0,255 do
local thisChar = string.char(char)
local temp = {}
local temp2 = {}
local templateChar = lastFont[thisChar][1]
local templateBack = lastFont[thisChar][2]
for i=1,#templateChar do
local line1,line2,line3,back1,back2,back3={},{},{},{},{},{}
for j=1,#templateChar[1] do
local currentChar = firstFont[templateChar[i]:sub(j,j)][1]
table.insert(line1,currentChar[1])
table.insert(line2,currentChar[2])
table.insert(line3,currentChar[3])
local currentBack = firstFont[templateChar[i]:sub(j,j)][2]
if templateBack[i]:sub(j,j) =="1" then
table.insert(back1,(currentBack[1]:gsub("[01]",inverter)))
table.insert(back2,(currentBack[2]:gsub("[01]",inverter)))
table.insert(back3,(currentBack[3]:gsub("[01]",inverter)))
else
table.insert(back1,currentBack[1])
table.insert(back2,currentBack[2])
table.insert(back3,currentBack[3])
end
end
table.insert(temp,table.concat(line1))
table.insert(temp,table.concat(line2))
table.insert(temp,table.concat(line3))
table.insert(temp2,table.concat(back1))
table.insert(temp2,table.concat(back2))
table.insert(temp2,table.concat(back3))
end
nextFont[thisChar] = {temp,temp2}
end
fonts[f] = nextFont
end
end
--Make a big font of big font
local tHex = {
[ colors.white ] = "0",
[ colors.orange ] = "1",
[ colors.magenta ] = "2",
[ colors.lightBlue ] = "3",
[ colors.yellow ] = "4",
[ colors.lime ] = "5",
[ colors.pink ] = "6",
[ colors.gray ] = "7",
[ colors.lightGray ] = "8",
[ colors.cyan ] = "9",
[ colors.purple ] = "a",
[ colors.blue ] = "b",
[ colors.brown ] = "c",
[ colors.green ] = "d",
[ colors.red ] = "e",
[ colors.black ] = "f",
}
local function stamp(tTerminal,tData,nX,nY)
local oX,oY = tTerminal.getSize()
local cX,cY = #tData[1][1],#tData[1]
nX = nX or math.floor((oX-cX)/2)+1
nY = nY or math.floor((oY-cY)/2)+1
for i=1,cY do
if i > 1 and nY+i-1 > oY then term.scroll(1) nY = nY-1 end
tTerminal.setCursorPos(nX,nY+i-1)
tTerminal.blit(tData[1][i],tData[2][i],tData[3][i])
end
end
local function makeText(nSize,sString,nFC,nBC,bBlit)
if not type(sString) == "string" then error("Not a String") end
local cFC = type(nFC)=="string" and nFC:sub(1,1) or tHex[nFC] or error("Wrong Front Color")
local cBC = type(nBC)=="string" and nBC:sub(1,1) or tHex[nBC] or error("Wrong Back Color")
local font = fonts[nSize] or error("Wrong font size selected")
local input = {}
for i in sString:gmatch('.') do table.insert(input,i) end
local tText = {}
local height = #font[input[1]][1]
for nLine=1,height do
local outLine={}
for i=1,#input do
outLine[i] = (font[input[i]] and font[input[i]][1][nLine] or "")
end
tText[nLine] = table.concat(outLine)
end
local tFront = {}
local tBack = {}
local tFrontSub = {["0"]=cFC,["1"]=cBC}
local tBackSub = {["0"]=cBC,["1"]=cFC}
for nLine=1,height do
local front={}
local back={}
for i=1,#input do
local template = (font[input[i]] and font[input[i]][2][nLine] or "")
front[i] = template:gsub("[01]",bBlit and {["0"]=nFC:sub(i,i),["1"]=nBC:sub(i,i)} or tFrontSub)
back[i] = template:gsub("[01]",bBlit and {["0"]=nBC:sub(i,i),["1"]=nFC:sub(i,i)} or tBackSub)
end
tFront[nLine] = table.concat(front)
tBack[nLine] = table.concat(back)
end
return {tText,tFront,tBack}
end
function bigWrite(sString)
stamp(term,makeText(1,sString,term.getTextColor(),term.getBackgroundColor()),term.getCursorPos())
local x,y = term.getCursorPos()
term.setCursorPos(x,y-2)
end
function bigBlit(sString,sFront,sBack)
stamp(term,makeText(1,sString,sFront,sBack,true),term.getCursorPos())
local x,y = term.getCursorPos()
term.setCursorPos(x,y-2)
end
function bigPrint(sString)
stamp(term,makeText(1,sString,term.getTextColor(),term.getBackgroundColor()),term.getCursorPos())
print()
end
function hugeWrite(sString)
stamp(term,makeText(2,sString,term.getTextColor(),term.getBackgroundColor()),term.getCursorPos())
local x,y = term.getCursorPos()
term.setCursorPos(x,y-8)
end
function hugeBlit(sString,sFront,sBack)
stamp(term,makeText(2,sString,sFront,sBack,true),term.getCursorPos())
local x,y = term.getCursorPos()
term.setCursorPos(x,y-8)
end
function hugePrint(sString)
stamp(term,makeText(2,sString,term.getTextColor(),term.getBackgroundColor()),term.getCursorPos())
print()
end
function writeOn(tTerminal,nSize,sString,nX,nY)
stamp(tTerminal,makeText(nSize,sString,tTerminal.getTextColor(),tTerminal.getBackgroundColor()),nX,nY)
end
function blitOn(tTerminal,nSize,sString,sFront,sBack,nX,nY)
stamp(tTerminal,makeText(nSize,sString,sFront,sBack,true),nX,nY)
end
function makeBlittleText(nSize,sString,nFC,nBC)
local out = makeText(nSize,sString,nFC,nBC)
out.height=#out[1]
out.width=#out[1][1]
return out
end