local vortex={}
function vortex.load()
points={}
vortextime=0
vorteximage1=love.graphics.newImage("randomshit-01.png")
vorteximage2=love.graphics.newImage("randomshit-02.png")
vorteximage3=love.graphics.newImage("randomshit-03.png")
vorteximage4=love.graphics.newImage("randomshit-04.png")
vorteximage5=love.graphics.newImage("randomshit-05.png")
vorteximage6=love.graphics.newImage("randomshit-06.png")
vorteximage7=love.graphics.newImage("randomshit-07.png")
vorteximage8=love.graphics.newImage("randomshit-08.png")
vorteximage9=love.graphics.newImage("randomshit-09.png")
vorteximage10=love.graphics.newImage("randomshit-10.png")
vorteximage11=love.graphics.newImage("randomshit-11.png")
vorteximage12=love.graphics.newImage("randomshit-12.png")
vorteximage13=love.graphics.newImage("randomshit-13.png")
vorteximage14=love.graphics.newImage("randomshit-14.png")
vorteximage15=love.graphics.newImage("randomshit-15.png")
vorteximage16=love.graphics.newImage("randomshit-16.png")
vorteximage17=love.graphics.newImage("randomshit-17.png")
vorteximage18=love.graphics.newImage("randomshit-18.png")
vorteximage19=love.graphics.newImage("randomshit-19.png")
vorteximage20=love.graphics.newImage("randomshit-20.png")
vorteximage21=love.graphics.newImage("randomshit-21.png")
vorteximage22=love.graphics.newImage("randomshit-22.png")
vorteximage23=love.graphics.newImage("randomshit-23.png")
vorteximage24=love.graphics.newImage("randomshit-24.png")
vorteximage25=love.graphics.newImage("randomshit-25.png")
vorteximage26=love.graphics.newImage("randomshit-26.png")
vorteximage27=love.graphics.newImage("randomshit-27.png")
vorteximage28=love.graphics.newImage("randomshit-28.png")
vorteximage29=love.graphics.newImage("randomshit-29.png")
vorteximage30=love.graphics.newImage("randomshit-30.png")
vorteximage31=love.graphics.newImage("randomshit-31.png")
vorteximage32=love.graphics.newImage("randomshit-32.png")
vorteximage33=love.graphics.newImage("randomshit-33.png")
vorteximage34=love.graphics.newImage("randomshit-34.png")
vorteximage35=love.graphics.newImage("randomshit-35.png")
vorteximage36=love.graphics.newImage("randomshit-36.png")
vorteximage37=love.graphics.newImage("randomshit-37.png")
vorteximage38=love.graphics.newImage("randomshit-38.png")
vorteximage39=love.graphics.newImage("randomshit-39.png")
vorteximage40=love.graphics.newImage("BeastBoyBastard-DoomGuy.png")
vorteximage41=love.graphics.newImage("BeastBoyBastard-DoomSymbolNerkz.png")
vorteximage42=love.graphics.newImage("BeastBoyBastard-NerkzConverseblack.png")
vorteximage43=love.graphics.newImage("BeastBoyBastard-TudorRose.png")
vorteximages={vorteximage1,vorteximage2,vorteximage3,vorteximage4,vorteximage5,vorteximage6,vorteximage7,vorteximage8,vorteximage9,vorteximage10,vorteximage11,vorteximage12,vorteximage13,vorteximage14,vorteximage15,vorteximage16,vorteximage17,vorteximage18,vorteximage19,vorteximage20,vorteximage21,vorteximage22,vorteximage23,vorteximage24,vorteximage25,vorteximage26,vorteximage27,vorteximage28,vorteximage29,vorteximage30,vorteximage31,vorteximage32,vorteximage33,vorteximage34,vorteximage35,vorteximage36,vorteximage37,vorteximage38,vorteximage39,vorteximage40,vorteximage41,vorteximage42,vorteximage43}
hueshiftshader=love.graphics.newShader([[
extern float hueShift; // 0..1
vec3 rgb2hsv(vec3 c){
vec4 K = vec4(0.0, -1.0/3.0, 2.0/3.0, -1.0);
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return vec3(abs(q.z + (q.w - q.y) / (6.0*d + e)), d / (q.x + e), q.x);
}
vec3 hsv2rgb(vec3 c){
vec3 p = abs(fract(c.xxx + vec3(0.0, 1.0/3.0, 2.0/3.0)) * 6.0 - 3.0);
vec3 rgb = c.z * mix(vec3(1.0), clamp(p - 1.0, 0.0, 1.0), c.y);
return rgb;
}
vec4 effect(vec4 color, Image tex, vec2 texture_coords, vec2 screen_coords){
vec4 px = Texel(tex, texture_coords);
vec3 hsv = rgb2hsv(px.rgb);
hsv.x = fract(hsv.x + hueShift);
vec3 rgb = hsv2rgb(hsv);
return vec4(rgb, px.a) * color;
}
]])
for i=1,100 do
local angle=(i/100)*math.pi*2*5
local radius=(i/100)*500
local selectedimage=vorteximages[math.random(1,#vorteximages)]
local hueshift=math.random()
local flipx=(math.random()<0.5)
table.insert(points,{x=960+radius*math.cos(angle),y=540+radius*math.sin(angle),angle=angle,radius=radius,image=selectedimage,hueshift=hueshift,flipx=flipx}) end end
function vortex.update(dt)
vortextime=vortextime+dt
for i,point in ipairs(points) do
point.angle=point.angle+dt*1.5
point.radius=(i/100)*(950+850*math.sin(vortextime))
point.x=960+point.radius*math.cos(point.angle)
point.y=540+point.radius*math.sin(point.angle) end end
function vortex.draw()
love.graphics.setColor(1,1,1)
love.graphics.setShader(hueshiftshader)
for i,point in ipairs(points) do
local img=point.image
local w,h=img:getWidth(),img:getHeight()
hueshiftshader:send("hueShift",point.hueshift)
local sx=1.5*(point.flipx and -1 or 1)
local sy=1.5
love.graphics.draw(img,point.x,point.y,0,sx,sy,w/2,h/2) end
love.graphics.setShader() end
return vortex
