From a994e546392342f7adbc8f96a187d28f5cf1db22 Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Mon, 23 Mar 2026 03:15:07 -0500 Subject: [PATCH] main.lua: joystick hotplug --- main.lua | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/main.lua b/main.lua index bfff4b4..ab0299d 100644 --- a/main.lua +++ b/main.lua @@ -1,11 +1,17 @@ local ffi = require 'ffi' local joysticks -function init() - joysticks = love.joystick.getJoysticks() - for i, joystick in ipairs(joysticks) do - print(i, joystick:getName()) +function init_joysticks() + joysticks = {} + for i, joystick in ipairs(love.joystick.getJoysticks()) do + if joystick:isGamepad() then + table.insert(joysticks, joystick) + print(#joysticks, joystick:getName()) + end end +end + +function init() ffi.cdef[[ void load(const char * source_path); @@ -229,6 +235,9 @@ function love.run() return function() love.event.pump() for name, a,b,c,d,e,f,g,h in love.event.poll() do + if name == "joystickadded" or name == "joystickremoved" then + init_joysticks() + end if name == "quit" then if c or not love.quit or not love.quit() then return a or 0, b