|
|
|
-- __ _ _______ _ __
|
|
|
|
-- / / /\ | | |__ __| | | \ \
|
|
|
|
-- / / / \ | |_ __ ___ | | ___ ___| |__ \ \
|
|
|
|
-- < < / /\ \ | | '_ ` _ \| |/ _ \/ __| '_ \ > >
|
|
|
|
-- \ \ / ____ \| | | | | | | | __/ (__| | | | / /
|
|
|
|
-- \_\ /_/ \_\_|_| |_| |_|_|\___|\___|_| |_| /_/
|
|
|
|
|
|
|
|
local iteminfo = {}
|
|
|
|
|
|
|
|
local scale = Quantum.Client.ResolutionScale
|
|
|
|
local padding = math.Round( 10 * scale )
|
|
|
|
local padding_s = math.Round( 4 * scale )
|
|
|
|
|
|
|
|
local theme = Quantum.Client.Menu.GetAPI( "theme" )
|
|
|
|
|
|
|
|
function iteminfo.givetooltip( p, page )
|
|
|
|
local item = p:GetParent().item
|
|
|
|
local parWidth, parHeight = p:GetParent():GetSize()
|
|
|
|
|
|
|
|
|
|
|
|
local tooltip = vgui.Create( "DPanel", page )
|
|
|
|
tooltip:SetSize( 100 * scale, 80 * scale ) -- placeholder size
|
|
|
|
tooltip.w, tooltip.h = tooltip:GetSize()
|
|
|
|
tooltip.item = item
|
|
|
|
tooltip:SetVisible( false )
|
|
|
|
tooltip.Paint = function( self )
|
|
|
|
theme.itemtooltip( self, item )
|
|
|
|
end
|
|
|
|
|
|
|
|
function tooltip:CreateInfo()
|
|
|
|
local pw, ph = self:GetSize()
|
|
|
|
local amountStr = ""
|
|
|
|
if( self.item.amount > 1 ) then amountStr = " (x" .. tostring( self.item.amount ) .. ")" end
|
|
|
|
|
|
|
|
local title = vgui.Create( "DLabel", self ) -- title label of the item
|
|
|
|
title:SetText( self.item.name .. amountStr || "ERROR TITLE" )
|
|
|
|
title:SetFont( "q_tooltip_title" )
|
|
|
|
title:SetTextColor( theme.color.setalpha( self.item.rarity.color || Color( 255, 255, 255, 255 ), 255 ) )
|
|
|
|
title:SizeToContents()
|
|
|
|
title.w, title.h = title:GetSize()
|
|
|
|
title:SetPos( padding_s, padding_s )
|
|
|
|
title.x, title.y = title:GetPos()
|
|
|
|
|
|
|
|
local rare = vgui.Create( "DLabel", self )
|
|
|
|
rare:SetText( self.item.rarity.txt || "ERROR RARITY" )
|
|
|
|
rare:SetFont( "q_tooltip_rarity" )
|
|
|
|
rare:SetTextColor( theme.color.setalpha( self.item.rarity.color || Color( 255, 255, 255, 255 ), 255 ) )
|
|
|
|
rare:SizeToContents()
|
|
|
|
rare.w, rare.h = rare:GetSize()
|
|
|
|
rare:SetPos( title.x, title.y + title.h + padding_s )
|
|
|
|
rare.x, rare.y = rare:GetPos()
|
|
|
|
|
|
|
|
local desc = vgui.Create( "DLabel", self )
|
|
|
|
desc:SetText( self.item.desc || "ERROR DESC" )
|
|
|
|
desc:SetFont( "q_tooltip_desc" )
|
|
|
|
desc:SetTextColor( Color( 205, 205, 205, 255 ) )
|
|
|
|
desc:SizeToContents()
|
|
|
|
desc.w, desc.h = desc:GetSize()
|
|
|
|
desc:SetPos( title.x, rare.y + rare.h + padding_s )
|
|
|
|
desc.x, desc.y = desc:GetPos()
|
|
|
|
|
|
|
|
if( self.item.soulbound == true ) then
|
|
|
|
local sb = vgui.Create( "DLabel", self )
|
|
|
|
sb:SetText( "Soulbound" )
|
|
|
|
sb:SetFont( "q_tooltip_rarity" )
|
|
|
|
sb:SetTextColor( Color( 235, 64, 52, 255 ) )
|
|
|
|
sb:SizeToContents()
|
|
|
|
sb.w, sb.h = sb:GetSize()
|
|
|
|
sb:SetPos( title.x, desc.y + desc.h + padding_s )
|
|
|
|
end
|
|
|
|
|
|
|
|
-- Correct the tooltips size so its content fits inside of it
|
|
|
|
self:SizeToChildren( true, true )
|
|
|
|
self.w, self.h = self:GetSize()
|
|
|
|
self:SetSize( self.w + padding_s, self.h + padding_s )
|
|
|
|
self.w, self.h = self:GetSize()
|
|
|
|
end
|
|
|
|
|
|
|
|
p.ItemTooltipPanel = tooltip -- set the tooltip
|
|
|
|
|
|
|
|
p.Think = function( self )
|
|
|
|
self.ItemTooltipPanel:SetVisible( self:IsHovered() )
|
|
|
|
if( self:IsHovered() ) then
|
|
|
|
self.ItemTooltipPanel:SetPos( gui.MouseX() - tooltip.w/2, gui.MouseY() - ( tooltip.h + padding ) )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
return tooltip
|
|
|
|
end
|
|
|
|
|
|
|
|
return iteminfo
|