-- entities/laundering_npc/cl_init.lua
-- Rendu client du NPC blanchisseur + tooltip contextuel.

include("shared.lua")

function ENT:Initialize()
    -- Rien de spécial côté client
end

function ENT:Draw()
    self:DrawModel()
end

-- ============================================================================
-- Tooltip "Appuyez sur E" quand le joueur regarde le NPC à courte distance
-- Throttlé : seul le check de trace peut être lourd, on le limite à ~20 Hz
-- ============================================================================

local _nextTooltipCheck = 0

hook.Add("HUDPaint", "Laundering.NPC.Tooltip", function()
    -- Throttle : 20 Hz max
    if CurTime() < _nextTooltipCheck then return end
    _nextTooltipCheck = CurTime() + 0.05

    local ply = LocalPlayer()
    if not IsValid(ply) then return end

    local tr = ply:GetEyeTrace()
    if not IsValid(tr.Entity) then return end
    if tr.Entity:GetClass() ~= "laundering_npc" then return end

    -- Distance limit (définie dans sh_config — partagée)
    local maxDist = Laundering and Laundering.Config and Laundering.Config.MaxDistance or 150
    if ply:GetPos():DistToSqr(tr.Entity:GetPos()) > (maxDist * maxDist) then return end

    local sw = ScrW()
    local sh = ScrH()

    -- Police et couleur via DBALib si disponible, sinon fallback safe
    local font  = (DBALib and DBALib.Fonts and DBALib.Fonts.Body_lg) or "DermaDefaultBold"
    local color = (DBALib and DBALib.Theme and DBALib.Theme.palette and DBALib.Theme.palette.gold)
                  or Color(212, 175, 55)

    draw.SimpleTextOutlined(
        "[E] Blanchir de l'argent",
        font,
        sw / 2,
        sh / 2 + 40,
        color,
        TEXT_ALIGN_CENTER,
        TEXT_ALIGN_CENTER,
        1,
        Color(0, 0, 0, 220)
    )
end)
