1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
local ourname = "ac.kst"
local ITEMS = {
{"dmn", 5, "minecraft:diamond", "Diamond", colors.cyan, 321},
{"blz", 10, "minecraft:blaze_rod", "Blaze Rod", colors.orange, 27},
{"ely", 40, "minecraft:elytra", "Elytra", colors.purple, 8},
}
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()
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)
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",
}
for ix,i in ipairs(ITEMS) 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()
|