SetSolidFlags()

From Valve Developer Community
Jump to: navigation, search

SetSolidFlags() implements various flags that affect the precise nature of an entity's solidity. It is used in conjunction with SetSolid().

Tip.pngTip:An entity with SetSolidFlags(FSOLID_NOT_SOLID | FSOLID_TRIGGER) generates Touch() calls without colliding with other objects. This is the behaviour of triggers.

Other functions

void AddSolidFlags()
void RemoveSolidFlags()
Adds or removes flags without affecting those already active.
bool IsSolidFlagSet()
Tests whether a particular flag is set.
int GetSolidFlags()
Get the complete SolidFlags bitstring.

Flags

FSOLID_CUSTOMRAYTEST
Ignore solid type + always call into the entity for ray tests. Blank image.pngTodo:

FSOLID_CUSTOMBOXTEST
Ignore solid type + always call into the entity for swept box tests. Blank image.pngTodo:

FSOLID_NOT_SOLID
Entity becomes non-solid (without losing its underlying SolidType). prop_dynamic entities set to SOLID_NONE are upgraded to SOLID_OBB and FSOLID_NOT_SOLID when Spawned so that the bounding box will properly rotate.
FSOLID_TRIGGER
Touch() is triggered even if collisions are disabled.
FSOLID_NOT_STANDABLE
Players can't stand on this.
Blank image.pngTodo: What happens when they try to?
FSOLID_VOLUME_CONTENTS
Contains a volumetric substance like water.
FSOLID_FORCE_WORLD_ALIGNED
Forces the collision rep to be world-aligned even if it's SOLID_BSP or SOLID_VPHYSICS. Blank image.pngTodo:

FSOLID_USE_TRIGGER_BOUNDS
Uses a special trigger bounds separate from the normal OBB. Blank image.pngTodo:

FSOLID_ROOT_PARENT_ALIGNED
Collisions are defined in the root parent's local coordinate space.
FSOLID_TRIGGER_TOUCH_DEBRIS
This FSOLID_TRIGGER entity will also Touch() debris objects.

See also