--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| 	Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]


EFFECT.Mat = Material( "effects/select_dot" )

function EFFECT:Init( data )

	local pos = data:GetOrigin()
	local att = data:GetAttachment()
	local ent = data:GetEntity()
	local nrml = data:GetNormal()

	self:SetRenderBounds( Vector( -8, -8, -8 ), Vector( 8, 8, 8 ) )
	self:SetPos( pos )

	-- This 0.01 is a hack.. to prevent the angle being weird and messing up when we change it back to a normal
	self:SetAngles( nrml:Angle() + Angle( 0.01, 0.01, 0.01 ) )

	if ( IsValid( ent ) ) then
		self:SetParentPhysNum( att )
		self:SetParent( ent )
	end

	self.Size = 4
	self.Alpha = 255

	local effectdata = EffectData()
	effectdata:SetOrigin( pos )
	effectdata:SetNormal( nrml )
	effectdata:SetEntity( ent )
	effectdata:SetAttachment( att )

	for i = 0, 5 do

		util.Effect( "selection_ring", effectdata )

	end

end

function EFFECT:Think()

	self.Alpha = self.Alpha - 255 * FrameTime()
	if ( self.Alpha < 0 ) then return false end
	return true

end

function EFFECT:Render()

	if ( self.Alpha < 1 ) then return end

	render.SetMaterial( self.Mat )

	render.DrawQuadEasy( self:GetPos(), self:GetAngles():Forward(), self.Size, self.Size, Color( 255, 255, 255, self.Alpha ) )

end
