diff options
Diffstat (limited to 'gamemode/vgui/vgui_goodmodelpanel.lua')
| -rw-r--r-- | gamemode/vgui/vgui_goodmodelpanel.lua | 102 |
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 |
