---@alias InputState { upJustPressed: boolean, downJustPressed: boolean, rightJustPressed: boolean, leftJustPressed: boolean, aJustPressed: boolean, bJustPressed: boolean } local buttonJustPressed = playdate.buttonJustPressed local inputState = {} inputSystem = filteredSystem("input", { canReceiveInput = T.marker }, function(e, _, system) e.inputState = inputState system.world:addEntity(e) end) function inputSystem:preProcess() inputState.upJustPressed = buttonJustPressed(playdate.kButtonUp) inputState.downJustPressed = buttonJustPressed(playdate.kButtonDown) inputState.rightJustPressed = buttonJustPressed(playdate.kButtonRight) inputState.leftJustPressed = buttonJustPressed(playdate.kButtonLeft) inputState.aJustPressed = buttonJustPressed(playdate.kButtonA) inputState.bJustPressed = buttonJustPressed(playdate.kButtonB) end