2008-06-14 00:55:20 +00:00
|
|
|
|
|
|
|
include('shared.lua')
|
|
|
|
|
|
|
|
local matLight = Material( "sprites/light_ignorez" )
|
|
|
|
local matBeam = Material( "effects/lamp_beam" )
|
|
|
|
|
|
|
|
ENT.RenderGroup = RENDERGROUP_BOTH
|
|
|
|
|
|
|
|
function ENT:Initialize()
|
|
|
|
|
|
|
|
self.PixVis = util.GetPixelVisibleHandle()
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
/*---------------------------------------------------------
|
|
|
|
Name: Draw
|
|
|
|
---------------------------------------------------------*/
|
|
|
|
function ENT:Draw()
|
|
|
|
|
|
|
|
self.BaseClass.Draw( self )
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
/*---------------------------------------------------------
|
|
|
|
Name: DrawTranslucent
|
|
|
|
Desc: Draw translucent
|
|
|
|
---------------------------------------------------------*/
|
|
|
|
function ENT:DrawTranslucent()
|
|
|
|
|
|
|
|
local LightNrm = self.Entity:GetAngles():Up()*(-1)
|
|
|
|
local ViewDot = EyeVector():Dot( LightNrm )
|
|
|
|
local r, g, b, a = self.Entity:GetColor()
|
|
|
|
local LightPos = self.Entity:GetPos() + LightNrm * -10
|
|
|
|
|
|
|
|
// glow sprite
|
|
|
|
/*
|
|
|
|
render.SetMaterial( matBeam )
|
|
|
|
|
|
|
|
local BeamDot = BeamDot = 0.25
|
|
|
|
|
|
|
|
render.StartBeam( 3 )
|
|
|
|
render.AddBeam( LightPos + LightNrm * 1, 128, 0.0, Color( r, g, b, 255 * BeamDot) )
|
|
|
|
render.AddBeam( LightPos - LightNrm * 100, 128, 0.5, Color( r, g, b, 64 * BeamDot) )
|
|
|
|
render.AddBeam( LightPos - LightNrm * 200, 128, 1, Color( r, g, b, 0) )
|
|
|
|
render.EndBeam()
|
|
|
|
*/
|
|
|
|
|
|
|
|
if ( ViewDot < 0 ) then return end
|
|
|
|
|
|
|
|
render.SetMaterial( matLight )
|
|
|
|
local Visibile = util.PixelVisible( LightPos, 16, self.PixVis )
|
|
|
|
local Size = math.Clamp( 512 * (1 - Visibile*ViewDot),128, 512 )
|
|
|
|
|
|
|
|
local Col = Color( r, g, b, 200*Visibile*ViewDot )
|
|
|
|
|
|
|
|
render.DrawSprite( LightPos, Size, Size, Col, Visibile * ViewDot )
|
|
|
|
|
|
|
|
end
|