vignette.lua 858 B

12345678910111213141516171819202122232425262728
  1. local Vignette = {}
  2. Vignette.code = 'vignette'
  3. function Vignette:init()
  4. self.radius = .85
  5. self:resize()
  6. self.shader:send('radius', self.radius)
  7. self.shader:send('blur', .45)
  8. end
  9. function Vignette:update()
  10. if not ctx.id then return end
  11. local p = ctx.players:get(ctx.id)
  12. if p and p.slots[p.weapon] and p.slots[p.skill] and (p.slots[p.weapon].targeting or p.slots[p.skill].targeting) then
  13. self.radius = math.lerp(self.radius, .8, math.min(10 * tickRate, 1))
  14. self.shader:send('radius', self.radius)
  15. else
  16. self.radius = math.lerp(self.radius, .85, math.min(10 * tickRate, 1))
  17. self.shader:send('radius', self.radius)
  18. end
  19. end
  20. function Vignette:resize()
  21. self.shader = data.media.shaders.vignette
  22. self.shader:send('frame', {ctx.view.frame.x, ctx.view.frame.y, ctx.view.frame.width, ctx.view.frame.height})
  23. end
  24. return Vignette