GM: RM can Render Info

Origin is HUDPaint hook. Called before we render each repair man info text (above head). This can be used to override the data per each NPC with custom visual styles.

Used in: VCMod Main addon.

Client GM:VC_RM_canRenderInfo(Entity ent, String text)


1. Entity ent; Repair Man NPC
The NPC of which we want to render info about.

2. String text; Text
The text above the head.


1. Boolean Return false if you want the original VCMod above head info to not draw.


hook.Add("VC_RM_canRenderInfo", "createCustomVCModRepairManText", function(ent, text)

	// This code snippet is a stripped down version of the currently used VCMod Repair Man above head info drawing

	// A lot of code is removed for demonstration purposes, keep that in mind

	// Create a pixel visibility entity
	if !ent.VC_PVsb then ent.VC_Color = VC.Color.White ent.VC_PVsb = util.GetPixelVisibleHandle() end

	// Get positions and visibility
	local BInd = ent:LookupBone("ValveBiped.Bip01_Head1")
	local pos = Vector(0,0,0) if BInd then local BonePos , BoneAng = ent:GetBonePosition(ent:LookupBone("ValveBiped.Bip01_Head1")) pos = BonePos+Vector(0,0,8) else pos=ent:GetPos()+Vector(0,0,65) end
	local Vis = util.PixelVisible(pos+Vector(0,0,5), 1, ent.VC_PVsb) local Dist = nil

	pos = pos:ToScreen()
	// A lot of code is removed for demonstration purposes, keep that in mind
	local VisM = 1
	surface.SetFont("VC_Name") local tz = surface.GetTextSize(text)
	local Sx = math.Round(pos.x+(VisM-1)*50) local Sy = math.Round(pos.y-25) local PSx, PSy = tz, 50

	// Drawing background
	local clr = table.Copy(VC.Color.Main) clr.a=clr.a*VisM draw.RoundedBox(0, math.Round(Sx-PSx/2)+1, Sy, PSx, PSy, clr)

	// Drawing text
	local tclr = table.Copy(VC.Color.White) tclr.a=tclr.a*VisM draw.SimpleText(text, "VC_Name", Sx, Sy+25, tclr, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)

	return false // This will force the original VCMod code render code to not function
Page modified:
...2018-12-14 19:44:25