os.loadAPI "redirect"
os.loadAPI "general"
local cProperties = {
check = "menu",
x = 1,
y = 1,
width = 1,
height = 1,
bg = 1,
fg = 1,
text = "",
textX = 1, --relative
textY = 1,
button = function() end,
overlays = {}, --MUST be numerically indexed!!
createLayer = function(self,properties)
local menu = createMenu(properties)
self.overlays[#self.overlays+1] = menu
end,
render = function(self,buffer)
local characters = {}
do
local c
if self.text then
for l=1,#self.text,1 do
c = string.sub(self.text,l,l)
table.insert(characters,c)
end
end
end
local tx,ty = self.textX,self.textY
local c
for x=1,self.width,1 do
for y=1,self.height,1 do
if tx <= x then
if ty == y then
c = characters[x-tx+1]
end
end
general.drawPixel(buffer,x+self.x,y+self.y,self.bg,self.fg,c)
end
end
for i=1,#self.overlays,1 do
self.overlays[i]:render(buffer)
end
end
}
function createMenu(properties)
local menu = {}
properties = properties or {}
for k,v in pairs(cProperties) do
menu[k] = v
end
for k,v in pairs(properties) do
menu[k] = v
end
return menu
end
local buffer = redirect.createRedirectBuffer(term.getWidth(),term.getHeight(),colors.white, colors.black, true)
local m = createMenu({x = 2})
m:createLayer()
m:render(buffer)
buffer.blit()
Edited by Thegameboy, 10 July 2016 - 05:53 PM.












