
// light_shadow
// It creates toggleable shadow for func_door, func_breakable, ...
@PointClass color(255 255 0) = light_shadow : "Dynamic shadow control"
[
	// Control the shadow of this solid entity.
	// The solid entity must have 'Opaque' set in its lightflags.
	target(target_destination) : "Target solid entity"
	// Switch the light_shadow on/off will cause shadow to disappear/appear.
	targetname(target_source) : "Name"
	style(choices) : "Appearance (no name allowed)" : "" =
	[
		"" : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker A"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12 : "Slow strobe"
	]
	pattern(string) : "Custom Appearance"
	zhlt_stylecoring(string) : "Coring of this style(0.1default)"
	convertto(choices) : "Classname in game" : "light" =
	[
		"light" : "light"
		"light_spot" : "light_spot"
	]
	spawnflags(flags) =
	[
		1 : "Initially dark" : 0
		2048 : "Not in Deathmatch" : 0
	]
]

// info_overview_point
// It makes all entities visible from this place in overview mode (dev_overview 1).
@PointClass color(255 0 0) = info_overview_point : "Disable VIS here for overview"
[
]

// info_sunlight
// It generates a fake light_environment which defines sv_skycolor and sv_skyvec in game.
// If you are using multiple light_environments, you will probably need this entity.
@PointClass color(255 255 0) = info_sunlight : "light_environment info"
[
	target(target_destination) : "Target"
	angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
	pitch(integer) : "Pitch" : -90
	_light(color255) : "Brightness" : "255 255 128 100"
]

// func_group
// It is not a real entity.
// Brushes in this entity is same to world brushes, except:
// (1) You can prevent them from blocking players.
// (2) If faces in func_group coincide with world faces, it will always cover world faces.
@SolidClass = func_group : "Solid brushes"
[
	zhlt_noclip(choices) :"Passable" : "" =
	[
		"": "No"
		1: "Yes"
	]
]

// info_texlights
// It defines texture lights.
// Add any texture name as a key and their brightness as the value.
// Don't need to set colors because hlrad knows texture colors.
@PointClass color(255 0 0) = info_texlights : "Texture name : Brightness"
[
]

// info_smoothvalue
// It specifies smoothing threshold angle for each texture.
@PointClass color(255 0 0) = info_smoothvalue : "Texture name : Threshold of smooth angle"
[
]

// info_translucent
// It defines translucent effect for textures.
// 0.0 = normal (only receive light from front), 1.0 = receive 100% light from back and 0% from front.
// Can be used to simulate materials like fabric, coarse glass, plastic.
// The thickness of brush with translucent textures can not exceed 2 units.
@PointClass color(255 0 0) = info_translucent : "Texture name : translucent scale from 0.0 to 1.0"
[
]

// light_surface
// It defines texture lights.
@PointClass color(255 255 0) = light_surface : "Texture light"
[
	_tex(string) : "Texture name" : "" // texture name (not case sensitive)
	_frange(string) : " Filter max distance" : "" // max distance from face center to this entity
	_fdist(string) : " Filter max dist to plane" : "" // max distance from face plane to this entity
	_fclass(string) : " Filter entity classname" : ""
	_fname(string) : " Filter entity name" : ""
	_light(string) : "Texture brightness" : "80" // value >= 80 will ensure full brightness. Colored brightness is not recommended.
	//  Note:
	//    If you want to set cone angle or any other value to 0,
	//      '0.0' should be used instead of '0'.
	//    This is a bug in Hammer.
	_cone(string) : " Inner(bright) angle(90default)" : "" // should be 90 for conventional texlights
	_cone2(string) : " Outer(fading) angle(90default)" : "" // should be 90 for conventional texlights
	_scale(string) : " Adjust emit scale(1.0default)" : "" // 0.0 = no emitting
	_chop(string) : " Grid size of sampling" : "" // in inch; not affected by texture scale
	_fast(choices) : " Fast" : "" =
	[
		"": "No"
		1: "Yes"
	]
	// 'light_surface' will not be recognized by the game if we don't change its classname.
	convertto(choices) : "Classname in game" : "light" =
	[
		"light" : "light"
		"light_spot" : "light_spot"
	]
	targetname(target_source) : " Name" : "" // create a new light style with this name
	style(Choices) : " Appearance (no name allowed)" : "" = // use predefined light styles which have predefined patterns
	[
		"" : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker A"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12 : "Slow strobe"
	]
	//  Light of the same style share the same pattern.
	pattern(string) : " Custom Appearance" : "" // pattern defined by a sequence of letters
	//  If light sent to a face is darker than the coring value, it will be considered indifferent with total darkness.
	//    Large coring value: smaller bsp size.
	//    Small coring: better look, but sometimes 'too many styles' error.
	//  This feature only works on dynamic light styles, i.e. light sent from light entities with targetname or style.
	//  Light of the same style share the same coring value.
	zhlt_stylecoring(string) : " Coring of this style(0.1default)" : "" // change coring value for this light style
	spawnflags(flags) =
	[
		1 : "Initially dark" : 0
		2048 : "Not in Deathmatch" : 0
	]
]
