]> git.mcshandy.xyz Git - sumeriangame/commitdiff
Just enough control updates to blow away messages. master
authorRandy McShandy <randy@mcshandy.xyz>
Thu, 12 Mar 2026 02:29:07 +0000 (21:29 -0500)
committerRandy McShandy <randy@mcshandy.xyz>
Thu, 12 Mar 2026 02:29:07 +0000 (21:29 -0500)
main/.love-file
main/control.lua
main/handlers.lua
main/message.lua

index e1ef230ed63acd4f4f9e484f1b6cea2edf509f34..510a1a27f1be54dffa53bbb8df7317f2aa2c352a 100644 (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
index cddcb138feae6fa7860af7133f2bc05e5f92204c..722a2d3465cd465630a0ab57180596c1f753e68d 100644 (file)
@@ -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
index 51238baceb7df7e9d93a58783800a01edde218d6..23a7cbff76e61461052c9075e53c8efe1aa4befa 100644 (file)
@@ -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
index ad4a6ec4f5b2400a15c2297e16de824ac3ef91a4..8a423c76fbc97476b6e9f07e353c0c10edf42b6a 100644 (file)
@@ -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