summaryrefslogtreecommitdiff
path: root/gamemode/vgui/vgui_goodmodelpanel.lua
diff options
context:
space:
mode:
Diffstat (limited to 'gamemode/vgui/vgui_goodmodelpanel.lua')
-rw-r--r--gamemode/vgui/vgui_goodmodelpanel.lua102
1 files changed, 51 insertions, 51 deletions
diff --git a/gamemode/vgui/vgui_goodmodelpanel.lua b/gamemode/vgui/vgui_goodmodelpanel.lua
index 4434e56..b61c96f 100644
--- a/gamemode/vgui/vgui_goodmodelpanel.lua
+++ b/gamemode/vgui/vgui_goodmodelpanel.lua
@@ -1,6 +1,6 @@
/* _
- ( )
- _| | __ _ __ ___ ___ _ _
+ ( )
+ _| | __ _ __ ___ ___ _ _
/'_` | /'__`\( '__)/' _ ` _ `\ /'_` )
( (_| |( ___/| | | ( ) ( ) |( (_| |
`\__,_)`\____)(_) (_) (_) (_)`\__,_) sucks shit
@@ -25,20 +25,20 @@ function PANEL:Init()
self.NextSetModel = nil
self.LastPaint = 0
self.DirectionalLight = {}
-
+
self:SetCamPos( Vector( 50, 50, 50 ) )
self:SetLookAt( Vector( 0, 0, 40 ) )
self:SetFOV( 70 )
-
+
self:SetText( "" )
self:SetAnimSpeed( 0.5 )
self:SetAnimated( false )
-
+
self:SetAmbientLight( Color( 50, 50, 50 ) )
-
+
self:SetDirectionalLight( BOX_TOP, Color( 255, 255, 255 ) )
self:SetDirectionalLight( BOX_FRONT, Color( 255, 255, 255 ) )
-
+
self:SetColor( Color( 255, 255, 255, 255 ) )
end
@@ -46,7 +46,7 @@ end
function PANEL:SetModel( model )
if self.NextModel == model then return end
-
+
self.NextModel = model
self.StopRender = true
self.NextSetModel = CurTime() + 0.01
@@ -56,37 +56,37 @@ end
function PANEL:Think()
if self.NextSetModel and self.NextSetModel < CurTime() then
-
+
self:SpecialSetModel( self.NextModel )
self.StopRender = false
self.NextSetModel = nil
-
+
end
end
function PANEL:SpecialSetModel( model )
-
+
if IsValid( self.Entity ) then
-
+
self.Entity:Remove()
- self.Entity = nil
-
+ self.Entity = nil
+
end
-
+
if not ClientsideModel then return end
-
+
self.LastModel = model
self.Entity = ClientsideModel( model, RENDERGROUP_OPAQUE )
-
+
if not IsValid( self.Entity ) then return end
-
+
self.Entity:SetNoDraw( true )
-
+
local seq = self:ChooseSequence( model )
-
+
if seq > 0 then self.Entity:ResetSequence( seq ) end
-
+
end
function PANEL:GetSequenceList()
@@ -106,21 +106,21 @@ function PANEL:ChooseSequence( model )
local seq = 0
for k,v in pairs( self:ExcludedModels() ) do
-
+
if string.find( model, v ) then
-
- return self.Entity:LookupSequence( "idle" )
-
+
+ return self.Entity:LookupSequence( "idle" )
+
end
-
+
end
-
+
for k,v in pairs( self:GetSequenceList() ) do
-
+
if seq <= 0 then seq = self.Entity:LookupSequence( v ) end
-
+
end
-
+
return seq
end
@@ -129,62 +129,62 @@ function PANEL:Paint()
if ( !IsValid( self.Entity ) ) then return end
if self.StopRender then return end
-
+
local x, y = self:LocalToScreen( 0, 0 )
local w, h = self:GetSize()
-
+
local sl, st, sr, sb = x, y, x + w, y + h
-
+
local p = self
-
+
while p:GetParent() do
-
+
p = p:GetParent()
-
+
local pl, pt = p:LocalToScreen( 0, 0 )
local pr, pb = pl + p:GetWide(), pt + p:GetTall()
-
+
sl = sl < pl and pl or sl
st = st < pt and pt or st
sr = sr > pr and pr or sr
sb = sb > pb and pb or sb
-
+
end
-
+
render.SetScissorRect( sl, st, sr, sb, true )
-
+
self:LayoutEntity( self.Entity )
-
+
cam.Start3D( self.vCamPos, (self.vLookatPos-self.vCamPos):Angle(), self.fFOV, x, y, self:GetWide(), self:GetTall() )
cam.IgnoreZ( true )
-
+
render.SuppressEngineLighting( true )
render.SetLightingOrigin( self.Entity:GetPos() )
render.ResetModelLighting( self.colAmbientLight.r / 255, self.colAmbientLight.g / 255, self.colAmbientLight.b / 255 )
render.SetColorModulation( self.colColor.r / 255, self.colColor.g / 255, self.colColor.b / 255 )
render.SetBlend( self.colColor.a / 255 )
-
+
for i=0, 6 do
local col = self.DirectionalLight[ i ]
if ( col ) then
render.SetModelLighting( i, col.r / 255, col.g / 255, col.b / 255 )
end
end
-
+
if IsValid( self.Entity ) and not GetGlobalBool( "GameOver", false ) then
-
+
self.Entity:DrawModel()
-
+
end
-
+
render.SuppressEngineLighting( false )
cam.IgnoreZ( false )
cam.End3D()
-
+
render.SetScissorRect( 0, 0, 0, 0, false )
-
+
self.LastPaint = RealTime()
-
+
end
function PANEL:LayoutEntity( Entity )
@@ -194,7 +194,7 @@ function PANEL:LayoutEntity( Entity )
if ( self.bAnimated ) then
self:RunAnimation()
end
-
+
Entity:SetAngles( Angle( 0, RealTime() * 10, 0) )
end