func_tracktrain

From Valve Developer Community

Jump to: navigation, search

This is a brush entity available in all Source games.

Contents

Entity description

A brush entity that functions as moving platform that the player can ride. It follows a path of path_track entities.

Note:Unless the Fixed Orientation flag is set, build your train so that the front of the train is facing down the X axis. (This means that the front of the train is visible in the front view, etc..) When it spawns it will automatically rotate to face the next path_track on the path.

Individual keyvalues and flags

To do: Since the keyvalues and flags are currently templated to multiple entities, the individual data for this entity is written in this section until all the other entities having these templates has been researched (and found either similar or diverse).

  • orientationtype
<choices> How/If the train should change its angles as it travels.
Literal value Description Effect
0 Never (fixed orientation) The orientation of the train is fixed (instead of being relative to the direction of the track) permanently facing the direction it was spawned in (according to the direction of the first track). This overrides the Orientation Type settings of its path_track. Does not turn around when reversing direction.
1 Near path_tracks The train changes direction upon nearing a path_track. Does not turn around when reversing direction.
2 Linear blend Very weird orientation that is choppy in corners. (Please find a use for it.) Turns around when reversing direction.
3 Ease in/ease out Seemingly the same orientation as Linear blend. Turns around when reversing direction.
  • 16 : Fixed Orientation - The orientation of the train is fixed (instead of being relative to the direction of the track) permanently facing the direction it was created in (prior to spawn). Overrides both the "Change angles" keyvalue setting of this func_tracktrain, and the Orientation Type settings of its path_tracks.
  • 128 : HL1 Train - Set this flag if you want the player to be able to ride on or in a train while it is moving rapidly, or accelerating. (At least in Portal--I haven't tested this flag with a Half Life 2 map.) Not setting this flag will cause the player to be knocked off the train (and take blocking damage, if set) when he bumps into collision surfaces parented to it (sometimes.)


In code it is represented by class CFuncTrackTrain, defined in trains.cpp.

Keyvalues

  • Targetname:

Name <string>
The targetname other entities refer to this entity by.
  • Parentname:

Parent <targetname>
Specifies the targetname of this entity's movement parent. Entities with parents move with their parent.
  • Origin:

Origin <origin>
The position of this entity's center in the world. Rotating entities typically rotate around their origin.
  • RenderFields:

Render Mode <choices>
Set a non-standard rendering mode on this entity. See Render Modes for details.
FX Amount (0 - 255) <int>
Intensity of the selected render mode.
FX Color (R G B) <color255>
Color used by the selected render mode (if applicable).
Disable Receiving Shadows <bool>
Prevents the entity from receiving shadows. To do: RTT and/or shadow map?

RenderFXChoices:

Render FX <choices>
Several GoldSrc-era visibility modes which change the way the entity is rendered, typically by fading it in and out.
  • Global:

Global Entity Name <string>
Name by which this entity is linked to another entity in a different map. When the player transitions to a new map, entities in the new map with global names matching entities in the previous map will have the previous map's state copied over to them.
  • Shadow:

Disable shadows <bool>
Prevent the entity from creating cheap render-to-texture shadows. Does not affect shadow mapping.
  • target
<target_destination> The name of the first path_track in the train's path. The train will spawn at this path_track. It will also turn to face direction indicated by the 'Orientation Type' setting.
  • startspeed
<integer> The maximum speed that this train can move. Any speeds applied to this train, such as by path_tracks or SetSpeed inputs, will be clipped to this maximum value.
  • speed
<integer> The speed that the train will move at after it spawns, 0 = stopped.
  • velocitytype
<choices> Change Velocity.
Literal value Description
0 Instantaneously
1 Linear blend
2 Ease in/ease out
  • orientationtype
<choices> Change angles.
Literal value Description
0 Never (fixed orientation)
1 Near path_tracks
2 Linear blend
3 Ease in/ease out
  • wheels
<integer> Used for turning and stopping.
  • height
<integer> The height above the track that this train moves.
  • bank
<string> Bank Angle on Turns.
  • dmg
<integer> The amount of damage this train does to entities that block it.
  • _minlight
<string> The minimum level of ambient light that hits this brush.
  • MoveSound
<sound> A sound that is played (and looped) while the train is moving.
  • MovePingSound
<sound> A sound that is played more frequently as the train speeds up.
  • StartSound
<sound> A sound played when the train starts moving.
  • StopSound
<sound> A sound played when the train stops moving.
  • volume
<integer> Volume (10 = loudest).
  • MoveSoundMinPitch
<integer> The sound pitch value that the train will approach as it comes to a stop.
  • MoveSoundMaxPitch
<integer> The sound pitch value that the train will approach as it approaches its "max speed" (or 1000 inches/second if the 'Use max speed for pitch shifting move sound' flag is not set)
  • MoveSoundMinTime
<float> Minimum interval at which to play the move ping sound.
  • MoveSoundMaxTime
<float> Maximum interval at which to play the move ping sound.

Flags

  • 1 : No Pitch (X-rot)
  • 2 : No User Control
  • 8 : Passable
  • 16 : Fixed Orientation
  • 128 : HL1 Train
  • 256 : Use max speed for pitch shifting move sound
  • 512 : Is unblockable by player

Inputs

  • Targetname:

Kill
Removes this entity from the world.
KillHierarchy
Removes this entity and all its children from the world.
AddOutput <string>
Evaluates a keyvalue/output on this entity. It can be potentially very dangerous, use with care.
Format: <key> <value>
Format: <output name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fire, -1 means infinite>
FireUser1 to FireUser4
Fire the OnUser outputs; see User Inputs and Outputs.
  • Parentname:

SetParent <targetname>
Move with this entity. See Entity Hierarchy (parenting).
SetParentAttachment <string>
Attach to a named attachment on the current parent. The entity will teleport so that the position of its root bone matches that of the attachment.
SetParentAttachmentMaintainOffset <string>
As above, but without teleporting. The entity retains its position relative to the attachment at the time of the input being received.
ClearParent
Removes this entity from its current movement hierarchy.
  • Shadow:

EnableShadow
DisableShadow
Control the entity's cheap render-to-texture shadow. Does not affect shadow mapping.
  • SetSpeed <float>
Set the speed of the train, as a ratio of max speed [0, 1]
  • SetSpeedDir <float>
Set the speed of the train, as a ratio of max speed. Negative values reverse the direction [-1, 1]
  • SetSpeedReal <float>
Set the speed of the train. Must be a positive value from 0 to max speed.
  • Stop
Stop the train.
  • StartForward
Start the train moving forward.
  • StartBackward
Start the train moving backward.
  • Resume
Resume the train moving in the current direction after it was stopped via the 'Stop' or 'Toggle' input.
  • Reverse
Reverse the direction of the train.
  • Toggle
Toggle the train between start and stop.

Backward movement

Due to coding errors or engine limitations, the Reverse and StartBackward may not function correctly if the "New Train Speed" property in the involved path_track entities is set to 0. The train may fail to reverse, jamming in place or moving in the wrong direction. To solve this issue, some or all of the path_tracks must have their "New Train Speed" variable set to a nonzero value.

Outputs

  • Targetname:

OnUser1 to OnUser4
Fired in response to the FireUser inputs; see User Inputs and Outputs.
OnKilled (New with Left 4 Dead)
Fired when the entity is killed and removed from the game.
Personal tools