ENTITY/RenderOverride

From Garry's Mod
(Difference between revisions)
Jump to: navigation, search
m (Bug)
m (Spacing)
 
(One intermediate revision by one user not shown)
Line 5: Line 5:
  
 
{{Note|As a downside of this implementation, only one RenderOverride may be applied at a time.}}
 
{{Note|As a downside of this implementation, only one RenderOverride may be applied at a time.}}
 +
 +
{{Bug|Issue=3292|Drawing a viewmodel in this function will cause {{HookFunction|GM|PreDrawViewModel}}, {{HookFunction|WEAPON|PreDrawViewModel}}, {{HookFunction|WEAPON|ViewModelDrawn}}, {{HookFunction|GM|PostDrawViewModel}}, and {{HookFunction|WEAPON|PostDrawViewModel}} to be called twice.}}
  
 
{{Bug|Issue=3299|This is called before PrePlayerDraw for players. If this function exists at all on a player, their worldmodel will always be rendered regardless of PrePlayerDraw's return.}}
 
{{Bug|Issue=3299|This is called before PrePlayerDraw for players. If this function exists at all on a player, their worldmodel will always be rendered regardless of PrePlayerDraw's return.}}

Latest revision as of 22:18, 26 July 2018

 ENTITY:RenderOverride( )

Description

Called instead of the engine drawing function of the entity. This hook works on any entity (scripted or not) it is applied on.

This does not work on "physgun_beam", use GM:DrawPhysgunBeam instead.

NOTE

As a downside of this implementation, only one RenderOverride may be applied at a time.

BUG

Drawing a viewmodel in this function will cause GM:PreDrawViewModel, WEAPON:PreDrawViewModel, WEAPON:ViewModelDrawn, GM:PostDrawViewModel, and WEAPON:PostDrawViewModel to be called twice.

Issue Tracker: #3292

BUG

This is called before PrePlayerDraw for players. If this function exists at all on a player, their worldmodel will always be rendered regardless of PrePlayerDraw's return.

Issue Tracker: #3299

Examples

Example

Set the entity the player is looking at to not draw if the player is its owner.

local function DontDrawMe( self )
	if ( self:GetOwner() == LocalPlayer() ) then
		return
	end
	
	self:DrawModel()
end

local pickent = LocalPlayer():GetEyeTrace().Entity

if ( IsValid( pickent ) ) then
	pickent.RenderOverride = DontDrawMe
end


Personal tools
Navigation