| 12345678910111213141516171819202122232425262728 |
- local Vignette = {}
- Vignette.code = 'vignette'
- function Vignette:init()
- self.radius = .85
- self:resize()
- self.shader:send('radius', self.radius)
- self.shader:send('blur', .45)
- end
- function Vignette:update()
- if not ctx.id then return end
- local p = ctx.players:get(ctx.id)
- 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
- self.radius = math.lerp(self.radius, .8, math.min(10 * tickRate, 1))
- self.shader:send('radius', self.radius)
- else
- self.radius = math.lerp(self.radius, .85, math.min(10 * tickRate, 1))
- self.shader:send('radius', self.radius)
- end
- end
- function Vignette:resize()
- self.shader = data.media.shaders.vignette
- self.shader:send('frame', {ctx.view.frame.x, ctx.view.frame.y, ctx.view.frame.width, ctx.view.frame.height})
- end
- return Vignette
|