diff --git a/lua/CC Tweaked/tutel/tutel-host.lua b/lua/CC Tweaked/tutel/tutel-host.lua index 36dd3e8..88b80bc 100644 --- a/lua/CC Tweaked/tutel/tutel-host.lua +++ b/lua/CC Tweaked/tutel/tutel-host.lua @@ -134,10 +134,7 @@ function registerEventListener(name, listener) end function dispatchEvents(event, ...) - -- log.info("dispatching event: %s", event) - local eventTbl = eventListeners[event] - if not eventTbl then return end for i = 1, #eventTbl, 1 do @@ -185,17 +182,39 @@ registerEventListener("modem_message", handleMessages) local logOffset = 0 -- to-do: add key handlers -function handleKey(key, isHeld) - if key == 264 then - logOffset = logOffset - 1 - elseif key == 265 then - logOffset = logOffset + 1 - end +--[[ + key handling +]] +local keyListeners = {} +function registerKeyListener(id, listener) + if not keyListeners[id] then keyListeners[id] = {} end + table.insert(keyListeners[id], listener) + +end + +function dispatchKey(key, isHeld) + local keyTbl = eventListeners[key] + if not keyTbl then return end + + for i = 1, #keyTbl, 1 do + keyTbl[i](isHeld) + end +end +registerEventListener("key", dispatchKey) + +function scrollLogsUp(isHeld) + logOffset = logOffset - 1 if logOffset < 0 then logOffset = 0 end +end +registerKeyListener(265, scrollLogsUp) + +function scrollLogsDown(isHeld) + logOffset = logOffset + 1 if logOffset >= #log.buffer then logOffset = #log.buffer - 1 end end -registerEventListener("key", handleKey) +registerKeyListener(264, scrollLogsUp) + --[[ main