Difference between revisions of "SHIP:Property:timer:enabled"

From Serious Documentation
Jump to: navigation, search
 
(11 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
=== Node: {{Node|timer}} ===
 
=== Node: {{Node|timer}} ===
{| class="wikitable" style="margin: 1em auto 1em auto;"
+
{{PropTableStart|}}
! scope="col" | Property
 
! scope="col" | Data Type
 
! scope="col" | Description
 
 
|-
 
|-
 
|<onlyinclude>{{Prop|timer|enabled}}||{{DataType|Boolean}}|| If {{Reserved|true}} (default if unset) this {{Node|timer}} is enabled.</onlyinclude>
 
|<onlyinclude>{{Prop|timer|enabled}}||{{DataType|Boolean}}|| If {{Reserved|true}} (default if unset) this {{Node|timer}} is enabled.</onlyinclude>
 
|}
 
|}
The {{Node|timer}} {{Prop|timer|enabled}} property enables the {{Node|timer}} to count down from its current {{Prop|timer|value}} to zero.  The {{Node|timer}} is paused and does not count down when {{Prop|timer|enabled}} is {{Reserved|false}}.
+
See the {{Node|timer}} node reference for a detailed description of this property.
 
 
The {{Node|timer}} node can self-set the {{Prop|timer|enabled}} property to {{Reserved|false}} on various conditions, but can never self-set the property to {{Reserved|true}}.  The {{Prop|timer|enabled}} property can only be set {{Reserved|true}} in [[SHIPTide]] at GUI design time and in a [[SHIP:Sail|Sail]] script at run-time.
 
 
 
If ({{Prop|timer|value}} &gt; <code>0</code>) and {{Prop|timer|enabled}} is set to {{Reserved|true}} either in a [[SHIP:Sail|Sail]] script at run-time or in [[SHIPTide]] then the {{Node|timer}} begins to count down, with the {{Prop|timer|value}} property decrementing at 0.1Hz.
 
 
 
When ({{Prop|timer|value}} == <code>0</code>), the {{Prop|timer|enabled}} property may be self-set to {{Reserved|false}} and the timer halted if '''any''' of the following conditions are true:
 
*the {{Prop|timer|oneshot}} property is {{Reserved|true}}, or,
 
*the {{Prop|timer|autoreload}} property is {{Reserved|false}}, or,
 
*the {{Prop|timer|autoreload}} property is {{Reserved|true}} ''and'' the {{Prop|timer|period}} property value is <code>0</code>
 
 
 
Otherwise the {{Prop|timer|enabled}} property remains {{Reserved|true}}, the {{Node|timer}} reloads the count {{Prop|timer|value}} from the {{Prop|timer|period}}, and the {{Node|timer}}restarts counting down from the new reloaded {{Prop|timer|value}}.
 
  
 
=== Special Note on {{Node|listener}}s and the {{Node|timer}} {{Prop|timer|enabled}} Property ===
 
=== Special Note on {{Node|listener}}s and the {{Node|timer}} {{Prop|timer|enabled}} Property ===
  
Normally, any {{Reserved|false}} enabled property in any parent (or grandparent, or great-grandparent, etc.) of a {{Node|listener}} node will disable that {{Node|listener}}.  For example, a {{Node|listener}} in a {{Node|box}} where the {{Node|box}}'s {{Prop|box|enabled}} property is {{Reserved|false}} will prevent the {{Node|listener}} from waking on events.  
+
Normally, any {{Reserved|false}} enabled property in any parent (or grandparent, or great-grandparent, etc.) of a {{Node|listener}} node will disable that {{Node|listener}}.  For example, a {{Node|listener}} in a {{Node|box}} where the {{Node|box}}'s {{Prop|layoutarea|enabled}} property is {{Reserved|false}} will prevent the {{Node|listener}} from waking on events.  
  
Starting with SHIPEngine v4.0.122, {{Node|timer}} nodes' {{Prop|timer|enabled}} property does ''not'' block events from {{Node|listener}}s within them.  
+
Starting with SHIPEngine v4.0.202, {{Node|timer}} nodes' {{Prop|timer|enabled}} property does ''not'' block events from {{Node|listener}}s within them.  
  
This exception behavior is by design so that {{Prop|timer|alarm}}s, for example, can be listened for in a {{Node|listener}} held inside a {{Node|timer}} node.  Otherwise, when the {{Node|timer}} expired and the {{Prop|timer|enabled}} went {{Reserved|false}}, a contained {{Node|listener}} would immediately be disabled and the {{Node|timer}} {{Prop|timer|alarm}} would be unheard.
+
This exception is by design so that, for example, {{Prop|timer|alarm}}s can be listened for in a {{Node|listener}} held inside a {{Node|timer}} node.  Otherwise, when the {{Node|timer}} expired and the {{Prop|timer|enabled}} went {{Reserved|false}}, a contained {{Node|listener}} would immediately be disabled and the {{Node|timer}} {{Prop|timer|alarm}} would be unheard.

Latest revision as of 12:19, 31 January 2013

Node: timer

Property Data Type Description
enabled Boolean If true (default if unset) this timer is enabled.

See the timer node reference for a detailed description of this property.

Special Note on listeners and the timer enabled Property

Normally, any false enabled property in any parent (or grandparent, or great-grandparent, etc.) of a listener node will disable that listener. For example, a listener in a box where the box's enabled property is false will prevent the listener from waking on events.

Starting with SHIPEngine v4.0.202, timer nodes' enabled property does not block events from listeners within them.

This exception is by design so that, for example, alarms can be listened for in a listener held inside a timer node. Otherwise, when the timer expired and the enabled went false, a contained listener would immediately be disabled and the timer alarm would be unheard.