Func train: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
 Tip:This entity is not affected by the turning inaccuracy issues that
Tip:This entity is not affected by the turning inaccuracy issues that 
 Bug:It will always try to play sounds, regardless of whether they are actually specified. This can be set to
Bug:It will always try to play sounds, regardless of whether they are actually specified. This can be set to 
		
	
| mNo edit summary | No edit summary | ||
| Line 1: | Line 1: | ||
| {{ent not in fgd}} | {{ent not in fgd}} | ||
| {{ | {{base point|func_train}} It is a leftover from [[Quake]] that ping-pongs between the start and end of a series of path_corners. It was mostly replaced by {{ent|func_tracktrain}} in GoldSrc, but was still used for looping auto-scrolling backgrounds. In Source, the introduction of parenting has rendered this method obsolete. However, the entity is still functional. | ||
| {{tip|This entity is not affected by the turning inaccuracy issues that <code>func_tracktrain</code> is, making it a good alternative for fast-moving objects.}} | |||
| {{bug|It will always try to play sounds, regardless of whether they are actually specified. This can be set to <code>Default.Null</code> with a volume of 0 to play no sound.}} | |||
| ==Entity Description== | ==Entity Description== | ||
| ===FGD Code=== | ===FGD Code=== | ||
| <pre>@SolidClass base(Targetname, Origin, RenderFields) = func_train | <!--Editor's note: TexFrameIndex exists on every brush entity, so I'm not sure why it was specifically included here. It should be in KVBaseEntity if anything.--> | ||
| <pre> | |||
| @SolidClass base(Targetname, Origin, RenderFields) line(255 255 0, targetname, target) = func_train: "An old entity leftover from Quake. It follows a series of path_corner entities." | |||
| [ | [ | ||
| 	spawnflags(flags) = | 	spawnflags(flags) = | ||
| Line 10: | Line 15: | ||
| 		8 : "Non-solid" : 0 | 		8 : "Non-solid" : 0 | ||
| 	] | 	] | ||
| 	target(target_destination) : "Spawn path_corner" : : "The name of the first path_corner in the train's path. The train will spawn at this path_corner." | |||
|     speed(float) : "Speed" : "50" : "Speed at which the train moves." | |||
| 	noise1(sound) : "Movement Sound" : : "The sound to play when the train moves." | 	noise1(sound) : "Movement Sound" : "Default.Null" : "The sound to play when the train moves. This must be specified, but can be set to 'Default.Null' to play no sound." | ||
| 	noise2(sound) : "Stop Sound" : : "The sound to play when the train stops moving. | 	noise2(sound) : "Stop Sound" : "Default.Null" : "The sound to play when the train stops moving. This must be specified, but can be set to 'Default.Null' to play no sound." | ||
| 	volume(float) : "Sound volume (0-10)" : "10" : "Volume of the sounds emitted when moving and stopping." | |||
| 	volume(float) : "Sound volume  | 	dmg(float) : "Crush Damage" : "0" : "Amount of damage to deal to entities blocking the train." | ||
| 	dmg(float) : "Crush Damage" : "0. | |||
| 	// Inputs | |||
| 	input Toggle(void) : "Toggle movement" | 	input Toggle(void) : "Toggle movement" | ||
| 	input Start(void) : "Start movement" | 	input Start(void) : "Start movement" | ||
| 	input Stop(void) : "Stop movement" | 	input Stop(void) : "Stop movement" | ||
| ] | |||
| </pre> | |||
| ==Keyvalues== | ==Keyvalues== | ||
| {{KV BaseEntity|brush=1}} | |||
| {{KV RenderFields}} | |||
| {{KV|Spawn path_corner|intn=target|target_destination}} | |||
| : The name of the first path_corner in the train's path. The train will spawn at this path_corner. | |||
| :  | {{KV|Speed|intn=speed|float}} | ||
| : Speed at which the train moves. | |||
| :  | {{KV|Movement Sound|intn=noise1|string}} | ||
| : The sound to play when the train moves. | |||
| :  | {{KV|Stop Sound|intn=noise2|string}} | ||
| : The sound to play when the train stops moving. | |||
| :  | {{KV|Sound Volume (0-10)|intn=volume|float}} | ||
| : Volume of the sounds emitted when moving and stopping. | |||
| :  | {{KV|Crush Damage|intn=dmg|float}} | ||
| : Amount of damage to deal to entities blocking the train. | |||
| :  | |||
| ==Flags== | ==Flags== | ||
| *8 : Non-solid | *8 : Non-solid | ||
| ==Inputs== | ==Inputs== | ||
| {{I BaseEntity}} | |||
| {{I RenderFields}} | |||
| {{IO|Toggle}} | |||
| : Toggle movement  | : Toggle movement | ||
| {{IO|Start}} | |||
| : Start movement | : Start movement | ||
| {{IO|Stop}} | |||
| : Stop movement | : Stop movement | ||
| ==Outputs== | ==Outputs== | ||
| {{O BaseEntity}} | |||
| [[Category:Entities]] | [[Category:Entities]] | ||
Revision as of 12:38, 21 June 2020
Template:Base point It is a leftover from Quake that ping-pongs between the start and end of a series of path_corners. It was mostly replaced by func_tracktrain in GoldSrc, but was still used for looping auto-scrolling backgrounds. In Source, the introduction of parenting has rendered this method obsolete. However, the entity is still functional.
 Tip:This entity is not affected by the turning inaccuracy issues that
Tip:This entity is not affected by the turning inaccuracy issues that func_tracktrain is, making it a good alternative for fast-moving objects. Bug:It will always try to play sounds, regardless of whether they are actually specified. This can be set to
Bug:It will always try to play sounds, regardless of whether they are actually specified. This can be set to Default.Null with a volume of 0 to play no sound.  [todo tested in ?]Entity Description
FGD Code
@SolidClass base(Targetname, Origin, RenderFields) line(255 255 0, targetname, target) = func_train: "An old entity leftover from Quake. It follows a series of path_corner entities."
[
	spawnflags(flags) =
	[
		8 : "Non-solid" : 0
	]
	target(target_destination) : "Spawn path_corner" : : "The name of the first path_corner in the train's path. The train will spawn at this path_corner."
    speed(float) : "Speed" : "50" : "Speed at which the train moves."
	noise1(sound) : "Movement Sound" : "Default.Null" : "The sound to play when the train moves. This must be specified, but can be set to 'Default.Null' to play no sound."
	noise2(sound) : "Stop Sound" : "Default.Null" : "The sound to play when the train stops moving. This must be specified, but can be set to 'Default.Null' to play no sound."
	volume(float) : "Sound volume (0-10)" : "10" : "Volume of the sounds emitted when moving and stopping."
	dmg(float) : "Crush Damage" : "0" : "Amount of damage to deal to entities blocking the train."
	// Inputs
	input Toggle(void) : "Toggle movement"
	input Start(void) : "Start movement"
	input Stop(void) : "Stop movement"
]
Keyvalues
RenderFields:
- Render Mode (rendermode) <byte choices>
- Set a non-standard rendering mode on this entity.
- Render Modes 
- Render FX (renderfx) <byte choices>
- Various somewhat legacy alpha effects. See render effects.
- Render Amount / Transparency (renderamt) <byte>
- 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.
- Spawn path_corner (target) <targetname>
- The name of the first path_corner in the train's path. The train will spawn at this path_corner.
- Speed (speed) <float>
- Speed at which the train moves.
- Movement Sound (noise1) <string>
- The sound to play when the train moves.
- Stop Sound (noise2) <string>
- The sound to play when the train stops moving.
- Sound Volume (0-10) (volume) <float>
- Volume of the sounds emitted when moving and stopping.
- Crush Damage (dmg) <float>
- Amount of damage to deal to entities blocking the train.
Flags
- 8 : Non-solid
Inputs
RenderFields:
- 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 rendermodeset to a number other than0.
- Color <color255>
- Sets an RGB color for the entity.
- Toggle
- Toggle movement
- Start
- Start movement
- Stop
- Stop movement

