Func water analog
class hierarchy |
---|
CFuncMoveLinear defined in func_movelinear.cpp
|
func_water_analog
is a brush entity available in all Source games. It's a version of func_movelinear
slightly specialized for use as water.
Only two materials are known to render correctly across all systems, these are nature/water_movingplane
and nature/water_dx70
. Expensive water shaders are required to be unmoving, because they have to always be certain of what can/should be drawn in surface reflections. Cheap water does not reflect the world, therefore it will never encounter the visibility problem.
Note:The
SetPosition
input and Start Position keyvalue do not perform any bounds checking, so values less than 0 and greater than 1 can be used. Negative values will move in the opposite direction to the movement direction, and values greater than 1 will move it in multiples of the set Move Distance. Moving past the opened/closed position does not trigger the OnFullyOpen
and OnFullyClosed
outputs.Bug:There are bugs that may arise when parenting this entity to any of these:
func_movelinear
, momentary_door
, func_lookdoor
, func_water_analog
. A func_door
can be used as a workaround.- Code Fix: See here for a code fix.
- Confirm:Might be fixed in Portal 2? Parented movelinears are used extensively for this game's piston platforms.
Bug:In , parenting a
move_rope
or keyframe_rope
will cause the entities to disappear. Clarification required if the rope entities are deleted or are simply not rendered.Contents
Flags
FuncMoveLinear:
- 8: Not Solid
Bug:Physics objects cannot be constrained to this entity when this flag is enabled.
Keyvalues
Targetname:
- Name
(targetname)
<string> - The targetname that other entities refer to this entity by.
FuncMoveLinear:
- Move Direction (Pitch Yaw Roll) (movedir) <angle>
- The direction the entity will move in.
- Start Position (startposition) <float>
- Position of brush when spawned, where 0 is the starting position and 1 is starting position + (move direction * move distance).
- Speed (speed) <integer>
- The speed that the brush moves, in inches per second.
- Move Distance (movedistance) <float>
- The distance from the starting point that the brush should move, in inches.
- Block Damage (blockdamage) <float>
- The amount of damage to do to any entity that blocks the brushes, per frame.
Bug:Block damage doesn't function on players who passed through a
trigger_teleport
using noclip
, though it will have effect again if the the player goes through a trigger_teleport without noclip.- Sound played when the brush starts moving. (startsound) <sound>
- The sound to play when the brush starts moving.
- Sound played when the brush stops moving. (stopsound) <sound>
- The sound to play when the brush stops moving.
- Water Material
(WaterMaterial)
<material> (only in ) - The material to derive water information from. Determines $underwateroverlay that use
func_water_analog
.
- Bug:Don't work after reload. You still can repeat this effect with trigger and
env_screenoverlay
- Wave Height
(WaveHeight)
<string>
Internal keyvalues used by VRAD:
- Minimum Light Level
(_minlight)
<float> - Multiplier of minimum amount of light to hit this brush.
- Shadows
(vrad_brush_cast_shadows)
<choices> - Determines if this entity will cast lightmap shadows.
- 0: No shadows
- 1: Cast shadows
VisibleBrush:
- Render Mode
(rendermode)
<choices> - Set a non-standard rendering mode on this entity.
- Render FX
(renderfx)
<choices> - Various somewhat legacy alpha effects.
Bug:Alpha effects from 0 to 10 are unavailable due to the bug in code in Counter-Strike: Global Offensive
|
- Render FX / Transparency (0–255)
(renderamt)
<integer 0–255> - Transparency amount; requires a Render Mode other than Normal. 0 is invisible, 255 is fully visible.
- Render Color (R G B)
(rendercolor)
<color255> - Color tint.
- Texture Frame
(texframeindex)
<integer> !FGD - The frame number for any animated textures on this entity.
Shadow:
- Disable Shadows
(disableshadows)
<boolean> - Prevents the entity from creating cheap render-to-texture shadows, or lightmap shadows if the entity is a
prop_static
. Does not affect shadow mapping.
- Disable Receiving Shadows
(disablereceiveshadows)
<boolean> - Prevent the entity from receiving dynamic shadows on itself.
- Shadow Cast Distance
(shadowcastdist)
<integer> !FGD - Sets how far the entity casts dynamic shadows. 0 means default distance from the
shadow_control
entity. - Disable ShadowDepth
(disableshadowdepth)
<boolean> (in all games since ) - Used to disable rendering into shadow depth (for projected textures) for this entity.
- Disable flashlight
(disableflashlight)
<boolean> (in all games since ) - Used to disable projected texture lighting and shadows on this entity.
- Projected Texture Cache
(shadowdepthnocache)
<choices> (in all games since ) - Used to hint projected texture system whether it is sufficient to cache shadow volume of this entity or to force render it every frame instead.
|
SystemLevelChoice:
- Minimum / Maximum Effect Details Level
(mincpulevel / maxcpulevel)
<choices> (in all games since ) - Don't render for players with Effect Details levels that exceed the minimum or maximum.[Key names are related to
cpu_level
cvar used by Effect Details.]
|
- Minimum / Maximum Shader Details Level
(mingpulevel / maxgpulevel)
<choices> (in all games since ) - Don't render for players with Shader Details levels that exceed the minimum or maximum.[Key names are related to
gpu_level
cvar used by Shader Details.]
|
DXLevelChoice:
- Minimum / Maximum DX Level
(mindxlevel / maxdxlevel)
<choices> (removed since ) - The entity will not exist if the engine is running outside the given range of DirectX Versions.
Warning:If these are used, the object may break when the user switches their DirectX settings.
|
Inputs
FuncMoveLinear:
Open
- Move the brush to the end position (starting position + (move direction * move distance)).
Close
- Move the brush to the starting position.
SetPosition
<float>- Move the brush to a specific position, where 0 is the starting position and 1 is the starting position + (move direction * move distance).
SetSpeed
<float>- Set the speed and update immediately.
Visible Brush:
Alpha
<integer 0–255>- Sets the entity's transparency to a number from 0 (invisible) to 255 (fully visible). Requires the entity to have its Render Mode (rendermode) set to a number other than
0
.
AlternativeSorting
<boolean>- Swaps the rendering order of the entity. Used to attempt to fix sorting problems when rendering, for example an object rendering in front of translucent materials.
Color
<color255>- Sets an RGB color for the entity.
SetDamageFilter
<targetname>- Sets a filter for this entity for when it receives damage.
EnableDamageForces
- Allows the entity to be pushed by damage done to it (usually force amount correlates with the damage done).
DisableDamageForces
- Prevents the entity from being pushed by damage done to it.
EnableDraw
(in all games since )- Removes
EF_NODRAW
from the entity.
DisableDraw
(in all games since )- Applies
EF_NODRAW
to the entity. Note that this is different fromrendermode 10
.
EnableReceivingFlashlight
(in all games since )- Makes it so that the entity is lit by
env_projectedtexture
s.
DisableReceivingFlashlight
(in all games since )- Prevents the entity from being lit by
env_projectedtexture
s. The shadow made by the texture will still cast.
Reflection:
DisableDrawInFastReflection
(in all games since )- Turns off rendering of this entity in reflections when using
$reflectonlymarkedentities
in water material.
EnableDrawInFastReflection
(in all games since )- Turn on rendering of this entity in reflections when using
$reflectonlymarkedentities
in water material.
Shadow:
DisableShadow
- Turn dynamic shadows off for this entity. Identical to applying
EF_NOSHADOW
.
EnableShadow
- Turn dynamic shadows on for this entity.
DisableReceivingFlashlight
(in all games since )- This object will not receive light or shadows from projected textures.
Outputs
FuncMoveLinear:
OnFullyOpen
- Fired when the brush reaches the end position (starting position + (move direction * move distance)).
OnFullyClosed
- Fired when the brush reaches the starting position.