From 9c4081a0df31fbb8e3d73385f87bc1bab15ef028 Mon Sep 17 00:00:00 2001 From: Kiritow <1362050620@qq.com> Date: Sat, 10 Mar 2018 00:33:40 +0800 Subject: [PATCH] Add color support --- MineSweeper.lua | 2 ++ kgui.lua | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/MineSweeper.lua b/MineSweeper.lua index 700dc67..7d88a95 100644 --- a/MineSweeper.lua +++ b/MineSweeper.lua @@ -86,7 +86,9 @@ local function printMap(base,mask) if(base[i][j]>=0) then gpu:set(i+1,j+1,tostring(base[i][j])) else + gpu:pushfg(0xFF0000) gpu:set(i+1,j+1,"X") + gpu:popfg() end end end diff --git a/kgui.lua b/kgui.lua index e184411..f6f25b6 100644 --- a/kgui.lua +++ b/kgui.lua @@ -16,6 +16,46 @@ local function GPUGet(t,line,col) return t.gpu.get(col,line) end +local function GPUSetColorFG(t,rgb) + t.gpu.setForeground(rgb) +end + +local function GPUSetColorBG(t,rgb) + t.gpu.setBackground(rgb) +end + +local function GPUGetColorFG(t) + return t.gpu.getForeground() +end + +local function GPUGetColorBG(t) + return t.gpu.getBackground() +end + +local function GPUPushFG(t,rgb) + t.fgstk[t.fgstk.n+1]=t:getfg() + t.fgstk.n=t.fgstk.n+1 + t:setfg(rgb) +end + +local function GPUPopFG(t) + t:setfg(t.fgstk[t.fgstk.n]) + t.fgstk[t.fgstk.n]=nil + t.fgstk.n=t.fgstk.n-1 +end + +local function GPUPushBG(t,rgb) + t.bgstk[t.bgstk.n+1]=t:getbg() + t.bgstk.n=t.bgstk.n+1 + t:setbg(rgb) +end + +local function GPUPopBG(t) + t:setbg(t.bgstk[t.bgstk.n]) + t.bgstk[t.bgstk.n]=nil + t.bgstk.n=t.bgstk.n-1 +end + -- API function GetGPU() if(component.gpu==nil) then @@ -26,6 +66,16 @@ function GetGPU() t.clear=GPUClear t.set=GPUSet t.get=GPUGet + t.setfg=GPUSetColorFG + t.getfg=GPUGetColorFG + t.setbg=GPUSetColorBG + t.getbg=GPUGetColorBG + t.fgstk={n=0} + t.bgstk={n=0} + t.pushfg=GPUPushFG + t.popfg=GPUPopFG + t.pushbg=GPUPushBG + t.popbg=GPUPopBG return t end end \ No newline at end of file