main.lua
+collision.lua
conf.lua
+control.lua
+handlers.lua
+message.lua
+player.lua
+render.lua
+utils.lua
+vector.lua
assets.lua
assets/Intro.wav
assets/SantakkuM.ttf
control.ControlType =
{
- System = 0,
- Movement = 1,
+ System = 0,
+ Movement = 1,
+ UI = 2,
+}
+
+control.UIEvent =
+{
+ Interact = 0,
}
control.keymap = {}
end,
}
+-- A generic interaction event
+control.keymap['global']['space'] = {
+ control = control.ControlType.UI,
+ type = control.UIEvent.Interact,
+}
+
function control.search_keymap(key, keymap)
local key_found = false
for k,v in pairs(keymap) do
if v.control == control.ControlType.Movement then
love.event.push('movement_control', k, v)
end
+ if v.control == control.ControlType.UI then
+ love.event.push('ui_control', k,v)
+ end
end
end
return key_found
-- No module should have to include this.
local control = require('control')
+local message = require('message')
local render = require('render')
function love.handlers.map_changed(new_map_name)
love.audio.play(assets.walk_sfx[n])
end
+function love.handlers.ui_control(key, value)
+ message.ui_control(key, value)
+end
+
function love.handlers.collision(focus, pos)
end
local message = {}
+local control = require('control')
+
-- Try to queue a message for display.
-- For now, only allow showing one message at a time.
function message.send(textItem, opts)
love.graphics.setColor(last_color)
end
+function message.ui_control(key, value)
+ if (value.type == control.UIEvent.Interact) then
+ print('interact')
+ message.active_message = nil
+ end
+end
return message