entirely rework event handling take 3
This commit is contained in:
13
handlers.lua
13
handlers.lua
@ -37,10 +37,10 @@ end
|
||||
-- CLICK HANDLER (Priority-based)
|
||||
---------------------------------------------
|
||||
|
||||
function handlers.handleMonitorTouch(eventType, side, x, y)
|
||||
-- This is called by the event dispatcher for monitor_touch events
|
||||
-- Returns nil to allow lower priority handlers to process if needed
|
||||
return nil
|
||||
function handlers.handleDefaultClick(eventType, side, x, y)
|
||||
-- Default handler that returns click coordinates
|
||||
-- This has the lowest priority, so other handlers can intercept first
|
||||
return {x = x, y = y}
|
||||
end
|
||||
|
||||
---------------------------------------------
|
||||
@ -193,10 +193,9 @@ function handlers.setupConnectionHandlers()
|
||||
|
||||
-- Register all handlers with their priorities
|
||||
events.registerHandler("monitor_touch", handlers.handleDisconnectButton, events.PRIORITY.DISCONNECT_BUTTON)
|
||||
events.registerHandler("monitor_touch", handlers.handleDefaultClick, events.PRIORITY.DEFAULT) -- Lowest priority - returns coordinates
|
||||
events.registerHandler("stargate_incoming_wormhole", handlers.handleActivation, events.PRIORITY.ACTIVATION)
|
||||
events.registerHandler("stargate_reconstructing_entity", handlers.handleEntityRead, events.PRIORITY.ENTITY_READ)
|
||||
events.registerHandler("stargate_disconnected", handlers.handleDisconnect, events.PRIORITY.DISCONNECT_CHECK)
|
||||
events.registerHandler("stargate_message_received", handlers.handleMessage, events.PRIORITY.MESSAGE)
|
||||
end
|
||||
|
||||
return handlers
|
||||
endreturn handlers
|
||||
|
||||
13
startup.lua
13
startup.lua
@ -86,8 +86,17 @@ end
|
||||
local function GetClick()
|
||||
mon.setTextScale(1)
|
||||
handlers.setupConnectionHandlers()
|
||||
local result = events.pullEvent("monitor_touch")
|
||||
return result == "disconnect" and 0 or 1
|
||||
local result, eventType, eventData = events.pullEvent("monitor_touch")
|
||||
|
||||
-- eventData is {eventType, side, x, y}
|
||||
if result == "disconnect" then
|
||||
return 0, 0
|
||||
elseif type(result) == "table" and result.x and result.y then
|
||||
return result.x, result.y
|
||||
else
|
||||
-- Fallback: extract from eventData
|
||||
return eventData[3] or 0, eventData[4] or 0
|
||||
end
|
||||
end
|
||||
|
||||
local function GetActivation()
|
||||
|
||||
Reference in New Issue
Block a user