Func null: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Actually, you don't want to rename it to info_null, because then it counts as an edict for a split second on map load.)
mNo edit summary
Line 12: Line 12:
{{KV|Shadows|intn=vrad_brush_cast_shadows|boolean|Determines if this entity will cast [[lightmap]] shadows.
{{KV|Shadows|intn=vrad_brush_cast_shadows|boolean|Determines if this entity will cast [[lightmap]] shadows.
|since={{src07}} }}
|since={{src07}} }}
== FGD entry ==
If using func_null outside of Mapbase, add this FGD entry to the end of [[base.fgd]]:
<source lang=c>
@SolidClass base(info_null, Origin) = func_null :
"A nonexistent entity that gets ignored by the game (will cause an error in the console, but this can be ignored."
+ "Useful for invisible texlights, such as those appearing to be cast by props or which accentuate the light coming in through a window."
[
vrad_brush_cast_shadows(choices) : "Cast Baked Shadows" : 0 : "Set this if this brush casts lightmap shadows." =
[
0 : "No"
1 : "Yes"
]
]
</source>

Revision as of 18:08, 29 June 2024

C++ Class hierarchy
CNullEntity
CBaseEntity

func_null is a brush entity available in Mapbase Mapbase. It is a brush version of of info_null. This can be used for creating texlights that don't have a visible brush in-game, such as for prop-based lights or accentuating lighting coming in from a window.

Because this entity isn't removed on compile, it still counts toward the edict limit for a split second until removed on map spawn.

Cpp.pngCode:This entity uses the same C++ class as info_null. As such, the same behavior can be achieved in any game simply by manually setting a brush entity's classname to info_null.
Icon-Bug.pngBug:Hammer will strip brushes from entities which are defined in the FGD as point entities. It also does not allow a point entity and brush entity to share the same classname, as it will only use the most recently defined version.  [todo tested in ?]
Alternatively, add an func_null FGD entry to base.fgd; it will spit out an error in the console when loading the map, but will otherwise be ignored by the game, and will never count as an edict, unlike info_null.

Keyvalues

Origin:

Origin (X Y Z) (origin) <origin>
The position of this entity's center in the world. Rotating entities typically rotate around their origin.
Name (targetname) <string>[ Edit ]
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also:  Generic Keyvalues, Inputs and Outputs available to all entities

Internal keyvalues used by VRAD:

Shadows (vrad_brush_cast_shadows) <boolean> (in all games since Source 2007)
Determines if this entity will cast lightmap shadows.

FGD entry

If using func_null outside of Mapbase, add this FGD entry to the end of base.fgd:

@SolidClass base(info_null, Origin) = func_null : 
	"A nonexistent entity that gets ignored by the game (will cause an error in the console, but this can be ignored." 
	+ "Useful for invisible texlights, such as those appearing to be cast by props or which accentuate the light coming in through a window."
[
	vrad_brush_cast_shadows(choices) : "Cast Baked Shadows" : 0 : "Set this if this brush casts lightmap shadows." =
	[
		0 : "No"
		1 : "Yes"
	]
]