From 75f1651042c15c3ce781b718552b95e0988b199c Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Fri, 5 Mar 2021 09:31:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=A0=E4=B8=AAtable=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E7=8B=AC=E7=AB=8B=E6=88=90TABLE=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Zframework/init.lua | 2 +- Zframework/{copyTable.lua => tableExtend.lua} | 21 +++++++++++-------- Zframework/websocket.lua | 4 ++-- parts/gametoolfunc.lua | 4 ++-- parts/globalTables.lua | 4 +++- parts/player/init.lua | 4 ++-- parts/scenes/savedata.lua | 8 +++---- 7 files changed, 26 insertions(+), 21 deletions(-) rename Zframework/{copyTable.lua => tableExtend.lua} (55%) diff --git a/Zframework/init.lua b/Zframework/init.lua index 868c2d43..b019b324 100644 --- a/Zframework/init.lua +++ b/Zframework/init.lua @@ -15,7 +15,7 @@ DUMPTABLE=require"Zframework/dumpTable" URLENCODE=require"Zframework/urlEncode" -- UPPERCHAR=require"Zframework/upperChar" -require"Zframework/copyTable" +TABLE=require"Zframework/tableExtend" SPLITSTR=require"Zframework/splitStr" TIMESTR=require"Zframework/timeStr" diff --git a/Zframework/copyTable.lua b/Zframework/tableExtend.lua similarity index 55% rename from Zframework/copyTable.lua rename to Zframework/tableExtend.lua index 6039ba97..9258709d 100644 --- a/Zframework/copyTable.lua +++ b/Zframework/tableExtend.lua @@ -1,42 +1,45 @@ -function copyList(org) +local type=type +local TABLE={} +function TABLE.shift(org) local L={} for i=1,#org do if type(org[i])~="table"then L[i]=org[i] else - L[i]=copyList(org[i]) + L[i]=TABLE.shift(org[i]) end end return L end -function copyTable(org) +function TABLE.copy(org) local L={} for k,v in next,org do if type(v)~="table"then L[k]=v else - L[k]=copyTable(v) + L[k]=TABLE.copy(v) end end return L end -function addToTable(G,base)--For all things in G if same type in base, push to base +function TABLE.add(G,base)--For all things in G if same type in base, push to base for k,v in next,G do if type(v)==type(base[k])then if type(v)=="table"then - addToTable(v,base[k]) + TABLE.add(v,base[k]) else base[k]=v end end end end -function completeTable(G,base)--For all things in G if no val in base, push to base +function TABLE.complete(G,base)--For all things in G if no val in base, push to base for k,v in next,G do if base[k]==nil then base[k]=v elseif type(v)=="table"and type(base[k])=="table"then - completeTable(v,base[k]) + TABLE.complete(v,base[k]) end end -end \ No newline at end of file +end +return TABLE \ No newline at end of file diff --git a/Zframework/websocket.lua b/Zframework/websocket.lua index d80d4049..6685ec8a 100644 --- a/Zframework/websocket.lua +++ b/Zframework/websocket.lua @@ -4,8 +4,8 @@ local path="/tech/socket/v1" local wsThread=[[ -- lua + love2d threading websocket client --- original pure lua ver. by flaribbit and Particle_G and MrZ_26 --- threading version by MrZ_26 +-- Original pure lua ver. by flaribbit and Particle_G and MrZ +-- Threading version by MrZ local triggerCHN,sendCHN,readCHN=... diff --git a/parts/gametoolfunc.lua b/parts/gametoolfunc.lua index df989774..883ac412 100644 --- a/parts/gametoolfunc.lua +++ b/parts/gametoolfunc.lua @@ -86,7 +86,7 @@ end function newBoard(f)--Generate a new board if f then - return copyList(f) + return TABLE.shift(f) else local F={} for i=1,20 do F[i]={0,0,0,0,0,0,0,0,0,0}end @@ -710,7 +710,7 @@ do--function resetGameData(args) local S={} for _,key in next,gameSetting do if type(SETTING[key])=="table"then - S[key]=copyList(SETTING[key]) + S[key]=TABLE.shift(SETTING[key]) else S[key]=SETTING[key] end diff --git a/parts/globalTables.lua b/parts/globalTables.lua index 3f529955..1e51e1f4 100644 --- a/parts/globalTables.lua +++ b/parts/globalTables.lua @@ -309,7 +309,9 @@ SETTING={--Settings VKCurW=.4,--Cur-Pos Weight VKIcon=true,--If disp icon VKAlpha=.3, -}local S=FILE.load("conf/settings")if S then addToTable(S,SETTING)end +} +local S=FILE.load("conf/settings") +if S then TABLE.add(S,SETTING)end S=FILE.load("conf/data") if S then--Statistics STAT=S diff --git a/parts/player/init.lua b/parts/player/init.lua index d3ba3ce2..6424729c 100644 --- a/parts/player/init.lua +++ b/parts/player/init.lua @@ -211,7 +211,7 @@ local function loadGameEnv(P)--Load gameEnv if type(v)~="table"then--Default setting ENV[k]=v else - ENV[k]=copyTable(v) + ENV[k]=TABLE.copy(v) end end if not ENV.noMod then @@ -244,7 +244,7 @@ local function loadRemoteEnv(P,confStr)--Load gameEnv if type(v)~="table"then--Default setting ENV[k]=v else - ENV[k]=copyTable(v) + ENV[k]=TABLE.copy(v) end end end diff --git a/parts/scenes/savedata.lua b/parts/scenes/savedata.lua index 7100503b..68b3c3cf 100644 --- a/parts/scenes/savedata.lua +++ b/parts/scenes/savedata.lua @@ -49,7 +49,7 @@ scene.widgetList={ WIDGET.newButton{name="importUnlock", x=190,y=300,w=280,h=100,color="lBlue",font=25,code=function() local D=parseCB() if D then - addToTable(D,RANKS) + TABLE.add(D,RANKS) FILE.save(RANKS,"conf/unlock") else LOG.print(text.importSuccess,COLOR.green) @@ -58,7 +58,7 @@ scene.widgetList={ WIDGET.newButton{name="importData", x=490,y=300,w=280,h=100,color="lBlue",font=25,code=function() local D=parseCB() if D then - addToTable(D,STAT) + TABLE.add(D,STAT) FILE.save(STAT,"conf/data") else LOG.print(text.importSuccess,COLOR.green) @@ -67,7 +67,7 @@ scene.widgetList={ WIDGET.newButton{name="importSetting", x=790,y=300,w=280,h=100,color="lBlue",font=25,code=function() local D=parseCB() if D then - addToTable(D,SETTING) + TABLE.add(D,SETTING) FILE.save(SETTING,"conf/settings") else LOG.print(text.importSuccess,COLOR.green) @@ -76,7 +76,7 @@ scene.widgetList={ WIDGET.newButton{name="importVK", x=1090,y=300,w=280,h=100,color="lBlue",font=25,code=function() local D=parseCB() if D then - addToTable(D,VK_org) + TABLE.add(D,VK_org) FILE.save(VK_org,"conf/virtualkey") else LOG.print(text.importSuccess,COLOR.green)