Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local function center(str, width)
- local blank = string.rep(' ',math.floor((width-#str)/2))
- return blank .. str
- end
- local function printc(stri,coordx,coordy)
- term.setCursorPos(coordx,coordy)
- write(stri)
- end
- local function split(str, pat)
- local t = { }
- local fpat = "(.-)"..pat
- local last_end = 1
- local s, e, cap = str:find(fpat, 1)
- while s do
- if s ~= 1 or cap ~= "" then
- table.insert(t,cap)
- end
- last_end = e+1
- s, e, cap = str:find(fpat, last_end)
- end
- if last_end <= #str then
- cap = str:sub(last_end)
- table.insert(t, cap)
- end
- return t
- end
- function create(title,items,blurb,func)
- if selected == nil then selected = 1 end
- term.clear()
- term.setCursorPos(1,1)
- if #title > 28 then title = string.sub(title, 1, 27-#title) end
- printc("+----------------------------+",11,1)
- printc("|"..center(title,28),11,2)
- printc("|",40,2)
- printc("+----------------------------+",11,3)
- printc("| |",11,4)
- printc("| |",11,5)
- printc("| |",11,6)
- printc("| |",11,7)
- printc("| |",11,8)
- printc("| |",11,9)
- printc("| |",11,10)
- printc("| |",11,11)
- printc("| |",11,12)
- printc("| |",11,13)
- printc("| |",11,14)
- printc("+----------------------------+",11,15)
- printc("| |",11,16)
- printc("| |",11,17)
- printc("+----------------------------+",11,18)
- for linen, item in ipairs(items) do
- if linen <= 10 then
- term.setCursorPos(14,3 + linen)
- print(item)
- end
- end
- term.setCursorPos(13,3 + selected)
- print("["..items[selected].."]")
- blurbword = split(blurb[selected]," ")
- local l1 = ""
- local l2 = ""
- for i,w in ipairs(blurbword) do
- if string.len(l1..w) <= 25 then
- if i == 1 then
- l1 = w
- else
- l1 = l1.." "..w
- end
- elseif string.len(l1..w) > 25 then
- if string.len(l2..w) <= 25 then
- if string.len(l2) == 0 then
- l2 = w
- else
- l2 = l2.." "..w
- end
- end
- end
- end
- printc(l1,13,16)
- printc(l2,13,17)
- while true do
- local sEvent, param = os.pullEvent()
- if sEvent == "key" then
- if param == 28 then
- functorun = loadstring(func[selected])
- pcall(functorun)
- elseif param == 208 then
- if selected < #items then selected = selected + 1 end
- create(title,items,blurb,func)
- elseif param == 200 then
- if selected > 1 then selected = selected - 1 end
- create(title,items,blurb,func)
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement