@ -20,17 +20,17 @@ local radius = 1.05 * scale
local padding = 5 * scale
local sw , sh = ScrW ( ) , ScrH ( )
function GM : HUDPaint ( )
if ( ! Quantum.Client . IsInMenu ) then
local hp = LocalPlayer ( ) : Health ( )
local client = LocalPlayer ( )
local function SetAlpha ( color , alpha )
return Color ( color.r , color.g , color.b , alpha )
end
local function renderStatHUD ( )
local hp = client : Health ( )
local lasthp = hp
local maxhp = LocalPlayer ( ) : GetMaxHealth ( )
local maxhp = client : GetMaxHealth ( )
if ( Quantum.Client . Config.EnableHUD ) then
if ( ! LocalPlayer ( ) : Alive ( ) ) then
surface.SetDrawColor ( 0 , 0 , 0 , 255 )
surface.DrawRect ( 0 , 0 , sw , sh )
else
-- Health border
surface.SetDrawColor ( 0 , 0 , 0 , 200 )
surface.DrawRect ( sw / 2 - barW / 2 , sh * 0.9 , barW , barH )
@ -53,6 +53,50 @@ function GM:HUDPaint()
surface.DrawRect ( sw / 2 - radius , sh / 2 - radius , radius * 2 , radius * 2 )
end
end
local function renderItemInfoHUD ( )
local trace = client : GetEyeTraceNoCursor ( )
if ( trace.Entity : GetClass ( ) == " q_item " ) then
local distance = client : GetPos ( ) : Distance ( trace.Entity : GetPos ( ) )
local distFrac = Lerp ( distance / Quantum.ItemInfoDisplayMaxDistance , 1 , 0 )
if ( distance <= Quantum.ItemInfoDisplayMaxDistance ) then
local item = Quantum.Item . Get ( trace.Entity : GetNWString ( " q_item_id " ) ) || { name = " ERROR " }
local amount = trace.Entity : GetNWInt ( " q_item_amount " ) || 1
local pos = trace.Entity : GetPos ( )
pos.z = pos.z + 20
local screenPos = pos : ToScreen ( )
local txtPadding = 20 * scale
local itemAmountTxt = " "
if ( amount > 1 ) then itemAmountTxt = amount .. " x " end
local alphaFrac = distFrac
draw.SimpleText ( itemAmountTxt .. item.name , " q_item_hud_title " , screenPos.x , screenPos.y , SetAlpha ( item.rarity . color , 255 * alphaFrac ) , TEXT_ALIGN_CENTER , TEXT_ALIGN_CENTER )
draw.SimpleText ( " Rarity: " .. item.rarity . txt , " q_item_hud_rarity " , screenPos.x , screenPos.y + txtPadding , SetAlpha ( item.rarity . color , 255 * alphaFrac ) , TEXT_ALIGN_CENTER , TEXT_ALIGN_CENTER )
if ( item.soulbound ) then
draw.SimpleText ( " Soulbound " , " q_item_hud_soulbound " , screenPos.x , screenPos.y + txtPadding * 2 , Color ( 235 , 64 , 52 , 255 * alphaFrac ) , TEXT_ALIGN_CENTER , TEXT_ALIGN_CENTER )
end
end
end
end
function GM : HUDPaint ( )
if ( ! Quantum.Client . IsInMenu ) then
if ( ! client : Alive ( ) ) then
surface.SetDrawColor ( 0 , 0 , 0 , 255 )
surface.DrawRect ( 0 , 0 , sw , sh )
end
if ( Quantum.Client . Config.EnableHUD ) then
if ( client : Alive ( ) ) then
renderStatHUD ( )
renderItemInfoHUD ( )
end
end
end
end