2019-05-28 09:16:53 +02:00

443 lines
12 KiB
Lua

/*
skin.lua - Fretta Derma Skin
-----------------------------------------------------
This is the default Fretta skin for Derma. If you want to override the look of Fretta,
base a skin of this and change GM.HudSkin.
*/
local surface = surface
local draw = draw
local Color = Color
local SKIN = {}
SKIN.PrintName = ""
SKIN.Author = ""
SKIN.DermaVersion = 1
SKIN.bg_color = Color( 100, 100, 100, 255 )
SKIN.bg_color_sleep = Color( 70, 70, 70, 255 )
SKIN.bg_color_dark = Color( 50, 50, 50, 255 )
SKIN.bg_color_bright = Color( 220, 220, 220, 255 )
SKIN.fontFrame = "Default"
SKIN.control_color = Color( 180, 180, 180, 255 )
SKIN.control_color_highlight = Color( 220, 220, 220, 255 )
SKIN.control_color_active = Color( 110, 150, 255, 255 )
SKIN.control_color_bright = Color( 255, 200, 100, 255 )
SKIN.control_color_dark = Color( 100, 100, 100, 255 )
SKIN.bg_alt1 = Color( 50, 50, 50, 255 )
SKIN.bg_alt2 = Color( 55, 55, 55, 255 )
SKIN.listview_hover = Color( 70, 70, 70, 255 )
SKIN.listview_selected = Color( 100, 170, 220, 255 )
SKIN.text_bright = Color( 255, 255, 255, 255 )
SKIN.text_normal = Color( 180, 180, 180, 255 )
SKIN.text_dark = Color( 20, 20, 20, 255 )
SKIN.text_highlight = Color( 255, 20, 20, 255 )
SKIN.texGradientUp = Material( "gui/gradient_up" )
SKIN.texGradientDown = Material( "gui/gradient_down" )
SKIN.combobox_selected = SKIN.listview_selected
SKIN.panel_transback = Color( 255, 255, 255, 50 )
SKIN.tooltip = Color( 255, 245, 175, 255 )
SKIN.colPropertySheet = Color( 170, 170, 170, 255 )
SKIN.colTab = SKIN.colPropertySheet
SKIN.colTabInactive = Color( 170, 170, 170, 155 )
SKIN.colTabShadow = Color( 60, 60, 60, 255 )
SKIN.colTabText = Color( 255, 255, 255, 255 )
SKIN.colTabTextInactive = Color( 0, 0, 0, 155 )
SKIN.fontTab = "Default"
SKIN.colCollapsibleCategory = Color( 255, 255, 255, 20 )
SKIN.colCategoryText = Color( 255, 255, 255, 255 )
SKIN.colCategoryTextInactive = Color( 200, 200, 200, 255 )
SKIN.fontCategoryHeader = "TabLarge"
SKIN.colNumberWangBG = Color( 255, 240, 150, 255 )
SKIN.colTextEntryBG = Color( 240, 240, 240, 255 )
SKIN.colTextEntryBorder = Color( 20, 20, 20, 255 )
SKIN.colTextEntryText = Color( 20, 20, 20, 255 )
SKIN.colTextEntryTextHighlight = Color( 20, 200, 250, 255 )
SKIN.colTextEntryTextHighlight = Color( 20, 200, 250, 255 )
SKIN.colMenuBG = Color( 255, 255, 255, 200 )
SKIN.colMenuBorder = Color( 0, 0, 0, 200 )
SKIN.colButtonText = Color( 0, 0, 0, 250 )
SKIN.colButtonTextDisabled = Color( 0, 0, 0, 100 )
SKIN.colButtonBorder = Color( 20, 20, 20, 255 )
SKIN.colButtonBorderHighlight = Color( 255, 255, 255, 50 )
SKIN.colButtonBorderShadow = Color( 0, 0, 0, 100 )
SKIN.fontButton = "Default"
-- enum for draw order
DM_ORDER_LATESTATTOP = 1;
DM_ORDER_LATESTATBOTTOM = 2;
-- basic deathmsg appearance settings
SKIN.deathMessageBackgroundCol = Color( 46, 43, 42, 220 );
SKIN.deathMessageBackgroundLocal = Color( 75, 75, 75, 200 ); -- this is the colour that the background is when the local player is involved in the deathmsg, so it stands out.
SKIN.deathMessageActionColor = Color( 200, 200, 200 );
local matBlurScreen = Material( "pp/blurscreen" )
/*---------------------------------------------------------
DrawGenericBackground
---------------------------------------------------------*/
function SKIN:DrawGenericBackground( x, y, w, h, color )
draw.RoundedBox( 4, x, y, w, h, color )
end
/*---------------------------------------------------------
DrawLinedButtonBorder
---------------------------------------------------------*/
function SKIN:DrawLinedButtonBorder( x, y, w, h, depressed )
surface.SetDrawColor( Color( 0, 0, 0, 200 ) )
surface.DrawOutlinedRect( x+1, y+1, w-2, h-2 )
end
/*---------------------------------------------------------
Button
---------------------------------------------------------*/
function SKIN:PaintCancelButton( panel )
local w, h = panel:GetSize()
if ( panel.m_bBackground ) then
local col = self.control_color
if ( panel:GetDisabled() ) then
col = self.control_color_dark
elseif ( panel.Depressed ) then
col = self.control_color_active
elseif ( panel.Hovered ) then
col = self.control_color_highlight
end
if ( panel.m_colBackground ) then
col = table.Copy( panel.m_colBackground )
if ( panel:GetDisabled() ) then
col.r = math.Clamp( col.r * 0.7, 0, 255 )
col.g = math.Clamp( col.g * 0.7, 0, 255 )
col.b = math.Clamp( col.b * 0.7, 0, 255 )
col.a = 20
elseif ( panel.Depressed ) then
col.r = math.Clamp( col.r + 100, 0, 255 )
col.g = math.Clamp( col.g + 100, 0, 255 )
col.b = math.Clamp( col.b + 100, 0, 255 )
elseif ( panel.Hovered ) then
col.r = math.Clamp( col.r + 30, 0, 255 )
col.g = math.Clamp( col.g + 30, 0, 255 )
col.b = math.Clamp( col.b + 30, 0, 255 )
end
end
surface.SetDrawColor( col.r, col.g, col.b, col.a )
panel:DrawFilledRect()
end
end
SKIN.PaintSelectButton = SKIN.PaintCancelButton
function SKIN:PaintOverCancelButton( panel )
local w, h = panel:GetSize()
if ( panel.m_bBorder ) then
self:DrawLinedButtonBorder( 0, 0, w, h, panel.Depressed )
end
end
SKIN.PaintOverSelectButton = SKIN.PaintOverCancelButton
function SKIN:SchemeCancelButton( panel )
panel:SetFontInternal( "FRETTA_SMALL" )
if ( panel:GetDisabled() ) then
panel:SetTextColor( self.colButtonTextDisabled )
else
panel:SetTextColor( self.colButtonText )
end
DLabel.ApplySchemeSettings( panel )
end
function SKIN:SchemeSelectButton( panel )
panel:SetFontInternal( "FRETTA_SMALL" )
if ( panel:GetDisabled() ) then
panel:SetTextColor( self.colButtonTextDisabled )
else
panel:SetTextColor( self.colButtonText )
end
DLabel.ApplySchemeSettings( panel )
end
/*---------------------------------------------------------
ListViewLine
---------------------------------------------------------*/
function SKIN:PaintListViewLine( panel )
end
/*---------------------------------------------------------
ListViewLine
---------------------------------------------------------*/
function SKIN:PaintListView( panel )
end
/*---------------------------------------------------------
ListViewLabel
---------------------------------------------------------*/
function SKIN:PaintScorePanelHeader( panel )
//surface.SetDrawColor( panel.cTeamColor )
//panel:DrawFilledRect()
end
/*---------------------------------------------------------
ListViewLabel
---------------------------------------------------------*/
function SKIN:PaintScorePanelLine( panel )
local Tall = panel:GetTall()
local BoxHeight = 21
if ( !IsValid( panel.pPlayer ) || !panel.pPlayer:Alive() ) then
draw.RoundedBox( 4, 0, Tall*0.5 - BoxHeight*0.5, panel:GetWide(), BoxHeight, Color( 60, 60, 60, 255 ) )
return
end
if ( panel.pPlayer == LocalPlayer() ) then
draw.RoundedBox( 4, 0, Tall*0.5 - BoxHeight*0.5, panel:GetWide(), BoxHeight, Color( 90, 90, 90, 255 ) )
return
end
draw.RoundedBox( 4, 0, Tall*0.5 - BoxHeight*0.5, panel:GetWide(), BoxHeight, Color( 70, 70, 70, 255 ) )
end
/*---------------------------------------------------------
PaintScorePanel
---------------------------------------------------------*/
function SKIN:PaintScorePanel( panel )
surface.SetMaterial( matBlurScreen )
surface.SetDrawColor( 255, 255, 255, 255 )
local x, y = panel:LocalToScreen( 0, 0 )
matBlurScreen:SetFloat( "$blur", 5 )
render.UpdateScreenEffectTexture()
surface.DrawTexturedRect( x*-1, y*-1, ScrW(), ScrH() )
//matBlurScreen:SetFloat( "$blur", 3 )
//render.UpdateScreenEffectTexture()
//surface.DrawTexturedRect( x*-1, y*-1, ScrW(), ScrH() )
draw.RoundedBox( 8, 0, 8, panel:GetWide(), panel:GetTall()-8, Color( 40, 40, 40, 150 ) )
end
/*---------------------------------------------------------
LayoutTeamScoreboardHeader
---------------------------------------------------------*/
function SKIN:LayoutTeamScoreboardHeader( panel )
panel.TeamName:StretchToParent( 0, 0, 0, 0 )
panel.TeamName:SetTextInset( 8, 0 )
panel.TeamName:SetColor( Color( 0,0,0 ) )
panel.TeamName:SetFontInternal( "FRETTA_SMALL" )
panel.TeamScore:StretchToParent( 0, 0, 0, 0 )
panel.TeamScore:SetContentAlignment( 6 )
panel.TeamScore:SetTextInset( 8, 0 )
panel.TeamScore:SetColor( Color( 0, 0, 0, 250 ) )
panel.TeamScore:SetFontInternal( "FRETTA_MEDIUM" )
end
function SKIN:PaintTeamScoreboardHeader( panel )
local Color = team.GetColor( panel.iTeamID )
draw.RoundedBox( 4, 0, 0, panel:GetWide(), panel:GetTall()*2, Color )
end
function SKIN:SchemeScorePanelLabel( panel )
panel:SetTextColor( GAMEMODE:GetTeamColor( panel.pPlayer ) )
panel:SetFontInternal( "FRETTA_MEDIUM_SHADOW" )
end
function SKIN:PaintScorePanelLabel( panel )
if ( !IsValid( panel.pPlayer ) || !panel.pPlayer:Alive() ) then
panel:SetAlpha( 125 )
else
panel:SetAlpha( 255 )
end
end
function SKIN:SchemeScorePanelHeaderLabel( panel )
panel:SetTextColor( Color( 180, 180, 180, 255 ) )
panel:SetFontInternal( "Default" ) -- HudSelectionText
end
function SKIN:SchemeSpectatorInfo( panel )
panel:SetTextColor( Color( 255, 255, 255, 255 ) )
panel:SetFontInternal( "FRETTA_SMALL" )
end
/*---------------------------------------------------------
ScoreHeader
---------------------------------------------------------*/
function SKIN:PaintScoreHeader( panel )
draw.RoundedBox( 8, 0, 0, panel:GetWide(), panel:GetTall()*2, Color( 60,60,60,255 ) )
end
function SKIN:LayoutScoreHeader( panel )
panel.HostName:SizeToContents()
panel.HostName:SetPos( 0, 0 )
panel.HostName:CenterHorizontal()
panel.GamemodeName:SizeToContents()
panel.GamemodeName:MoveBelow( panel.HostName, 0 )
panel.GamemodeName:CenterHorizontal()
panel:SetTall( panel.GamemodeName.y + panel.GamemodeName:GetTall() + 4 )
end
function SKIN:SchemeScoreHeader( panel )
panel.HostName:SetTextColor( Color( 255, 255, 255, 255 ) )
panel.HostName:SetFontInternal( "FRETTA_LARGE_SHADOW" )
panel.GamemodeName:SetTextColor( Color( 255, 255, 255, 255 ) )
panel.GamemodeName:SetFontInternal( "FRETTA_MEDIUM_SHADOW" )
end
/*---------------------------------------------------------
DeathMessages
---------------------------------------------------------*/
function SKIN:PaintGameNotice( panel )
if ( panel.m_bHighlight ) then
draw.RoundedBox( 4, 0, 0, panel:GetWide(), panel:GetTall(), Color( 90, 90, 90, 200 ) )
return
end
draw.RoundedBox( 4, 0, 0, panel:GetWide(), panel:GetTall(), Color( 20, 20, 20, 190 ) )
end
function SKIN:SchemeGameNoticeLabel( panel )
panel:SetFontInternal( "FRETTA_NOTIFY" );
DLabel.ApplySchemeSettings( panel )
end
/*---------------------------------------------------------
GamemodeButton
---------------------------------------------------------*/
function SKIN:PaintGamemodeButton( panel )
local w, h = panel:GetSize()
local col = Color( 255, 255, 255, 10 )
if ( panel:GetDisabled() ) then
col = Color( 0, 0, 0, 10 )
elseif ( panel.Depressed ) then
col = Color( 255, 255, 255, 50 )
elseif ( panel.Hovered ) then
col = Color( 255, 255, 255, 20 )
end
if ( panel.bgColor != nil ) then col = panel.bgColor end
draw.RoundedBox( 4, 0, 0, w, h, col )
end
function SKIN:SchemeGamemodeButton( panel )
panel:SetTextColor( color_white )
panel:SetFontInternal( "FRETTA_MEDIUM_SHADOW" )
panel:SetContentAlignment( 4 )
panel:SetTextInset( 8, 0 )
end
/*---------------------------------------------------------
PanelButton
---------------------------------------------------------*/
function SKIN:PaintPanelButton( panel )
local w, h = panel:GetSize()
local col = Color( 160, 160, 160, 255 )
if ( panel:GetDisabled() ) then
col = Color( 100, 100, 100, 255 )
elseif ( panel.Depressed ) then
col = Color( 150, 210, 255, 255 )
elseif ( panel.Hovered ) then
col = Color( 200, 200, 200, 255 )
end
if ( panel.bgColor != nil ) then col = panel.bgColor end
surface.SetDrawColor( col )
panel:DrawFilledRect()
end
function SKIN:PaintOverPanelButton( panel )
local w, h = panel:GetSize()
self:DrawLinedButtonBorder( 0, 0, w, h, panel.Depressed )
end
derma.DefineSkin( "SimpleSkin", "", SKIN )