Logic relay: Difference between revisions
| m (clean) | No edit summary | ||
| (75 intermediate revisions by 36 users not shown) | |||
| Line 1: | Line 1: | ||
| {{ | {{LanguageBar}} | ||
| == | {{TabsBar|main=s2|base=logic relay}} | ||
| {{This is a|logical entity|name=logic_relay|sprite=1}}  | |||
| {{CD|CLogicRelay|file1=logicrelay.cpp}} | |||
| It is a Output forwarder, which can be used to fire many [[Inputs and Outputs#Outputs|output]]s at once from just one input, or, by being disabled, to break an I/O chain. It can also be very helpful for organization and keeping you from having to edit MANY instances of the same outputs, as opposed to just one. | |||
| After a <code>logic_relay</code> is triggered, it cannot be triggered again until all of its outputs are fired. This is useful for when a relay has a sequence of delayed outputs that shouldn't be repeated until the sequence is finished. This behavior can be disabled with the "Allow fast retrigger" spawnflag. | |||
| ==Keyvalues== | {{ent|logic_relay}} combines the functionality of {{ent|trigger_relay|game=Half-Life: Source}} and {{ent|multi_manager|game=Half-Life: Source}} from {{goldsrc|2}}. The older entities still exist in {{hls|2}}, but are deprecated. | ||
| __NOTOC__ | |||
| == Keyvalues == | |||
| {{KV Targetname}} | |||
| {{KV|Start Disabled|boolean|intn=StartDisabled|When disabled <code>OnTrigger</code> output won't fire}} | |||
| == Flags == | |||
| {{fl|1|Only trigger once}}  | |||
| {{fl|2|Allow fast retrigger}}   | |||
| == Inputs == | |||
| {{I|Trigger|param=void|Trigger the relay, causing its OnTrigger output to fire if it is enabled.}} | |||
| {{I|Enable|param=void|Allows the relay to fire the OnTrigger outputs after being disabled.}} | |||
| {{I|Disable|param=void|Prevents the relay from firing OnTrigger outputs in response to Trigger inputs.}} | |||
| {{I|Toggle|param=void|Toggle the relay between enabled and disabled.}} | |||
| {{I|CancelPending|param=void|Cancel any events fired by this relay that are currently pending in the I/O event queue  | |||
| :{{bug|hidetested=1|If the caller of this input is the logic_relay itself it will break the I/O event queue which leads to a crash.}}}} | |||
| {{I|EnableRefire|param=void|Automatically fired on a relay after any delayed outputs finish firing, allowing it to fire again.|nofgd=1}} | |||
| {{I|TriggerWithParameter|param=variant|only={{mapbase}}|Triggers the relay with a parameter, causing its OnTriggerParameter output to fire if it is enabled.}} | |||
| == | == Outputs == | ||
| {{O|OnSpawn|param=void|ac-is-this=1|Fired when the relay is spawned. If the relay is set to only trigger once, it will delete itself after firing this output.{{note|Every level load (including save loads!) triggers this output, unless "Fire once only" is checked.}}}} | |||
| {{O|OnTrigger|param=void|activator = activator of Trigger input|Fired when the relay is triggered. If the relay is set to only trigger once, it will delete itself after firing this output.}} | |||
| {{O|OnTriggerParameter|param=variant|only={{mapbase}}|activator = activator of TriggerWithParameter input|Fired when the relay is triggered with a parameter. If the relay is set to only trigger once, it will delete itself after firing this output.}} | |||
| == See Also == | |||
| * {{ent|logic_case}} | |||
| *  | |||
| [[Category:IO System]] | |||
| [[Category: | |||
Latest revision as of 13:24, 7 May 2025

logic_relay  is a   logical entity  available in all  Source games.
 Source games. 
|  Class hierarchy | 
|---|
| CLogicRelay | 
|  logicrelay.cpp | 
It is a Output forwarder, which can be used to fire many outputs at once from just one input, or, by being disabled, to break an I/O chain. It can also be very helpful for organization and keeping you from having to edit MANY instances of the same outputs, as opposed to just one.
After a logic_relay is triggered, it cannot be triggered again until all of its outputs are fired. This is useful for when a relay has a sequence of delayed outputs that shouldn't be repeated until the sequence is finished. This behavior can be disabled with the "Allow fast retrigger" spawnflag.
logic_relay combines the functionality of trigger_relay and multi_manager from  GoldSrc. The older entities still exist in
 GoldSrc. The older entities still exist in  Half-Life: Source, but are deprecated.
 Half-Life: Source, but are deprecated.
Keyvalues
- Name (targetname) <string>[ Edit ]
- The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentnameortarget).
 Also displayed in Hammer's 2D views and Entity Report.See also: Generic Keyvalues, Inputs and Outputs available to all entities
- Start Disabled (StartDisabled) <boolean>
- When disabled OnTriggeroutput won't fire
Flags
- Only trigger once : [1]
- Allow fast retrigger : [2]
Inputs
- Trigger <void>
- Trigger the relay, causing its OnTrigger output to fire if it is enabled.
- Enable <void>
- Allows the relay to fire the OnTrigger outputs after being disabled.
- Disable <void>
- Prevents the relay from firing OnTrigger outputs in response to Trigger inputs.
- Toggle <void>
- Toggle the relay between enabled and disabled.
- CancelPending <void>
- Cancel any events fired by this relay that are currently pending in the I/O event queue
 Bug:If the caller of this input is the logic_relay itself it will break the I/O event queue which leads to a crash. Bug:If the caller of this input is the logic_relay itself it will break the I/O event queue which leads to a crash.
- EnableRefire <void> !FGD
- Automatically fired on a relay after any delayed outputs finish firing, allowing it to fire again.
- TriggerWithParameter  <variant> (only in  ) )
- Triggers the relay with a parameter, causing its OnTriggerParameter output to fire if it is enabled.
Outputs
- OnSpawn <void>
- !activator = !caller = this entity
 Fired when the relay is spawned. If the relay is set to only trigger once, it will delete itself after firing this output. Note:Every level load (including save loads!) triggers this output, unless "Fire once only" is checked. Note:Every level load (including save loads!) triggers this output, unless "Fire once only" is checked.
- OnTrigger <void>
- !activator = activator of Trigger input
 !caller = this entity
 Fired when the relay is triggered. If the relay is set to only trigger once, it will delete itself after firing this output.
- OnTriggerParameter  <variant> (only in  ) )
- !activator = activator of TriggerWithParameter input
 !caller = this entity
 Fired when the relay is triggered with a parameter. If the relay is set to only trigger once, it will delete itself after firing this output.


























