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

Func movelinear: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Fixed the horrendous block damage bug description)
No edit summary
 
(22 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar}}
| ru = Func_movelinear:ru
{{TabsBar}}
}}
{{CD|CFuncMoveLinear|file1=func_movelinear.cpp}}
{{This is a|brush entity|name=func_movelinear}} It moves linearly along a given distance, in a given direction. Unlike a {{ent|func_door}}, it can be positioned anywhere along its axis of movement, making moving things much simpler in most cases while also using less memory. For moving water, use {{ent|func_water_analog}} instead.


{{base brush|func_movelinear}}  
{{FuncMoveLinear notes}}
{{altnames|name1=momentary_door|misc=This was the original classname in [[GoldSrc]].}}


==Entity description==
==Flags==
It moves linearly along a given distance, in a given direction. Unlike a [[func_door]], it can be positioned anywhere along its axis of movement.
{{Fl FuncMoveLinear}}
 
==Keyvalues==
{{Brush rendering note}}


{{brushmodel}}
{{note|The SetPosition input and Start Position keyvalue do not perform any bounds checking, so values <0 and >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/Closed outputs.}}
{{warning|There are bugs with [[parenting]] this entity to another func_movelinear. func_door can be used as a work around. A fix is located under [[CFuncMoveLinear_ParentingFix]]}}
== Keyvalues ==
{{KV|Move Direction (Pitch Yaw Roll)|angle|The direction the brushes will move, when told to.}}
{{KV|Start Position|float|Position of brush when spawned, where 0 is the starting position and 1 is the starting position + (move direction * move distance).}}
{{KV|Speed|integer|The speed that the brush moves, in inches per second.}}
{{KV|Move Distance|float|The distance from the starting point that the brush should move, in inches.}}
{{KV|Block Damage|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]].}}
{{KV|Sound played when the brush starts moving.|sound|The sound to play when the brush starts moving.}}
{{KV|Sound played when the brush stops moving.|sound|The sound to play when the brush stops moving.}}
{{KV Targetname}}
{{KV Targetname}}
{{KV Parentname}}
{{KV FuncMoveLinear}}
{{KV Origin}}
{{KV RenderFields}}
 
== Flags ==
* 8 : Not Solid
 
{{warning|Physics objects cannot be constrained to a <code>func_movelinear</code> when it has this flag enabled.}}


== Inputs ==
==Inputs==
{{IO|Open|Move the brush to the end position (starting position + (move direction * move distance)).}}
{{I FuncMoveLinear}}
{{IO|Close|Move the brush to the starting position.}}
{{IO|SetPosition|Move the brush to a specific position, where 0 is the starting position and 1 is the starting position + (move direction * move distance).|param=string}}
{{IO|SetSpeed|Set the speed and update immediately.|param=float}}
{{I Targetname}}
{{I Parentname}}
{{I RenderFields}}


== Outputs ==
==Outputs==
{{IO|OnFullyOpen|Fired when the brush reaches the end position (starting position + (move direction * move distance)).}}
{{O FuncMoveLinear}}
{{IO|OnFullyClosed|Fired when the brush reaches the starting position.}}
{{O Targetname}}


==See also==
==See also==
* {{ent|func_water_analog}} - entity linked to to the same C++ class
* [http://twhl.info/vault.php?map=3920 Example map of a counter-weighted door].
* [http://twhl.info/vault.php?map=3920 Example map of a counter-weighted door].

Latest revision as of 09:28, 18 September 2024

English (en)Русский (ru)Translate (Translate)
edit
C++ Class hierarchy
CFuncMoveLinear
CBaseToggle
CBaseEntity
C++ func_movelinear.cpp

func_movelinear is a brush entity available in all Source Source games. It moves linearly along a given distance, in a given direction. Unlike a func_door, it can be positioned anywhere along its axis of movement, making moving things much simpler in most cases while also using less memory. For moving water, use func_water_analog instead.

Note.pngNote: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.
Icon-Bug.pngBug:There are bugs that may arise when parenting this entity to any of these: func_movelinear, func_lookdoor, func_water_analog. A func_door (or for func_water_analog, func_water) can be used as a workaround. (see here for a code fix)[ Code Fix]
Confirm:Might be fixed in Portal 2? Parented movelinears are used extensively for this game's piston platforms.
AltNames.pngAltNames: This entity is also tied to momentary_door. This was the original classname in GoldSrc.

Flags

FuncMoveLinear:

Not Solid : [8]
Icon-Bug.pngBug:Physics objects cannot be constrained to this entity when this flag is enabled.  [todo tested in ?]

Keyvalues

Note.pngNote:For Keyvalues and Inputs affecting brush rendering, see Brush entity/Rendering related keyvalues and inputs


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

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.
Icon-Bug.pngBug: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.  [todo tested in ?]
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.

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 <floatRedirectInput/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 <floatRedirectInput/float>
Set the speed and update immediately.
TeleportToTarget <targetnameRedirectInput/string> (only in Left 4 Dead 2)
Teleport to the origin of a given entity.
ResetPosition <floatRedirectInput/float> (only in Left 4 Dead 2)
Set a new start position, parameter relative to wherever the current one is.
Todo: Parameter might actually be optional?

Outputs

FuncMoveLinear:

OnFullyOpen
!activator = !caller = this entity
Fired when the brush reaches the end position (starting position + (move direction * move distance)).
OnFullyClosed
!activator = !caller = this entity
Fired when the brush reaches the starting position.

See also