diff --git a/README.md b/README.md index 037c9c7..d4a05d5 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ # graphed -Paint in your terminal \ No newline at end of file +graphed is a simple tool to create _ascii art_ +It is very rudimentary for now... + diff --git a/main.lua b/main.lua index c6a6cbd..7f68742 100644 --- a/main.lua +++ b/main.lua @@ -1,46 +1,21 @@ -- Paint in your terminal nc = require("nocurses") - +dofile("simplefuncs.lua") -- Misc nc funcs ============================ -function printul(s) - nc.setunderline(true) - print(s) - nc.setunderline(false) -end - - ------------------------------------- --- consts and vars - - -MSIZE_X=50 -- Map +COLORS={"BLACK","RED","GREEN","YELLOW","BLUE","MAGENTA","CYAN","WHITE"} +MSIZE_X=32 -- Map MSIZE_Y=24 ---- size PL_GLYPH="@" -VER=0.034 +VER=0.08 -- MAKE Map matrix ------------- -function mkmat() - local mt - mt = {} -- create the matrix - for i=1,MSIZE_X do - mt[i] = {} -- create a new row - for j=1,MSIZE_Y do - mt[i][j] = " " - end - end - return mt -end - -function at(s,p) - return string.sub(s,p,p) -end - -- -------------- START FUNC ----------- function start() nc.setcurshape("BAR") nc.clrscr() -- Make X functions map=mkmat() + mapcolors=mkmat() p=mkpointer() -- Now main loop @@ -58,71 +33,93 @@ function drawmap() end -- XXX draw last info line XXX nc.gotoxy(0,MSIZE_Y+1) - print(p.x.." . "..p.y.." ") + print("X:"..p.x.." | ".." Y:"..p.y.." ") end function drawmap_fg() -- Draw map foreground + nc.setfontcolor("RED") nc.gotoxy(p.x,p.y) print(p.glyph) + nc.setfontcolor("WHITE") end ----------- main func ----- -function main() +function main() + printul("Graphed") + print("version "..VER) while exitbool~=true do - if await_cmd()~=0 then + if await_cmd()~=0 then drawmap() drawmap_fg() end end - exit() -end - - -function exit() -- Exits gracefully nc.clrscr() printul("Goodbye...") end -function mkpointer(pn) - local p - p={} - p.x=5 - p.y=5 - p.glyph="X" - return p -end + -- END OF MAKE FUNCS ========== MAKE ===== function await_cmd() local k k=string.char(nc.getch()) - if k=="h" then + if k=="h" and p.x>1 then movep(-1,0) - elseif k=="j" then + elseif k=="j" and p.y<=MSIZE_Y then movep(0,1) - elseif k=="k" then + elseif k=="k" and p.y>1 then movep(0,-1) - elseif k=="l" then + elseif k=="l" and p.x change current glyph") + print(". -> place current glyph on screen") + print("x -> delete glyph under cursor") + -- TODO + nc.setfontcolor("RED") + print("Press enter...") + nc.wait() + nc.setfontcolor("WHITE") +end + +function write() + nc.clrscr() + print("Enter Filename") + fn=io.read("l") + fp=io.open(fn,"w+") + for i=1,MSIZE_Y do + for ii=1,MSIZE_X do + cc=map[ii][i] + fp:write(cc) + end + fp:write("\n") + end + fp:close() + nc.clrscr() + showmesg("wrote to file:'"..fn.."'. Press enter") end function movep(dx,dy) @@ -139,11 +136,5 @@ function changep() p.glyph=c end -function showmesg(msg) - nc.gotoxy(1,1) - print(msg) - nc.wait() -end - -- ------------------------------------------ start() diff --git a/simplefuncs.lua b/simplefuncs.lua new file mode 100644 index 0000000..6447b06 --- /dev/null +++ b/simplefuncs.lua @@ -0,0 +1,45 @@ +-- Simple functions for graphed + +function printul(s) + nc.setunderline(true) + print(s) + nc.setunderline(false) +end + +function mkmat() + local mt + mt = {} -- create the matrix + for i=1,MSIZE_X do + mt[i] = {} -- create a new row + for j=1,MSIZE_Y do + mt[i][j] = " " + end + end + return mt +end + +function showmesg(msg) + nc.gotoxy(1,1) + print(msg) + nc.wait() +end + +function at(s,p) + return string.sub(s,p,p) +end + +function mkpointer(pn) + local p + p={} + p.x=5 + p.y=5 + p.glyph="X" + return p +end + +function dispmesg(m) + for i=1,150 do + nc.gotoxy(1,1) + print(m) + end +end