This article's documentation is for anything that uses the Source engine. Click here for more information.

Func water (Source): Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
 
(40 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:func_water}}
{{LanguageBar}}
{{base_brush}}
{{TabsBar}}
{{CD|CBaseDoor|file1=doors.cpp}}
{{Ent not in fgd}}
{{obsolete|entity=1|replacement=[[func_water_analog]]. Non-moving water brushes should be part of [[worldspawn]]}}
{{This is a|semi-internal=1|brush entity|name=func_water}} An entity-based water brush, being assigned [[CONTENTS_WATER|water contents]] by [[VBSP]]. A legacy entity from the {{goldsrc|4}} engine, deprecated by {{ent|func_water_analog}}. It is still used in some {{hls|2}} maps.
{{toc-right}}
{{important|Does not work with the {{ent|water (shader)|alt=Water}} shader.<br>{{ent|Refract}} can be used as a workaround for dynamic refraction with cubemapped reflections, although Valve does not provide any materials which do this.<br>Existing materials which are compatible include:
* {{file|nature/water_movingplane|vmt}} ([[LightmappedGeneric]])
* {{file|nature/water_dx70|vmt}} ([[LightmappedGeneric]])
* {{file|nature/hazard_liquid|vmt}} ([[LightmappedGeneric]]) {{only|{{portal}}}}
* {{file|liquids/!greenslime|vmt}} ([[UnlitTwoTexture]]) {{only|{{hls}} {{hldms}} {{jbep3}} }}
{{Confirm|Does the Water shader work if using cubemap reflections and refractions, instead of the real-time versions? This would still be beneficial for the ability to have two normal maps scrolling in different directions.}} }}
{{bug|Water must be part of the world in {{l4ds}} otherwise it doesn't work properly and acts as non-solid brush.|hidetested=1}}
{{codenote|Both <code>func_water</code> and {{ent|func_door}} are linked to [[CBaseDoor]] C++ class. The game code checks the {{mono|classname}} KV to distinguish between them, applying specific behaviors if the classname is "func_water". As such, using [[AddOutput]] to change the classname of a func_water may have unexpected effects.}}


==Entity Description==
== Keyvalues ==
{{KV Targetname}}
{{OtherKIO|func_door|All}}


Legacy entity from the [[GoldSrc]] engine. No longer works in Source. It appears Valve did try to port the entity, however.
== FGD Code ==
While {{mono|func_water}} exists in {{codelink|base.fgd}}, it is commented out. It can either be uncommented, or this simpler FGD entry can be added anywhere after the {{ent|func_door}} entry.
<syntaxhighlight lang=cpp>
@SolidClass base(func_door) = func_water : "A water brush entity that moves linearly along a given distance, in a given direction." []
</syntaxhighlight>


==Keyvalues==
== See also ==
 
* {{ent|func_water_analog}}
*; Move Direction (Pitch Yaw Roll)
: <code> movedir <[[angle]]></code>
: The direction the water will move when it is told to 'Open'. Default value is "0 0 0".
 
*; Wave Height
: <code> WaveHeight <[[string]]></code>
: default value is "3.0"
 
*{{KV Door}}
 
==Flags==
* 1 : "Starts Open" : 0
* 256:"Use Only" : 0
 
==Inputs==
 
*{{I Door}}
 
==Outputs==
 
*{{O Door}}

Latest revision as of 07:55, 9 May 2025

English (en)Translate (Translate)
edit
C++ Class hierarchy
CBaseDoor
CBaseToggle
CBaseEntity
C++ doors.cpp
Icon-NotInFGD.png
This entity is not in the FGD by default.
See below for instructions on making it available.
Obsolete-notext.png
This entity is obsolete. Its use is discouraged. It may only exist/function in older engine branches.
It has since been deprecated by: func_water_analog. Non-moving water brushes should be part of worldspawn.

func_water is a semi-internal brush entity available in all Source Source games. An entity-based water brush, being assigned water contents by VBSP. A legacy entity from the GoldSrc GoldSrc engine, deprecated by func_water_analog. It is still used in some Half-Life: Source Half-Life: Source maps.

Icon-Important.pngImportant:Does not work with the Water shader.
Refract can be used as a workaround for dynamic refraction with cubemapped reflections, although Valve does not provide any materials which do this.
Existing materials which are compatible include:
Confirm:Does the Water shader work if using cubemap reflections and refractions, instead of the real-time versions? This would still be beneficial for the ability to have two normal maps scrolling in different directions.
Icon-Bug.pngBug:Water must be part of the world in Left 4 Dead seriesLeft 4 Dead series otherwise it doesn't work properly and acts as non-solid brush.
Cpp.pngCode:Both func_water and func_door are linked to CBaseDoor C++ class. The game code checks the classname KV to distinguish between them, applying specific behaviors if the classname is "func_water". As such, using AddOutput to change the classname of a func_water may have unexpected effects.

Keyvalues

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

Note.pngNote:All Keyvalues / Inputs / Outputs are same as func_door.

FGD Code

While func_water exists in base.fgd, it is commented out. It can either be uncommented, or this simpler FGD entry can be added anywhere after the func_door entry.

@SolidClass base(func_door) = func_water : "A water brush entity that moves linearly along a given distance, in a given direction." []

See also