From 640c3071a40d0884d079da529313b26fdd37023f Mon Sep 17 00:00:00 2001 From: asciibene Date: Mon, 11 Apr 2022 17:05:37 -0400 Subject: [PATCH] initial commit --- main.lua | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++ nocurses.so | Bin 0 -> 16088 bytes 2 files changed, 129 insertions(+) create mode 100644 main.lua create mode 100755 nocurses.so diff --git a/main.lua b/main.lua new file mode 100644 index 0000000..c70dfd5 --- /dev/null +++ b/main.lua @@ -0,0 +1,129 @@ +-- Paint in your terminal +nc = require("nocurses") + +-- Misc nc funcs ============================ +function printul(s) + nc.setunderline(true) + print(s) + nc.setunderline(false) +end + + + +------------------------------------ +-- consts and vars + + +MSIZE_X=50 -- Map +MSIZE_Y=24 ---- size +PL_GLYPH="@" +VER=0.034 +-- 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("BLOCK") + nc.clrscr() + -- Make X functions + map=mkmat() + p=mkpointer() + + -- Now main loop + main() +end +-- ----------------END START FUNC ------------- + +-- ====== DRAW MAP FUNC========= +function drawmap() + for ix=1,MSIZE_X do + for iy=1,MSIZE_Y do + nc.gotoxy(ix,iy) + print(map[ix][iy]) + end + end +end + +function drawmap_fg() -- Draw map foreground + nc.gotoxy(p.x,p.y) + print(p.glyph) +end +----------- main func ----- +function main() + while exitbool~=true do + if see==false then + drawmap() + drawmap_fg() + see=true + end + await_cmd() + 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 + movep(-1,0) + elseif k=="j" then + movep(0,1) + elseif k=="k" then + movep(0,-1) + elseif k=="l" then + movep(1,0) + elseif k=="q" then + exitbool=true + elseif k=="t" then + showmesg("This is a test") + + end +end + +function movep(dx,dy) + p.x=p.x+dx + p.y=p.y+dy + see=false +end + +function showmesg(msg) + nc.gotoxy(1,1) + print(msg) + nc.wait() + see=false +end + +-- ------------------------------------------ +start() diff --git a/nocurses.so b/nocurses.so new file mode 100755 index 0000000000000000000000000000000000000000..ca60248eb4ad77c0087177f0495c17d2ef482e78 GIT binary patch literal 16088 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 G-v0t+f$_Tl literal 0 HcmV?d00001