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
(Undo revision 490178 by CHILLMODEA (talk) intentional)
Tag: Undo
No edit summary
 
Line 6: Line 6:
{{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.
{{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}}
{{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:
{{water entity notes}}
* {{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.}}
{{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.}}



Latest revision as of 09:25, 11 December 2025

English (en)Translate (Translate)
Edit Tabs
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.

Water entity notes (edit):

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 Left 4 Dead series otherwise it doesn't work properly and acts as non-solid brush.
Non-Valve games (Black Mesa)
Icon-Bug.pngBug:In Black Mesa Black Mesa, if this entity uses multiple brushes, VPhysics objects interact incorrectly with this entity. It looks like they are using BBox of this entity to calculate physics, instead of using brushes. This issue can be found in Interloper chapter. Separate water into several separate entities to avoid this bug.
Examples.
Note how the hat is "flying in air".
Note how the hat is "flying in air".
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>
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