DRY some code

This commit is contained in:
Kartik K. Agaram 2022-05-17 23:10:58 -07:00
parent 4818672c11
commit 10bc32e2f0
2 changed files with 18 additions and 22 deletions

View File

@ -286,7 +286,7 @@ function Drawing.current_drawing()
local x, y = love.mouse.getX(), love.mouse.getY()
for _,drawing in ipairs(Lines) do
if drawing.mode == 'drawing' then
if y >= drawing.y and y < drawing.y + Drawing.pixels(drawing.h) and x >= 16 and x < 16+Drawing_width then
if Drawing.in_drawing(drawing, x,y) then
return drawing
end
end
@ -298,8 +298,8 @@ function Drawing.select_shape_at_mouse()
for _,drawing in ipairs(Lines) do
if drawing.mode == 'drawing' then
local x, y = love.mouse.getX(), love.mouse.getY()
if y >= drawing.y and y < drawing.y + Drawing.pixels(drawing.h) and x >= 16 and x < 16+Drawing_width then
local mx,my = Drawing.coord(love.mouse.getX()-16), Drawing.coord(love.mouse.getY()-drawing.y)
if Drawing.in_drawing(drawing, x,y) then
local mx,my = Drawing.coord(x-16), Drawing.coord(y-drawing.y)
for i,shape in ipairs(drawing.shapes) do
assert(shape)
if geom.on_shape(mx,my, drawing, shape) then
@ -315,8 +315,8 @@ function Drawing.select_point_at_mouse()
for _,drawing in ipairs(Lines) do
if drawing.mode == 'drawing' then
local x, y = love.mouse.getX(), love.mouse.getY()
if y >= drawing.y and y < drawing.y + Drawing.pixels(drawing.h) and x >= 16 and x < 16+Drawing_width then
local mx,my = Drawing.coord(love.mouse.getX()-16), Drawing.coord(love.mouse.getY()-drawing.y)
if Drawing.in_drawing(drawing, x,y) then
local mx,my = Drawing.coord(x-16), Drawing.coord(y-drawing.y)
for i,point in ipairs(drawing.points) do
assert(point)
if Drawing.near(point, mx,my) then
@ -332,7 +332,7 @@ function Drawing.select_drawing_at_mouse()
for _,drawing in ipairs(Lines) do
if drawing.mode == 'drawing' then
local x, y = love.mouse.getX(), love.mouse.getY()
if y >= drawing.y and y < drawing.y + Drawing.pixels(drawing.h) and x >= 16 and x < 16+Drawing_width then
if Drawing.in_drawing(drawing, x,y) then
return drawing
end
end

View File

@ -126,26 +126,22 @@ function love.draw()
end
function love.update(dt)
if Lines.current == nil then return end
local drawing = Lines.current
assert(drawing.mode == 'drawing')
local x, y = love.mouse.getX(), love.mouse.getY()
if love.mouse.isDown('1') then
if Lines.current then
if Lines.current.mode == 'drawing' then
local drawing = Lines.current
local x, y = love.mouse.getX(), love.mouse.getY()
if y >= drawing.y and y < drawing.y + Drawing.pixels(drawing.h) and x >= 16 and x < 16+Drawing_width then
if drawing.pending.mode == 'freehand' then
table.insert(drawing.pending.points, {x=Drawing.coord(love.mouse.getX()-16), y=Drawing.coord(love.mouse.getY()-drawing.y)})
elseif drawing.pending.mode == 'move' then
local mx,my = Drawing.coord(x-16), Drawing.coord(y-drawing.y)
drawing.pending.target_point.x = mx
drawing.pending.target_point.y = my
end
end
if Drawing.in_drawing(drawing, x,y) then
if drawing.pending.mode == 'freehand' then
table.insert(drawing.pending.points, {x=Drawing.coord(love.mouse.getX()-16), y=Drawing.coord(love.mouse.getY()-drawing.y)})
elseif drawing.pending.mode == 'move' then
local mx,my = Drawing.coord(x-16), Drawing.coord(y-drawing.y)
drawing.pending.target_point.x = mx
drawing.pending.target_point.y = my
end
end
elseif Current_drawing_mode == 'move' then
local drawing = Lines.current
local x, y = love.mouse.getX(), love.mouse.getY()
if y >= drawing.y and y < drawing.y + Drawing.pixels(drawing.h) and x >= 16 and x < 16+Drawing_width then
if Drawing.in_drawing(drawing, x, y) then
local mx,my = Drawing.coord(x-16), Drawing.coord(y-drawing.y)
drawing.pending.target_point.x = mx
drawing.pending.target_point.y = my