Logic timer: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(-added class hierarchy, concise page, added AddThinkToEnt to see also)
(Transferred infotable from logic_auto)
Line 1: Line 1:
{{lang|Logic timer}}
{{lang|Logic timer}}
{{infotable|logic_timer|img=[[File:Logic timer.png]]|type=e0|engine=2|in=0}} fires an [[output]] at regular or random intervals. It can optionally alternate between a "high" and a "low" output.
{{CD|CTimerEntity|file1=logicentities.cpp}}
{{CD|CTimerEntity|file1=logicentities.cpp}}
{{base point|logic_timer|sprite=1}} It fires an [[output]] at regular or random intervals. It can optionally alternate between a "high" and a "low" output.
{{note|Enabling the entity resets its timer.}}
{{note|Enabling the entity resets its timer.}}
{{tip|Use with [[logic_case]] for extremely random events.}}
{{tip|Use with [[logic_case]] for extremely random events.}}

Revision as of 22:06, 7 November 2022

English (en)Русский (ru)中文 (zh)Translate (Translate)
logic_timer
Logic timer.png
TypePoint entity
EngineSource Source
AvailabilityIn all games
 

fires an output at regular or random intervals. It can optionally alternate between a "high" and a "low" output.

C++ Class hierarchy
CTimerEntity
CLogicalEntity
CServerOnlyEntity
CBaseEntity
C++ logicentities.cpp
Note.pngNote:Enabling the entity resets its timer.
Tip.pngTip:Use with logic_case for extremely random events.
Warning.pngWarning:This entity uses a high amount of server bandwidth, especially with low refire intervals. Use a I/O loop with an entity such as logic_relay for those cases.
How?: How would using io loop make a difference ?

Keyvalues

Use Random Time (UseRandomTime) <boolean>
Makes the entity fire at random intervals. Range of values is restricted by the next two KVs.
Minimum Random Interval (LowerRandomBound) <float>
If "Use Random Time" is set, this is the minimum time between timer fires. The time will be a random number between this and the "Maximum Random Interval".
Maximum Random Interval (UpperRandomBound) <float>
If "Use Random Time" is set, this is the maximum time between timer fires. The time will be a random number between the "Minimum Random Interval" and this.
Refire Interval (RefireTime) <float>
If "Use Random Time" isn't set, this is the time between timer fires, in seconds. Make sure output delay times are less than this value.


Start Disabled (StartDisabled) <boolean>
Stay dormant until activated (with theEnableinput).
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

Flags

Oscillator : [1]
(alternates between OnTimerHigh and OnTimerLow outputs)

Inputs

RefireTime <floatRedirectInput/float>
Set a new Refire Interval.
ResetTimer
Reset the timer. It will fire after the Refire Interval expires.
FireTimer
Force the timer to fire immediately.
Enable
Enable the timer.
Disable
Disable the timer.
Toggle
Toggle the timer on/off.
LowerRandomBound <floatRedirectInput/float>
Set a new Minimum Random Interval.
UpperRandomBound <floatRedirectInput/float>
Set a new Maximum Random Interval.
AddToTimer <floatRedirectInput/float>
Add time to the timer if it is currently enabled. Does not change the Refire Interval.
SubtractFromTimer <floatRedirectInput/float>
Subtract time from the timer if it is currently enabled. Does not change the Refire Interval.

EnableDisable:

Enable / Disable
Enable/disable this entity from performing its task. It might also disappear from view.

Outputs

OnTimer
Fired when the timer expires.
OnTimerHigh
Fired every other time for an oscillating timer.
OnTimerLow
Fired every other time for an oscillating timer.

See Also