consistent formatting

This commit is contained in:
jill 2021-09-18 01:38:04 +03:00
parent 83d23d8d72
commit 63b1a08df8
4 changed files with 102 additions and 105 deletions

View File

@ -118,54 +118,54 @@ function self.render()
local mx, my = love.mouse.getPosition()
for i,v in ipairs(dropdowns) do
local x, y, w, h = v.x, v.y, v.width, love.graphics.getFont():getHeight() + margin
love.graphics.setColor(0, 0, 0, 0.3)
if love.mouse.getX() > x and love.mouse.getX() < x + w and love.mouse.getY() > y and love.mouse.getY() < y + h then
love.graphics.setColor(0.8, 0.8, 1, love.mouse.isDown(1) and 0.4 or 0.3)
end
love.graphics.rectangle('fill', x, y, w, h)
love.graphics.setColor(1, 1, 1, 1)
love.graphics.rectangle('line', x, y, w, h)
love.graphics.print(self.selected(i), x + margin/2, y + margin/2)
love.graphics.rectangle('line', x + w - h, y, h, h)
love.graphics.polygon('line', x + w - h/2 + 0.3 * h, y + h/2 - 0.3 * h, x + w - h/2 - 0.3 * h, y + h/2 - 0.3 * h, x + w - h/2, y + h/2 + 0.3 * h)
if self.openDropdown == i then
for i,o in ipairs(v.options) do
local x, y, w, h = x, y + i * h, w, h
y = y + dropdownScrollE * h
local gi = y / h
if gi > maxDropdown or gi < 1 then
goto continue
end
local a = 1 - math.min(math.max((1 - (maxDropdown - gi)) * (1 - (math.abs(dropdownScrollE) /(#v.options - maxDropdown))), 0), 1)
love.graphics.setColor(0, 0, 0, 0.3 * a)
if mx > x and mx < x + w and my > y and my < y + h then
love.graphics.setColor(0.8, 0.8, 1, (love.mouse.isDown(1) and 0.4 or 0.3) * a)
end
love.graphics.rectangle('fill', x, y, w, h)
love.graphics.setColor(1, 1, 1, 0.75 * a)
love.graphics.rectangle('line', x, y, w, h)
love.graphics.setColor(1, 1, 1, 1 * a)
love.graphics.print(v.options[i], x + 2, y + 2)
::continue::
end
-- scrollwheel
if #v.options > maxDropdown then
local displayed = maxDropdown / #v.options
local scroll = math.abs(dropdownScrollE) / (#v.options - maxDropdown)
local size = margin
love.graphics.setColor(1, 1, 1, 0.9)
love.graphics.rectangle('fill', x + w - size, y + h + scroll * (1 - displayed) * (maxDropdown - 1) * h, size, displayed * (maxDropdown - 1) * h)
end
@ -195,7 +195,7 @@ function self.mousepressed(x, y, m)
end
end
end
if not clickedDropdown and m == 1 then
self.openDropdown = 0
return true

View File

@ -33,100 +33,100 @@ table.insert(self, {'spike', function(t) return exp(-10 * abs(2 * t - 1)) end})
table.insert(self, {'inverse', function(t) return t * t * (1 - t) * (1 - t) / (0.5 - t) end})
table.insert(self, {'inSine', function(x)
return 1 - cos(x * (pi * 0.5))
return 1 - cos(x * (pi * 0.5))
end})
table.insert(self, {'outSine', function(x)
return sin(x * (pi * 0.5))
return sin(x * (pi * 0.5))
end})
table.insert(self, {'inOutSine', function(x)
return 0.5 - 0.5 * cos(x * pi)
return 0.5 - 0.5 * cos(x * pi)
end})
table.insert(self, {'inQuad', function(t) return t * t end})
table.insert(self, {'outQuad', function(t) return -t * (t - 2) end})
table.insert(self, {'inOutQuad', function(t)
t = t * 2
if t < 1 then
return 0.5 * t ^ 2
else
return 1 - 0.5 * (2 - t) ^ 2
end
t = t * 2
if t < 1 then
return 0.5 * t ^ 2
else
return 1 - 0.5 * (2 - t) ^ 2
end
end})
table.insert(self, {'inCubic', function(t) return t * t * t end})
table.insert(self, {'outCubic', function(t) return 1 - (1 - t) ^ 3 end})
table.insert(self, {'inOutCubic', function(t)
t = t * 2
if t < 1 then
return 0.5 * t ^ 3
else
return 1 - 0.5 * (2 - t) ^ 3
end
t = t * 2
if t < 1 then
return 0.5 * t ^ 3
else
return 1 - 0.5 * (2 - t) ^ 3
end
end})
table.insert(self, {'inQuart', function(t) return t * t * t * t end})
table.insert(self, {'outQuart', function(t) return 1 - (1 - t) ^ 4 end})
table.insert(self, {'inOutQuart', function(t)
t = t * 2
if t < 1 then
return 0.5 * t ^ 4
else
return 1 - 0.5 * (2 - t) ^ 4
end
t = t * 2
if t < 1 then
return 0.5 * t ^ 4
else
return 1 - 0.5 * (2 - t) ^ 4
end
end})
table.insert(self, {'inQuint', function(t) return t ^ 5 end})
table.insert(self, {'outQuint', function(t) return 1 - (1 - t) ^ 5 end})
table.insert(self, {'inOutQuint', function(t)
t = t * 2
if t < 1 then
return 0.5 * t ^ 5
else
return 1 - 0.5 * (2 - t) ^ 5
end
t = t * 2
if t < 1 then
return 0.5 * t ^ 5
else
return 1 - 0.5 * (2 - t) ^ 5
end
end})
table.insert(self, {'inExpo', function(t) return 1000 ^ (t - 1) - 0.001 end})
table.insert(self, {'outExpo', function(t) return 1.001 - 1000 ^ -t end})
table.insert(self, {'inOutExpo', function(t)
t = t * 2
if t < 1 then
return 0.5 * 1000 ^ (t - 1) - 0.0005
else
return 1.0005 - 0.5 * 1000 ^ (1 - t)
end
t = t * 2
if t < 1 then
return 0.5 * 1000 ^ (t - 1) - 0.0005
else
return 1.0005 - 0.5 * 1000 ^ (1 - t)
end
end})
table.insert(self, {'inCirc', function(t) return 1 - sqrt(1 - t * t) end})
table.insert(self, {'outCirc', function(t) return sqrt(-t * t + 2 * t) end})
table.insert(self, {'inOutCirc', function(t)
t = t * 2
if t < 1 then
return 0.5 - 0.5 * sqrt(1 - t * t)
else
t = t - 2
return 0.5 + 0.5 * sqrt(1 - t * t)
end
t = t * 2
if t < 1 then
return 0.5 - 0.5 * sqrt(1 - t * t)
else
t = t - 2
return 0.5 + 0.5 * sqrt(1 - t * t)
end
end})
table.insert(self, {'outBounce', function(t)
if t < 1 / 2.75 then
return 7.5625 * t * t
elseif t < 2 / 2.75 then
t = t - 1.5 / 2.75
return 7.5625 * t * t + 0.75
elseif t < 2.5 / 2.75 then
t = t - 2.25 / 2.75
return 7.5625 * t * t + 0.9375
else
t = t - 2.625 / 2.75
return 7.5625 * t * t + 0.984375
end
if t < 1 / 2.75 then
return 7.5625 * t * t
elseif t < 2 / 2.75 then
t = t - 1.5 / 2.75
return 7.5625 * t * t + 0.75
elseif t < 2.5 / 2.75 then
t = t - 2.25 / 2.75
return 7.5625 * t * t + 0.9375
else
t = t - 2.625 / 2.75
return 7.5625 * t * t + 0.984375
end
end})
table.insert(self, {'inBounce', function(t) return 1 - self.outBounce(1 - t) end})
table.insert(self, {'inOutBounce', function(t)
if t < 0.5 then
return self.inBounce(t * 2) * 0.5
else
return self.outBounce(t * 2 - 1) * 0.5 + 0.5
end
if t < 0.5 then
return self.inBounce(t * 2) * 0.5
else
return self.outBounce(t * 2 - 1) * 0.5 + 0.5
end
end})
return self

View File

@ -26,11 +26,11 @@ function self.render()
if mode == 1 or mode == 2 then
local csize = 10 -- preview point size
local size = math.min((sw - padding) - ((dropdown.kget('ease2') or dropdown.kget('ease1')).x + 128 + padding), sh - padding * 5 - csize)
local x, y, w, h = sw - padding - size, padding, size, size
love.graphics.setColor(1, 1, 1, 1)
love.graphics.rectangle('line', x, y, w, h)
-- grid
love.graphics.setColor(0.2, 0.2, 0.4, 0.2)
local gridsize = 64
@ -40,24 +40,24 @@ function self.render()
for gy = 1, gridsize - 2 do
love.graphics.line(x + margin, y + margin + gy * h/gridsize, x + w - margin, y + margin + gy * h/gridsize)
end
-- mixease point
if mode == 2 then
love.graphics.setColor(1, 1, 1, 0.8)
love.graphics.line(x + margin + mixpoint * w, y, x + margin + mixpoint * w, y + h)
end
-- preview point
local t = love.timer.getTime() % 1
love.graphics.setColor(0.4, 0.4, 1, 0.4)
love.graphics.line(x + margin + t * w, y, x + margin + t * w, y + h)
-- y = 0 point
-- todo: this will break with eases that dont have the first point at y0
local py = graph[1]
love.graphics.setColor(0.7, 0.7, 0.7, 0.4 * (1 - math.abs(py - 0.5) / 0.5))
love.graphics.line(x, y + h - py * h, x + w, y + py * h)
-- polygone
-- this isnt done with a polygon because else itd waste a Bunch of ram and i kinda, dont want to do that?
love.graphics.setColor(1, 1, 1, 1)
@ -72,11 +72,11 @@ function self.render()
end
last = b
end
-- preview
love.graphics.setColor(1, 1, 1, 0.2)
love.graphics.line(x + margin, y + h + padding * 2 + csize/2, x + w - margin, y + h + padding * 2 + csize/2)
love.graphics.setColor(0.4, 0.4, 1, 1)
local a1 = ease(t)
local a2 = ease(math.max(math.min(t - 0.1, 1), 0))
@ -87,7 +87,7 @@ function self.render()
if minEase then
da = da / 2 + 0.5
end
love.graphics.ellipse('fill', x + margin + (w - margin * 2) * da, y + h + padding * 2 + csize/2, csize * (1 + math.min(math.abs(a1 - a2), 3) * 1.2), csize)
end
end

View File

@ -54,16 +54,13 @@ minEase = false
padding = 6
margin = 4
-- slider
mixpoint = 0.5
oldmixpoint = 0.5
local mixpointtimer = 0 -- easter egg thing
local mixpointspin = 0
-- graph
-- dropdown bullshit
-- rendering
function love.load()
@ -72,18 +69,18 @@ end
function love.update(dt)
graph.update(dt)
-- slider
mixpointtimer = mix(mixpointtimer + math.abs(mixpoint - oldmixpoint), 0, math.min(dt * 8))
oldmixpoint = mix(oldmixpoint, mixpoint, math.min(dt * 20, 1))
if mixpointtimer > 2 then
mixpointtimer = mixpointtimer - 2
mixpointspin = mixpointspin + 4
end
mixpointspin = mix(mixpointspin, 0, dt * 3)
dropdown.update(dt)
end
@ -91,32 +88,32 @@ function love.draw()
mode = dropdown.kget('mode').selected
local sw, sh = love.graphics.getDimensions()
local mx, my = love.mouse.getPosition()
love.graphics.setColor(0.09, 0.09, 0.12, 1)
love.graphics.rectangle('fill', 0, 0, sw, sh)
love.graphics.setColor(0.08, 0.08, 0.1, 1)
love.graphics.rectangle('line', 0, 0, sw, sh)
love.graphics.setColor(1, 1, 1, 1)
love.graphics.print('Box of Eases by oatmealine', padding, sh - love.graphics.getFont():getHeight() - padding)
-- sliders
-- yeah we do a lil' hardcoding
if mode == 2 then
local x, y, w, h = padding, padding * 2 + love.graphics.getFont():getHeight() + margin, 128, 32
love.graphics.setColor(0.7, 0.7, 0.7, 0.4)
love.graphics.line(x, y + h/2, x + w, y + h/2)
local sx, sy = x + w * oldmixpoint, y + h/2
local ssize = h * 0.5
love.graphics.push()
love.graphics.translate(sx, sy)
love.graphics.rotate((mixpoint - oldmixpoint) * 4 + mixpointspin * math.pi * 2)
love.graphics.setColor(0, 0, 0, 1)
if mx > sx - ssize/2 and mx < sx + ssize/2 and my > sy - ssize/2 and my < sy + ssize/2 and dropdown.openDropdown == 0 then
love.graphics.setColor(0.2, 0.2, 0.3, 1)
@ -124,23 +121,23 @@ function love.draw()
love.graphics.rectangle('fill', -ssize/2, -ssize/2, ssize, ssize)
love.graphics.setColor(1, 1, 1, 1)
love.graphics.rectangle('line', -ssize/2, -ssize/2, ssize, ssize)
love.graphics.rotate((mixpoint - oldmixpoint) * -2)
love.graphics.setColor(1, 1, 1, 1)
love.graphics.printf(math.floor(mixpoint * 100)/100, -ssize * 6, ssize - 2, ssize * 12, 'center')
love.graphics.pop()
if mx > x and mx < x + w and my > y and my < y + h and love.mouse.isDown(1) and dropdown.openDropdown == 0 then
mixpoint = (mx - x) / w
dropdown.createDropdowns()
end
end
-- dropdowns
dropdown.render()
-- graph
graph.render()
end
@ -155,7 +152,7 @@ end
function love.wheelmoved(x, y)
if y == 0 then return end
if dropdown.wheelmoved(x, y) then return end
end