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

Logic relay: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 1: Line 1:
{{LanguageBar}}
{{LanguageBar}}
{{TabsBar|main=s2|base=logic relay}}
{{TabsBar|main=s2|base=logic relay}}
{{this is a|point entity|name=logic_relay|sprite=1}}  
{{This is a|point entity|name=logic_relay|sprite=1}}  
{{CD|CLogicRelay|file1=logicrelay.cpp}}
{{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.
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.
Line 7: Line 7:
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.
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.


{{mono|logic_relay}} combines the functionality of [[trigger_relay (Half-Life: Source)|trigger_relay]] and [[multi_manager (Half-Life: Source)|multi_manager]] from {{goldsrc|2}}. The older entities still exist in {{hls|2}}, but are deprecated.
{{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__
__NOTOC__
==Keyvalues==
== Keyvalues ==
{{KV Targetname}}
{{KV Targetname}}
{{KV EnableDisable}}
{{KV|Start Disabled|boolean|intn=StartDisabled|When disabled <code>OnTrigger</code> output won't fire}}


==Flags==
== Flags ==
{{fl|1|Only trigger once}}  
{{fl|1|Only trigger once}}  
{{fl|2|Allow fast retrigger}}  
{{fl|2|Allow fast retrigger}}  


==Inputs==
== Inputs ==
{{IO|Enable|Allows the relay to fire the OnTrigger outputs after being disabled.}}
{{I|Trigger|Trigger the relay, causing its OnTrigger output to fire if it is enabled.}}
{{IO|Disable|Prevents the relay from firing OnTrigger outputs in response to Trigger inputs.}}
{{I|Enable|Allows the relay to fire the OnTrigger outputs after being disabled.}}
{{IO|Trigger|Trigger the relay, causing its OnTrigger output to fire if it is enabled.}}
{{I|Disable|Prevents the relay from firing OnTrigger outputs in response to Trigger inputs.}}
{{IO|Toggle|Toggle the relay between enabled and disabled.}}
{{I|Toggle|Toggle the relay between enabled and disabled.}}
{{IO|CancelPending|Cancel any events fired by this relay that are currently pending in the I/O event queue {{bug|Using <code>CancelPending</code> on itself breaks the Service Queue which leads to a crash.}}}}
{{I|CancelPending|Cancel any events fired by this relay that are currently pending in the I/O event queue {{bug|Using <code>CancelPending</code> on itself breaks the Service Queue which leads to a crash.}}}}
{{IO|EnableRefire|Automatically fired on a relay after any delayed outputs finish firing, allowing it to fire again.|nofgd=1}}
{{I|EnableRefire|Automatically fired on a relay after any delayed outputs finish firing, allowing it to fire again.|nofgd=1}}
{{IO|TriggerWithParameter|param=string|only={{mapbase}}|Triggers the relay with a parameter, causing its OnTriggerParameter output to fire if it is enabled.}}
{{I|TriggerWithParameter|param=string|only={{mapbase}}|Triggers the relay with a parameter, causing its OnTriggerParameter output to fire if it is enabled.}}


==Outputs==
== Outputs ==
{{IO|OnSpawn|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|OnSpawn|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.}}}}
{{IO|OnTrigger|Fired when the relay is triggered. If the relay is set to only trigger once, it will delete itself after firing this output.}}
{{O|OnTrigger|Fired when the relay is triggered. If the relay is set to only trigger once, it will delete itself after firing this output.}}
{{IO|OnTriggerParameter|param=string|only={{mapbase}}|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.}}
{{O|OnTriggerParameter|param=string|only={{mapbase}}|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 ==
== See Also ==
* {{ent|logic_case}}
* {{ent|logic_case}}
[[Category:IO System]]
[[Category:IO System]]

Revision as of 17:51, 3 October 2024

English (en)Русский (ru)中文 (zh)Translate (Translate)
Logic relay.png

logic_relay is a point entity available in all Source Source games.

C++ Class hierarchy
CLogicRelay
CLogicalEntity
CServerOnlyEntity
CBaseEntity
C++ 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 GoldSrc. The older entities still exist in Half-Life: Source 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. parentname or target).
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 OnTrigger output won't fire

Flags

Only trigger once : [1]
Allow fast retrigger : [2]

Inputs

Trigger
Trigger the relay, causing its OnTrigger output to fire if it is enabled.
Enable
Allows the relay to fire the OnTrigger outputs after being disabled.
Disable
Prevents the relay from firing OnTrigger outputs in response to Trigger inputs.
Toggle
Toggle the relay between enabled and disabled.
CancelPending
Cancel any events fired by this relay that are currently pending in the I/O event queue
Icon-Bug.pngBug:Using CancelPending on itself breaks the Service Queue which leads to a crash.  [todo tested in ?]
EnableRefire  !FGD
Automatically fired on a relay after any delayed outputs finish firing, allowing it to fire again.
TriggerWithParameter <stringRedirectInput/string> (only in Mapbase)
Triggers the relay with a parameter, causing its OnTriggerParameter output to fire if it is enabled.

Outputs

OnSpawn
Fired when the relay is spawned. If the relay is set to only trigger once, it will delete itself after firing this output.
Note.pngNote:Every level load (including save loads!) triggers this output, unless "Fire once only" is checked.
OnTrigger
Fired when the relay is triggered. If the relay is set to only trigger once, it will delete itself after firing this output.
OnTriggerParameter <stringRedirectOutput/string> (only in Mapbase)
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