summaryrefslogtreecommitdiffhomepage
path: root/not/Element.lua
diff options
context:
space:
mode:
authorAki <nthirtyone@gmail.com>2017-04-07 03:24:40 +0200
committerAki <nthirtyone@gmail.com>2017-04-07 03:24:40 +0200
commitd1a19fea50aefc9d7fb52568a5bdcfb56d75eccf (patch)
treed86118b2bae5125f6cecd28a5a7b6f46739f30a9 /not/Element.lua
parent54e85dd188af15cd5f3f5e08f5d3e69088a909b1 (diff)
downloadroflnauts-d1a19fea50aefc9d7fb52568a5bdcfb56d75eccf.zip
roflnauts-d1a19fea50aefc9d7fb52568a5bdcfb56d75eccf.tar.gz
roflnauts-d1a19fea50aefc9d7fb52568a5bdcfb56d75eccf.tar.bz2
Moved menu elements to /not/
Diffstat (limited to 'not/Element.lua')
-rw-r--r--not/Element.lua50
1 files changed, 50 insertions, 0 deletions
diff --git a/not/Element.lua b/not/Element.lua
new file mode 100644
index 0000000..e6d91da
--- /dev/null
+++ b/not/Element.lua
@@ -0,0 +1,50 @@
+--- `Element`
+-- Empty element used inside `Menu`.
+Element = {
+ parent = --[[not.Menu]]nil,
+ x = 0,
+ y = 0
+}
+
+Element.__index = Element
+
+function Element:new (parent)
+ local o = setmetatable({}, self)
+ o.parent = parent
+ return o
+end
+
+function Element:delete () end -- deletes Element
+
+function Element:getPosition ()
+ return self.x, self.y
+end
+function Element:setPosition (x, y)
+ self.x = x or 0
+ self.y = y or 0
+ return self
+end
+
+function Element:set (name, func)
+ if type(name) == "string" and func ~= nil then
+ self[name] = func
+ end
+ return self
+end
+
+-- Called when menu tries to focus on this element.
+-- If it will return false then menu will skip element and go to next in list.
+function Element:focus ()
+ return false
+end
+function Element:blur () end -- Called when Element loses focus.
+
+-- LÖVE2D callbacks
+function Element:draw (scale) end
+function Element:update (dt) end
+
+-- Controller callbacks
+function Element:controlpressed (set, action, key) end
+function Element:controlreleased (set, action, key) end
+
+return Element