wiremod-svn-archive/wire/lua/entities/gmod_wire_light/cl_init.lua

59 lines
1.5 KiB
Lua
Raw Permalink Normal View History

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