简化LOG.print的功能和使用

This commit is contained in:
MrZ626
2021-05-14 11:35:34 +08:00
parent c6115e3417
commit 5697a201ef
25 changed files with 112 additions and 121 deletions

View File

@@ -50,7 +50,7 @@ function BGM.init(list)
Sources[list[i]]:setLooping(true)
Sources[list[i]]:setVolume(0)
else
LOG.print("No BGM file: "..list[i],5,COLOR.O)
LOG.print("No BGM file: "..list[i],5,'warn')
end
if not skip and i~=count then
coroutine.yield()

View File

@@ -21,7 +21,7 @@ function FILE.load(name)
return s
end
end
LOG.print(name.." "..text.loadError,COLOR.R)
LOG.print(name.." "..text.loadError,'error')
end
end
function FILE.save(data,name,mode)
@@ -50,7 +50,7 @@ function FILE.save(data,name,mode)
F:flush()F:close()
if success then
if not mode:find'q'then
LOG.print(text.saveDone,COLOR.G)
LOG.print(text.saveDone,'message')
end
else
LOG.print(text.saveError..(mes or"unknown error"),'error')

View File

@@ -204,7 +204,7 @@ local function noDevkeyPressed(key)
if key=="f1"then
PROFILE.switch()
elseif key=="f2"then
LOG.print(("System:%s[%s]\nluaVer:%s\njitVer:%s\njitVerNum:%s"):format(SYSTEM,jit.arch,_VERSION,jit.version,jit.version_num))
LOG.print(("System:%s[%s]\nluaVer:%s\njitVer:%s\njitVerNum:%s"):format(SYSTEM,jit.arch,_VERSION,jit.version,jit.version_num),'message')
elseif key=="f3"then
for _=1,8 do
local P=PLY_ALIVE[rnd(#PLY_ALIVE)]
@@ -217,11 +217,11 @@ local function noDevkeyPressed(key)
elseif key=="f5"then if WIDGET.sel then print(WIDGET.sel)end
elseif key=="f6"then for k,v in next,_G do print(k,v)end
elseif key=="f7"then if love._openConsole then love._openConsole()end
elseif key=="f8"then devMode=nil LOG.print("DEBUG OFF",COLOR.Y)
elseif key=="f9"then devMode=1 LOG.print("DEBUG 1",COLOR.Y)
elseif key=="f10"then devMode=2 LOG.print("DEBUG 2",COLOR.Y)
elseif key=="f11"then devMode=3 LOG.print("DEBUG 3",COLOR.Y)
elseif key=="f12"then devMode=4 LOG.print("DEBUG 4",COLOR.Y)
elseif key=="f8"then devMode=nil LOG.print("DEBUG OFF")
elseif key=="f9"then devMode=1 LOG.print("DEBUG 1")
elseif key=="f10"then devMode=2 LOG.print("DEBUG 2")
elseif key=="f11"then devMode=3 LOG.print("DEBUG 3")
elseif key=="f12"then devMode=4 LOG.print("DEBUG 4")
elseif key=="\\"then _G["\100\114\97\119\70\87\77"]=NULL
elseif devMode==2 then
if WIDGET.sel then
@@ -251,7 +251,7 @@ function love.keypressed(key)
return
elseif key=="f8"then
devMode=1
LOG.print("DEBUG ON",COLOR.Y)
LOG.print("DEBUG ON")
elseif key=="f11"then
switchFullscreen()
elseif not SCN.swapping then
@@ -278,12 +278,13 @@ end
function love.joystickadded(JS)
ins(joysticks,JS)
LOG.print("Joystick added",'message')
end
function love.joystickremoved(JS)
local i=TABLE.find(joysticks,JS)
if i then
rem(joysticks,i)
LOG.print("Joystick removed",COLOR.Y)
LOG.print("Joystick removed",'message')
end
end
local keyMirror={

View File

@@ -4,7 +4,7 @@ return function(name,libName)
if r1 and r2 then
return r2
else
LOG.print("Cannot load "..name..": "..(r2 or r3),'warn',COLOR.R)
LOG.print("Cannot load "..name..": "..(r2 or r3),'warn')
end
elseif SYSTEM=="Android"then
local fs=love.filesystem
@@ -12,35 +12,35 @@ return function(name,libName)
local libFunc=package.loadlib(SAVEDIR.."/lib/"..libName.Android,libName.libFunc)
if libFunc then
LOG.print(name.." lib loaded",'warn',COLOR.G)
LOG.print(name.." lib loaded",'message')
else
for i=1,#platform do
local soFile=fs.read('data',"libAndroid/"..platform[i].."/"..libName.Android)
local soFile,_,_,mes1=fs.read('data',"libAndroid/"..platform[i].."/"..libName.Android)
if soFile then
local success,message=fs.write("lib/"..libName.Android,soFile)
local success,mes2=fs.write("lib/"..libName.Android,soFile)
if success then
libFunc,message=package.loadlib(SAVEDIR.."/lib/"..libName.Android,libName.libFunc)
libFunc,mes2=package.loadlib(SAVEDIR.."/lib/"..libName.Android,libName.libFunc)
if libFunc then
LOG.print(name.." lib loaded",'warn',COLOR.G)
LOG.print(name.." lib loaded",'message')
break
else
LOG.print("Cannot load "..name..": "..message,'warn',COLOR.R)
LOG.print("Cannot load "..name..": "..mes2,'error')
end
else
LOG.print("Write "..name.."-"..platform[i].." to saving failed: "..message,'warn',COLOR.R)
LOG.print(("Write %s-%s to saving failed: %s"):format(name,platform[i],mes2),'error')
end
else
LOG.print("Read "..name.."-"..platform[i].." failed",'warn',COLOR.R)
LOG.print(("Read %s-%s to saving failed: %s"):format(name,platform[i],mes1),'error')
end
end
if not libFunc then
LOG.print("Cannot load "..name,'warn',COLOR.R)
LOG.print("Cannot load "..name,'error')
return
end
end
return libFunc()
else
LOG.print("No "..name.." for "..SYSTEM,'warn',COLOR.R)
LOG.print("No "..name.." for "..SYSTEM,'error')
return
end
return true

View File

@@ -35,36 +35,26 @@ function LOG.draw()
end
end
end
function LOG.print(text,T,C)--text,type/time/color,color
local time
local his
if T=='warn'then
C=C or COLOR.Y
his=true
time=180
function LOG.print(text,T)--text,type/time/color,color
local color=COLOR.Z
local time,his
if T=='message'then
color=COLOR.N
his,time=true,180
elseif T=='warn'then
color=COLOR.Y
his,time=true,180
elseif T=='error'then
C=C or COLOR.R
his=true
time=210
elseif T=='message'then
C=C or COLOR.N
his=true
color=COLOR.R
his,time=true,210
elseif type(T)=='number'then
C=C or COLOR.Z
time=T
elseif type(T)=='table'then
C=T
elseif not C then
C=COLOR.Z
end
if his then
ins(debugMesHistory,SCN.cur..": "..tostring(text))
end
ins(debugMesList,{text=tostring(text),r=C[1],g=C[2],b=C[3],blink=30,time=time or 120})
if his then ins(debugMesHistory,SCN.cur..": "..tostring(text))end
ins(debugMesList,{text=tostring(text),r=color[1],g=color[2],b=color[3],blink=30,time=time or 120})
end
function LOG.copy()
local str=table.concat(debugMesHistory,"\n")
love.system.setClipboardText(str)
LOG.print("Log copied",COLOR.B)
love.system.setClipboardText(table.concat(debugMesHistory,"\n"))
LOG.print("Log copied",'message')
end
return LOG

View File

@@ -141,10 +141,10 @@ function profile.switch()
profile.stop()
love.system.setClipboardText(PROFILE.report())
PROFILE.reset()
LOG.print("profile report copied!")
LOG.print("profile report copied!",'message')
else
PROFILE.start()
LOG.print("profile start!")
LOG.print("profile start!",'message')
end
switch=not switch
end

View File

@@ -17,7 +17,7 @@ function SFX.init(list)
if love.filesystem.getInfo(N)then
Sources[list[i]]={love.audio.newSource(N,'static')}
else
LOG.print("No SFX file: "..N,5,COLOR.O)
LOG.print("No SFX file: "..N,5)
end
if not skip and i~=count then
coroutine.yield()

View File

@@ -48,15 +48,15 @@ function THEME.set(theme)
elseif theme=='xmas'then
BG.setDefault('snow')
BGM.setDefault('xmas')
LOG.print("==============",COLOR.R)
LOG.print("Merry Christmas!",COLOR.Z)
LOG.print("==============",COLOR.R)
LOG.print("==============")
LOG.print("Merry Christmas!")
LOG.print("==============")
elseif theme=='sprfes'then
BG.setDefault('firework')
BGM.setDefault("spring festival")
LOG.print(" ★☆☆★",COLOR.R)
LOG.print("新年快乐!",COLOR.Z)
LOG.print(" ★☆☆★",COLOR.R)
LOG.print(" ★☆☆★")
LOG.print("新年快乐!")
LOG.print(" ★☆☆★")
elseif theme=='zday1'then
BG.setDefault('lanterns')
BGM.setDefault("empty")

View File

@@ -45,7 +45,7 @@ function VOC.init(list)
if n==1 then
if not loadVoiceFile(list[i],list[i])then
LOG.print("No VOICE file: "..list[i],5,COLOR.O)
LOG.print("No VOICE file: "..list[i],5)
end
end
if not Source[list[i]][1]then Source[list[i]]=nil end

View File

@@ -167,7 +167,7 @@ SFX.init((function()
if fs.getRealDirectory("media/SFX/"..v)~=SAVEDIR then
table.insert(L,v:sub(1,-5))
else
LOG.print("Dangerous file : %SAVE%/media/SFX/"..v)
LOG.print("Dangerous file : %SAVE%/media/SFX/"..v,'warn')
end
end
return L
@@ -178,7 +178,7 @@ BGM.init((function()
if fs.getRealDirectory("media/BGM/"..v)~=SAVEDIR then
table.insert(L,v:sub(1,-5))
else
LOG.print("Dangerous file : %SAVE%/media/BGM/"..v)
LOG.print("Dangerous file : %SAVE%/media/BGM/"..v,'warn')
end
end
return L

View File

@@ -4,6 +4,8 @@ local int=math.floor
local char,byte=string.char,string.byte
local ins=table.insert
local BAG,FIELD,MISSION,CUSTOMENV,GAME=BAG,FIELD,MISSION,CUSTOMENV,GAME
local DATA={}
--Sep symbol: 33 (!)
--Safe char: 34~126
@@ -14,7 +16,6 @@ local DATA={}
Example: "abcdefg" is [SZJLTOI], "a^aDb)" is [Z*63,Z*37,S*10]
]]
function DATA.copySequence()
local BAG=BAG
local str=""
local count=1
@@ -111,22 +112,22 @@ function DATA.pasteBoard(str,page)--Paste [str] data to [page] board
if not page then page=1 end
if not FIELD[page]then FIELD[page]=DATA.newBoard()end
local F=FIELD[page]
local _,__
--Decode
local res
str=STRING.trim(str)
_,str=pcall(data.decode,'string','base64',str)
if not _ then return end
_,str=pcall(data.decompress,'string','zlib',str)
if not _ then return end
res,str=pcall(data.decode,'string','base64',str)
if not res then return end
res,str=pcall(data.decompress,'string','zlib',str)
if not res then return end
local fX,fY=1,1--*ptr for Field(r*10+(c-1))
local p=1
while true do
_=byte(str,p)--1byte
local b=byte(str,p)--1byte
--Str end
if not _ then
if not b then
if fX~=1 then
return
else
@@ -134,11 +135,11 @@ function DATA.pasteBoard(str,page)--Paste [str] data to [page] board
end
end
__=_%32-1--Block id
if __>26 then return end--Illegal blockid
_=int(_/32)--Mode id
local id=b%32-1--Block id
if id>26 then return end--Illegal blockid
b=int(b/32)--Mode id
F[fY][fX]=__
F[fY][fX]=id
if fX<10 then
fX=fX+1
else
@@ -176,7 +177,6 @@ end
]]
function DATA.copyMission()
local _
local MISSION=MISSION
local str=""
local count=1
@@ -362,7 +362,7 @@ do--function DATA.saveRecording()
--Filtering modes that cannot be saved
for _,v in next,noRecList do
if GAME.curModeName:find(v)then
LOG.print("Cannot save recording of this mode now!",COLOR.N)
LOG.print("Cannot save recording of this mode now!",'warn')
return
end
end
@@ -386,7 +386,7 @@ do--function DATA.saveRecording()
FILE.save(REPLAY,'conf/replay')
return true
else
LOG.print("Save failed: File already exists")
LOG.print("Save failed: File already exists",'error')
end
end
end

View File

@@ -16,7 +16,7 @@ return{
load=function()
PLY.newPlayer(1)
if SETTING.sfx_spawn==0 then
LOG.print(text.switchSpawnSFX,COLOR.Y)
LOG.print(text.switchSpawnSFX,'warn')
end
end,
mesDisp=function(P)

View File

@@ -298,21 +298,21 @@ function NET.updateWS_app()
end
end
if VERSION.code<res.newestCode then
LOG.print(text.oldVersion:gsub("$1",res.newestName),180,COLOR.N)
LOG.print(text.oldVersion:gsub("$1",res.newestName),180,'message')
end
LOG.print(res.notice,300,COLOR.N)
LOG.print(res.notice,300,'message')
elseif res.action==0 then--Get new version info
--?
elseif res.action==1 then--Get notice
--?
elseif res.action==2 then--Register
if res.type=='Self'or res.type=='Server'then
LOG.print(res.data.message,300,COLOR.N)
LOG.print(res.data.message,300,'message')
if SCN.cur=='register'then
SCN.back()
end
else
LOG.print(res.reason or"Registration failed",300,COLOR.N)
LOG.print(res.reason or"Registration failed",300,'message')
end
NET.unlock('register')
elseif res.action==3 then--Get player counts
@@ -351,14 +351,14 @@ function NET.updateWS_user()
FILE.save(USER,'conf/user','q')
if SCN.cur=='login'then SCN.back()end
end
LOG.print(text.loginSuccessed)
LOG.print(text.loginSuccessed,'message')
--Get self infos
NET.getUserInfo(USER.uid)
NET.unlock('wsc_user')
elseif res.action==0 then--Get accessToken
NET.accessToken=res.accessToken
LOG.print(text.accessSuccessed)
LOG.print(text.accessSuccessed,'message')
NET.wsconn_play()
elseif res.action==1 then--Get userInfo
USERS.updateUserData(res.data)

View File

@@ -116,16 +116,16 @@ local function tapBoard(x,y,key)
if checkBoard(b)then
state=2
time=TIME()-startTime
if time<1 then LOG.print("不是人",COLOR.lB)
elseif time<2 then LOG.print("还是人",COLOR.lB)
elseif time<3 then LOG.print("神仙",COLOR.lB)
elseif time<5 then LOG.print("太强了",COLOR.lB)
elseif time<7.5 then LOG.print("很强",COLOR.lB)
elseif time<10 then LOG.print("可以的",COLOR.lB)
elseif time<20 then LOG.print("马上入门了",COLOR.lB)
elseif time<30 then LOG.print("入门不远了",COLOR.lB)
elseif time<60 then LOG.print("多加练习",COLOR.lB)
else LOG.print("第一次玩?加油",COLOR.lB)
if time<1 then LOG.print("不是人")
elseif time<2 then LOG.print("还是人")
elseif time<3 then LOG.print("神仙")
elseif time<5 then LOG.print("太强了")
elseif time<7.5 then LOG.print("很强")
elseif time<10 then LOG.print("可以的")
elseif time<20 then LOG.print("马上入门了")
elseif time<30 then LOG.print("入门不远了")
elseif time<60 then LOG.print("多加练习")
else LOG.print("第一次玩?加油")
end
SFX.play('win')
return

View File

@@ -82,7 +82,7 @@ function scene.keyDown(key)
str=str.."!"
if #MISSION>0 then str=str..DATA.copyMission()end
sys.setClipboardText(str.."!"..DATA.copyBoards().."!")
LOG.print(text.exportSuccess,COLOR.G)
LOG.print(text.exportSuccess,'message')
elseif key=="v"and kb.isDown("lctrl","rctrl")or key=="cV"then
local str=sys.getClipboardText()
local args=STRING.split(str:sub((str:find(":")or 0)+1),"!")
@@ -98,9 +98,9 @@ function scene.keyDown(key)
if args[i]:find("%S")and not DATA.pasteBoard(args[i],i-3)and i<#args then goto THROW_fail end
end
freshMiniFieldVisible()
LOG.print(text.importSuccess,COLOR.G)
LOG.print(text.importSuccess,'message')
do return end
::THROW_fail::LOG.print(text.dataCorrupted,COLOR.R)
::THROW_fail::LOG.print(text.dataCorrupted,'error')
elseif key=="escape"then
FILE.save(CUSTOMENV,'conf/customEnv','q')
SCN.back()

View File

@@ -216,21 +216,21 @@ function scene.keyDown(key)
SFX.play('fall',.8)
elseif key=="c"and kb.isDown("lctrl","rctrl")or key=="cC"then
sys.setClipboardText("Techmino Field:"..DATA.copyBoard(page))
LOG.print(text.exportSuccess,COLOR.G)
LOG.print(text.exportSuccess,'message')
elseif key=="v"and kb.isDown("lctrl","rctrl")or key=="cV"then
local str=sys.getClipboardText()
local p=str:find(":")--ptr*
if p then
if not str:sub(1,p-1):find("Field")then
LOG.print(text.pasteWrongPlace)
LOG.print(text.pasteWrongPlace,'warn')
end
str=str:sub(p+1)
end
if DATA.pasteBoard(str,page)then
LOG.print(text.importSuccess,COLOR.G)
LOG.print(text.importSuccess,'message')
else
print(text.dataCorrupted)
LOG.print(text.dataCorrupted,COLOR.R)
LOG.print(text.dataCorrupted,'error')
end
elseif key=="pageup"then
page=max(page-1,1)

View File

@@ -71,22 +71,22 @@ function scene.keyDown(key)
elseif key=="c"and kb.isDown("lctrl","rctrl")or key=="cC"then
if #MISSION>0 then
sys.setClipboardText("Techmino Target:"..DATA.copyMission())
LOG.print(text.exportSuccess,COLOR.G)
LOG.print(text.exportSuccess,'message')
end
elseif key=="v"and kb.isDown("lctrl","rctrl")or key=="cV"then
local str=sys.getClipboardText()
local p=str:find(":")--ptr*
if p then
if not str:sub(1,p-1):find("Target")then
LOG.print(text.pasteWrongPlace)
LOG.print(text.pasteWrongPlace,'warn')
end
str=str:sub(p+1)
end
if DATA.pasteMission(str)then
LOG.print(text.importSuccess,COLOR.G)
LOG.print(text.importSuccess,'message')
cur=#MISSION
else
LOG.print(text.dataCorrupted,COLOR.R)
LOG.print(text.dataCorrupted,'error')
end
elseif key=="escape"then
SCN.back()

View File

@@ -85,22 +85,22 @@ function scene.keyDown(key)
elseif key=="c"and kb.isDown("lctrl","rctrl")or key=="cC"then
if #BAG>0 then
sys.setClipboardText("Techmino SEQ:"..DATA.copySequence())
LOG.print(text.exportSuccess,COLOR.G)
LOG.print(text.exportSuccess,'message')
end
elseif key=="v"and kb.isDown("lctrl","rctrl")or key=="cV"then
local str=sys.getClipboardText()
local p=str:find(":")--ptr*
if p then
if not str:sub(1,p-1):find("SEQ")then
LOG.print(text.pasteWrongPlace)
LOG.print(text.pasteWrongPlace,'warn')
end
str=str:sub(p+1)
end
if DATA.pasteSequence(str)then
LOG.print(text.importSuccess,COLOR.G)
LOG.print(text.importSuccess,'message')
cur=#BAG
else
LOG.print(text.dataCorrupted,COLOR.R)
LOG.print(text.dataCorrupted,'error')
end
elseif key=="escape"then
SCN.back()

View File

@@ -6,9 +6,9 @@ local savePW=false
local function login()
local email,password=emailBox:getText(),passwordBox:getText()
if not STRING.simpEmailCheck(email)then
LOG.print(text.wrongEmail)return
LOG.print(text.wrongEmail,'warn')return
elseif #password==0 then
LOG.print(text.noPassword)return
LOG.print(text.noPassword,'warn')return
end
NET.wsconn_user_pswd(email,password)
if savePW then

View File

@@ -83,7 +83,7 @@ function scene.keyDown(key)
NET.signal_quit()
else
lastBackTime=TIME()
LOG.print(text.sureQuit,COLOR.O)
LOG.print(text.sureQuit,'warn')
end
elseif key=="return"then
if inputBox.hide then
@@ -180,7 +180,7 @@ function scene.socketRead(cmd,d)
upstreamProgress=1
resetGameData('n',d.seed)
else
LOG.print("Redundant [Go]",30,COLOR.G)
LOG.print("Redundant [Go]",'warn')
end
elseif cmd=='finish'then
playing=false
@@ -203,7 +203,7 @@ function scene.socketRead(cmd,d)
if res then
DATA.pumpRecording(stream,P.stream)
else
LOG.print("Bad stream from "..P.username.."#"..P.uid)
LOG.print("Bad stream from "..P.username.."#"..P.uid,30)
end
end
end

View File

@@ -31,7 +31,7 @@ scene.widgetList={
SCN.back()
end
else
LOG.print(text.sureQuit,COLOR.O)
LOG.print(text.sureQuit,'warn')
lastLogoutTime=TIME()
end
end},

View File

@@ -74,7 +74,7 @@ function scene.keyDown(k)
elseif k=="return"then
if NET.getlock('fetchRoom')or not NET.roomList[selected]then return end
if NET.roomList[selected].private then
LOG.print("Can't enter private room now")
LOG.print("Can't enter private room now",'message')
return
end
NET.enterRoom(NET.roomList[selected])--,password

View File

@@ -6,13 +6,13 @@ local function register()
local password= WIDGET.active.password:getText()
local password2=WIDGET.active.password2:getText()
if #username==0 then
LOG.print(text.noUsername)return
LOG.print(text.noUsername,'warn')return
elseif not STRING.simpEmailCheck(email)then
LOG.print(text.wrongEmail)return
LOG.print(text.wrongEmail,'warn')return
elseif #password==0 or #password2==0 then
LOG.print(text.noPassword)return
LOG.print(text.noPassword,'warn')return
elseif password~=password2 then
LOG.print(text.diffPassword)return
LOG.print(text.diffPassword,'warn')return
end
NET.register(username,email,password)
end

View File

@@ -10,7 +10,7 @@ local function dumpCB(T)
)
)
)
LOG.print(text.exportSuccess)
LOG.print(text.exportSuccess,'message')
end
local function parseCB()
local _
@@ -18,9 +18,9 @@ local function parseCB()
--Decode
_,s=pcall(love.data.decode,'string','base64',s)
if not _ then LOG.print(text.dataCorrupted,COLOR.R)return end
if not _ then LOG.print(text.dataCorrupted,'error')return end
_,s=pcall(love.data.decompress,'string','zlib',s)
if not _ then LOG.print(text.dataCorrupted,COLOR.R)return end
if not _ then LOG.print(text.dataCorrupted,'error')return end
s=loadstring(s)
if s then

View File

@@ -188,7 +188,7 @@ scene.widgetList={
B.x,B.y,B.r=T[2],T[3],T[4]
end
end
LOG.print(("[ %d ]"):format(defaultSetSelect))
LOG.print(("==[ %d ]=="):format(defaultSetSelect))
defaultSetSelect=defaultSetSelect%5+1
selected=false
end},