rendered paste bodyfunction EFFECT:Init( data )
local c
self.Origin = data:GetOrigin( )
self.Target = data:GetStart( )
c = data:GetNormal( )
self.Time = data:GetMagnitude( )
self.Radius = data:GetScale( )
self.Linger = data:GetRadius( )
self.Progress = 0
self.Color = Color( c.x, c.y, c.z, 255 )
self.DieTime = CurTime( ) + self.Time + self.Linger
self.Ray = self.Target - self.Origin
end
function EFFECT:Render( )
self.Mat = self.Mat or Material( "cable/redlaser" )
render.SetMaterial( self.Mat )
render.DrawBeam( self.Origin, self.Origin + self.Ray * self.Progress, self.Radius, 1, 0, self.Color )
end
function EFFECT:Think( )
self.LastTime = self.LastTime or CurTime( )
self.Progress = math.min( self.Progress + ( FrameTime( ) / self.Time ), 1 )
self:SetRenderBoundsWS( self.Origin, self.Target )
return CurTime( ) <= self.DieTime
end