From ccf7ecc5020014e4e277e0f31edce1b1ad40629d Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Wed, 11 May 2022 22:29:21 -0700 Subject: [PATCH] refactor --- main.lua | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/main.lua b/main.lua index afd4b32..71ed3d1 100644 --- a/main.lua +++ b/main.lua @@ -172,14 +172,21 @@ function keychord_pressed(chord) elseif chord == 'C-d' then parse_into_exec_payload(lines[#lines]) elseif chord == 'C-l' then - for i,drawing in ipairs(lines) do - if type(drawing) == 'table' then - local x, y = love.mouse.getX(), love.mouse.getY() - if y >= drawing.y and y < drawing.y + drawing.h and x >= 12 and x < 12+drawing.w then - for j,shape in ipairs(drawing.shapes) do - if on_freehand(love.mouse.getX(),love.mouse.getY(), shape) then - convert_line(drawing,j,shape) - end + local drawing,i,shape = select_shape_at_mouse() + if drawing then + convert_line(drawing,i,shape) + end + end +end + +function select_shape_at_mouse() + for _,drawing in ipairs(lines) do + if type(drawing) == 'table' then + local x, y = love.mouse.getX(), love.mouse.getY() + if y >= drawing.y and y < drawing.y + drawing.h and x >= 12 and x < 12+drawing.w then + for i,shape in ipairs(drawing.shapes) do + if on_freehand(love.mouse.getX(),love.mouse.getY(), shape) then + return drawing,i,shape end end end