From: Randy McShandy Date: Thu, 12 Mar 2026 02:29:07 +0000 (-0500) Subject: Just enough control updates to blow away messages. X-Git-Url: http://git.mcshandy.xyz/gitweb.cgi?a=commitdiff_plain;ds=inline;p=sumeriangame Just enough control updates to blow away messages. --- diff --git a/main/.love-file b/main/.love-file index e1ef230..510a1a2 100644 --- a/main/.love-file +++ b/main/.love-file @@ -1,5 +1,13 @@ 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 diff --git a/main/control.lua b/main/control.lua index cddcb13..722a2d3 100644 --- a/main/control.lua +++ b/main/control.lua @@ -8,8 +8,14 @@ local control = {} control.ControlType = { - System = 0, - Movement = 1, + System = 0, + Movement = 1, + UI = 2, +} + +control.UIEvent = +{ + Interact = 0, } control.keymap = {} @@ -74,6 +80,12 @@ control.keymap['global']['v'] = { 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 @@ -85,6 +97,9 @@ function control.search_keymap(key, keymap) 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 diff --git a/main/handlers.lua b/main/handlers.lua index 51238ba..23a7cbf 100644 --- a/main/handlers.lua +++ b/main/handlers.lua @@ -4,6 +4,7 @@ -- 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) @@ -26,5 +27,9 @@ function love.handlers.movement_control(key, value) 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 diff --git a/main/message.lua b/main/message.lua index ad4a6ec..8a423c7 100644 --- a/main/message.lua +++ b/main/message.lua @@ -2,6 +2,8 @@ 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) @@ -57,5 +59,11 @@ function message.draw() 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