CBaseEntity Functions: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:
As its name suggests, all entity types derive from it.
As its name suggests, all entity types derive from it.


'''NOTE:''' This article is under-construction. Please feel free to add to it, or edit it.
'''NOTE:''' This article is under-construction. As with any wiki, please feel free to add to it, or edit it. My goal here is to document every single function in the 2013 sdk.


== GetAbsOrigin() ==
== GetAbsOrigin() ==

Revision as of 02:25, 6 July 2014

CBaseEntity derives from IServerEntity.

As its name suggests, all entity types derive from it.

NOTE: This article is under-construction. As with any wiki, please feel free to add to it, or edit it. My goal here is to document every single function in the 2013 sdk.

GetAbsOrigin()

GetAbsOrigin() returns the absolute (i.e. world-relative) origin of an entity as a vector. Its sister function SetAbsOrigin() changes it.

The origin is actually stored in local space (i.e parent-relative), meaning that the Abs functions perform extra calculations to get their return value. Use the more direct GetLocalOrigin() and SetLocalOrigin() if possible; they work directly with the stored value (m_vecOrigin).

Note.pngNote:In fact, GetAbsOrigin() seems to recalculate its return value only if it was changed since the last time it was used, otherwise it just returns cached value stored in a member variable.

Example Usage:

void CMyEntity::Think()
{
	BaseClass::Think(); // Always do this if you override Think()

	Msg( "My World Position Is %f %f %f.\n",GetAbsOrigin().x,GetAbsOrigin().y,GetAbsOrigin().z);
}

GetAbsAngles()

GetAbsAngles() returns the absolute (i.e. world-relative) angles of an entity as a QAngle. Its sister function SetAbsAngles() changes it.

Example Usage:

void CMyEntity::Think()
{
	BaseClass::Think(); // Always do this if you override Think()

	Msg( "My World Angle Is %f %f %f.\n",GetAbsAngles().x,GetAbsAngles().y,GetAbsAngles().z);
}

DecalTrace()

Parameters:

  • trace_t *pTrace is the traceline along which the decal will be applied.
  • char const *decalName is the name of the decal that is to be applied.

This function is usually not called directly, but through UTIL_DecalTrace(). Example Usage:

trace_t	tr;
UTIL_TraceLine( GetAbsOrigin(), GetAbsOrigin() - Vector( 0, 0, 128 ), MASK_SOLID_BRUSHONLY, this, COLLISION_GROUP_NONE, &tr );

if(tr.fraction == 1)
{
   CBaseEntity *pEntity = tr.m_pEnt;
   pEntity->DecalTrace(&tr,"Scorch");
}