All pastes #929696 Raw Edit

Stuff

public text v1 · immutable
·published 2008-03-05 22:48 UTC
rendered paste body
function 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