summaryrefslogtreecommitdiff
path: root/shop2/disp.lua
diff options
context:
space:
mode:
Diffstat (limited to 'shop2/disp.lua')
-rw-r--r--shop2/disp.lua80
1 files changed, 80 insertions, 0 deletions
diff --git a/shop2/disp.lua b/shop2/disp.lua
new file mode 100644
index 0000000..5260cdc
--- /dev/null
+++ b/shop2/disp.lua
@@ -0,0 +1,80 @@
+local ourname = "ac.kst"
+
+local function printseq(m) return function(q)
+ for _,v in ipairs(q) do
+ print(type(v),v)
+ if type(v) == "number" then
+ m.setTextColor(v)
+ elseif type(v) == "string" then
+ m.write(v)
+ elseif type(v) == "table" then
+ if #v == 2 then
+ -- position
+ m.setCursorPos(v[1],v[2])
+ else
+ error("unknown format")
+ end
+ end
+ end
+end end
+
+local function pad(s,n)
+ s=tostring(s)
+ local l = #s
+ local p = string.rep(" ",math.max(0,n-l))
+ return p..s
+end
+local function centre(s,w)
+ s=tostring(s)
+ local l = #s
+ local p = math.floor(math.max(0,w-l)/2)
+ return string.rep(" ",p)..s
+end
+
+local function disp_shopscreen(items)
+ -- i don't like how hardcoded all the spacing is in this
+ -- but i also don't feel like rewriting it yet.
+ local m = peripheral.wrap"left"
+ m.clear()
+ m.setTextScale(0.5)
+ -- Stock Price Adr. Name
+ -- xxxx xxxkst dmn Diamond
+ -- 123456789012345678901234567890123456789012345678901234567
+ -- 0 1 2 3 4 5
+
+ -- local function fmt_row(m,y, stock,price,adr,name, colour)
+ local function fmt_row(m,y, idesc,
+ colour = colour or colors.cyan
+ printseq(m) {
+ {1,y}, colors.white, pad(stock,5),
+ {8,y}, colors.yellow, pad(price,3), colors.lightGray, "kst",
+ {16,y}, colour, adr,
+ {22,y}, colour, name,
+ }
+ end
+
+
+ printseq(m) {
+ {1,1}, colors.orange, "Apiaristics Consortium Store",
+ {1,2}, colors.lightGray, "Stock Price Adr. Name",
+ }
+
+ -- sort alphabetically
+ -- todo: more intuitive sort, once more things are for sale
+ --
+ for ix,i in ipairs() do
+ fmt_row(m,ix+2,i[6],i[2],i[1],i[4],i[5])
+ end
+
+ local w,h = m.getSize()
+
+ printseq(m) {
+ {1,h-1}, colors.blue, centre("/pay <adr>@ac.kst <amount>",w)
+ }
+
+
+
+
+end
+
+disp_shopscreen()