@@ -9,7 +9,272 @@ For a full list of parameters, see :ref:`Developing OR Content - Parameters and
9
9
Train Engine Lights
10
10
===================
11
11
12
- OR supports the whole set of lights accepted by MSTS.
12
+ OR supports the whole set of lights accepted by MSTS, MSTS-bin, and adds many new
13
+ options to enhance the variety and complexity of lighting systems that can be recreated.
14
+
15
+ Lights with multiple conditions
16
+ -------------------------------
17
+
18
+ In the original MSTS light implementation, each light could only have one set of
19
+ activation conditions. If the same light were to be activated in multiple situations,
20
+ (for example, a light which should turn on for both the front and rear units)
21
+ the entire light would need to be included twice, just with different conditions.
22
+
23
+ .. index ::
24
+ single: Conditions
25
+
26
+ Open Rails now allows for a single light to have multiple ``Conditions () `` blocks.
27
+ If *any * one set of conditions is fulfilled, the light will be enabled. If no conditions
28
+ are specified, the light will be assumed to be on always. An example of how this can
29
+ be used to simplify ``Lights `` implementation is included below::
30
+
31
+ Light (
32
+ comment( Nose light bright )
33
+ Conditions (
34
+ Headlight ( 3 )
35
+ Unit ( 2 )
36
+ )
37
+ FadeIn ( 0.5 )
38
+ FadeOut ( 0.5 )
39
+ States ( 1
40
+ State (
41
+ LightColour ( FFffffe6 )
42
+ Radius ( 0.6 )
43
+ Position ( 0.0 4.12 6.55 )
44
+ )
45
+ )
46
+ )
47
+ Light (
48
+ comment( Nose light bright DPU )
49
+ Conditions (
50
+ Headlight ( 3 )
51
+ Unit ( 4 )
52
+ )
53
+ FadeIn ( 0.5 )
54
+ FadeOut ( 0.5 )
55
+ States ( 1
56
+ State (
57
+ LightColour ( FFffffe6 )
58
+ Radius ( 0.6 )
59
+ Position ( 0.0 4.12 6.55 )
60
+ )
61
+ )
62
+ )
63
+
64
+ This set of two lights can be simplified to one light like this::
65
+
66
+ Light (
67
+ comment( Nose light bright )
68
+ Conditions (
69
+ Headlight ( 3 )
70
+ Unit ( 2 )
71
+ )
72
+ Conditions (
73
+ Headlight ( 3 )
74
+ Unit ( 4 )
75
+ )
76
+ FadeIn ( 0.5 )
77
+ FadeOut ( 0.5 )
78
+ States ( 1
79
+ State (
80
+ LightColour ( FFffffe6 )
81
+ Radius ( 0.6 )
82
+ Position ( 0.0 4.12 6.55 )
83
+ )
84
+ )
85
+ )
86
+
87
+ Both of these snippets produce the same result: a light that turns on when the
88
+ headlights are bright and the unit is first, or the last unit reversed (ie:
89
+ distributed power). However, by specifying multiple conditions, the second
90
+ implementation takes up much less space and guarentees that both modes of the
91
+ light have the exact same ``States ``. There is no hard limit on the number
92
+ of conditions a light can have.
93
+
94
+ .. _features-light-conditions :
95
+
96
+ Open Rails specific lighting conditions
97
+ ---------------------------------------
98
+
99
+ Open Rails also adds a set of new lighting conditions which offer additional
100
+ flexibility in creating detailed light behaviors. Note that each of these
101
+ must be inside the ``Conditions () `` block of a ``Light () `` in the .eng/.wag
102
+ file to function. All conditions are optional and can be mixed and matched
103
+ as needed, though only one of each condition can be included per conditions
104
+ block!
105
+
106
+ .. index ::
107
+ single: Conditions(ORTSBattery
108
+
109
+ Battery Switch
110
+ ''''''''''''''
111
+
112
+ The light condition ``ORTSBattery `` allows a light to respond to the state of
113
+ the :ref: `battery switch subsystem <physics-battery-switch >`. The valid settings
114
+ and associated conditions for the light to turn *on * are as follows:
115
+
116
+ - ``ORTSBattery ( 0 ) `` Battery state is ignored (default)
117
+ - ``ORTSBattery ( 1 ) `` Battery switch must be on
118
+ - ``ORTSBattery ( 2 ) `` Battery switch must be off
119
+
120
+ .. index ::
121
+ single: Conditions(Brake
122
+
123
+ Friction Brakes
124
+ '''''''''''''''
125
+
126
+ The ``Brake `` condition can be used to create brake indicator lights
127
+ which turn on or off when the friction brakes are applied. Dynamic brakes
128
+ have no effect.
129
+
130
+ - ``Brake ( 0 ) `` Brake application/release is ignored (default)
131
+ - ``Brake ( 1 ) `` Brakes must be released
132
+ - ``Brake ( 2 ) `` Brakes must be applied
133
+
134
+ .. index ::
135
+ single: Conditions(Reverser
136
+
137
+ Reverser
138
+ ''''''''
139
+
140
+ ``Reverser `` is a very powerful condition that gives lights the ability
141
+ to be enabled by the selected direction of travel. Note that a flipped
142
+ locomotive or wagon will automatically flip the sensed reverser setting
143
+ to ensure lights shine in the correct direction. Also, steam locomotive
144
+ cutoff values between -10% and 10% will be detected as 'neutral'.
145
+
146
+ - ``Reverser ( 0 ) `` Reverser direction is ignored (default)
147
+ - ``Reverser ( 1 ) `` Reverser direction must be forward
148
+ - ``Reverser ( 2 ) `` Reverser direction must be reverse
149
+ - ``Reverser ( 3 ) `` Reverser direction must be neutral
150
+ - ``Reverser ( 4 ) `` Reverser direction must be forward or reverse
151
+ - ``Reverser ( 5 ) `` Reverser direction must be forward or neutral
152
+ - ``Reverser ( 6 ) `` Reverser direction must be reverse or neutral
153
+
154
+ .. index ::
155
+ single: Conditions(Doors
156
+
157
+ Passenger Doors
158
+ '''''''''''''''
159
+
160
+ Many pieces of passenger rolling stock have indicator lights to inform
161
+ the crew :ref: `passenger doors <features-passenger-doors >` are open. The
162
+ ``Doors `` condition is suited to this type of lighting.
163
+
164
+ - ``Doors ( 0 ) `` Passenger doors are ignored (default)
165
+ - ``Doors ( 1 ) `` Passenger doors must all be closed
166
+ - ``Doors ( 2 ) `` Passenger doors on the left must be open
167
+ - ``Doors ( 3 ) `` Passenger doors on the right must be open
168
+ - ``Doors ( 4 ) `` Passenger doors on both sides must be open
169
+ - ``Doors ( 5 ) `` Passenger doors on either the left or right must be open
170
+
171
+ .. index ::
172
+ single: Conditions(Horn
173
+ single: ORTSHornLightsTimer
174
+
175
+ Horn (Automatic Flashing Ditch Lights)
176
+ ''''''''''''''''''''''''''''''''''''''
177
+
178
+ Open Rails now supports the ability to configure flashing ditch lights
179
+ (or any other type of horn activated auxiliary lighting)
180
+ with the ``Horn `` light condition. When the horn is sounded, lights
181
+ with the horn condition will (de)activate, and remain (de)activated
182
+ for a time after the horn stops sounding. The standard timer is 30
183
+ seconds, but can be changed by placing a ``ORTSHornLightsTimer ``
184
+ token in the ``engine() `` section of the locomotive with flashing lights.
185
+ If ``ORTSHornLightsTimer( 0s ) `` is set, the lights will only activate
186
+ while the horn is sounding and immediately stop afterward.
187
+
188
+ - ``Horn ( 0 ) `` Horn state is ignored (default)
189
+ - ``Horn ( 1 ) `` Horn must not have been sounded recently
190
+ - ``Horn ( 2 ) `` Horn must have been sounded recently
191
+
192
+ Note that the solid ditch lights state should use ``Horn(1) `` to
193
+ prevent these lights overlapping the flashing state. An example
194
+ implementation of a flashing ditch light's conditions (many other
195
+ details removed for clarity) is provided below::
196
+
197
+ Light (
198
+ comment( Right ditch light )
199
+ Conditions (
200
+ Headlight ( 3 )
201
+ Unit ( 2 )
202
+ Horn ( 1 )
203
+ )
204
+ States ( 1
205
+ State (
206
+ LightColour ( FFFFFFFF )
207
+ Radius ( r )
208
+ Position ( x y z )
209
+ )
210
+ )
211
+ )
212
+ Light (
213
+ comment( Right ditch light Flashing )
214
+ Conditions (
215
+ Headlight ( 3 )
216
+ Unit ( 2 )
217
+ Horn ( 2 )
218
+ )
219
+ States ( 2
220
+ State (
221
+ LightColour ( FFFFFFFF )
222
+ Radius ( r )
223
+ Transition ( 1 )
224
+ Duration ( 0.5 )
225
+ Position ( x y z )
226
+ )
227
+ State (
228
+ LightColour ( FFFFFFFF )
229
+ Radius ( r )
230
+ Transition ( 1 )
231
+ Duration ( 0.5 )
232
+ Position ( x y z )
233
+ )
234
+ )
235
+ )
236
+
237
+ .. index ::
238
+ single: Conditions(Bell
239
+ single: ORTSBellLightsTimer
240
+
241
+ Bell (Automatic Flashing Ditch Lights)
242
+ ''''''''''''''''''''''''''''''''''''''
243
+
244
+ Similar to ``Horn ``, the ``Bell `` condition is useful for replicating
245
+ systems with flashing lights activated by the bell, though this is
246
+ less common than using the horn. Like with the horn, a timer can be
247
+ set to keep the lights activated for a time after the bell starts ringing.
248
+ Unlike with the horn, this timer is set to 0 seconds by default, meaning
249
+ the lights will only remain (de)activated while the bell is currently ringing.
250
+ If a timer is desired, ``engine(ORTSBellLightsTimer `` can be used in
251
+ the locomotive's .eng file.
252
+
253
+ - ``Bell ( 0 ) `` Bell state is ignored (default)
254
+ - ``Bell ( 1 ) `` Bell must not have been ringing recently
255
+ - ``Bell ( 2 ) `` Bell must have been ringing recently or is ringing now
256
+
257
+ .. index ::
258
+ single: Conditions(Brake
259
+
260
+ Multiple Unit Configuration (Locomotives Only)
261
+ ''''''''''''''''''''''''''''''''''''''''''''''
262
+
263
+ Some MU systems send headlight signals through the wires connecting locomotives,
264
+ but do not or cannot send these signals through wagons/coaches to remote
265
+ locomotives (eg: distributed power, banking locomotives, etc.). The ``MU ``
266
+ light condition allows for some flexibility in adjusting light behavior depending
267
+ on a locomotive's physical connection to the lead locomotive (or lack thereof).
268
+ While meant for locomotives only, wagons are always treated as remote locomotives
269
+ for the purposes of calculation.
270
+
271
+ - ``MU ( 0 ) `` Locomotives's connection to the lead locomotive is ignored (default)
272
+ - ``MU ( 1 ) `` Locomotive must be the lead locomotive itself
273
+ - ``MU ( 2 ) `` Locomotive must be in the same group of locomotives as the lead locomotive
274
+ - This condition will also be fulfilled for the lead locomotive itself.
275
+ - ``MU ( 3 ) `` Locomotive must be in a different group to the lead locomotive
276
+
277
+
13
278
14
279
Tilting trains
15
280
==============
@@ -588,7 +853,7 @@ the ``.load-or`` files in a consistent way: ``40HCtriton.load-or`` is suggested
588
853
container type and ``triton `` the brand painted on the container.
589
854
590
855
Format of the .load-or file
591
- '''''''''''''''''''''''
856
+ '''''''''''''''''''''''''''
592
857
593
858
Here below a sample of a ``.load-or `` file::
594
859
@@ -1217,6 +1482,8 @@ shape movement, however for greater accuracy the modeler can add specific values
1217
1482
``ORTSLengthAirHose ``. In addition the length values suggested in the Derailment Coefficient should
1218
1483
also be added.
1219
1484
1485
+ .. _features-passenger-doors :
1486
+
1220
1487
Passenger doors
1221
1488
===============
1222
1489
0 commit comments