aboutsummaryrefslogtreecommitdiff
Commit message (Expand)AuthorAge
...
| | | * | | updatepo cmake ruleGiuseppe Bilotta2011-07-22
| | | * | | Static naming of po fileGiuseppe Bilotta2011-07-22
| | | * | | Refactor mo creation/installationGiuseppe Bilotta2011-07-22
| | | * | | Use project name for mo filesGiuseppe Bilotta2011-07-22
| | | * | | Merge remote-tracking branch 'erlehmann/master'Giuseppe Bilotta2011-07-22
| | | |\ \ \ | | | |/ / / | | |/| | |
| | * | | | * nicer firefly textureNils Dagsson Moskopp2011-07-21
| | * | | | + unknown block is sickNils Dagsson Moskopp2011-07-21
| | | * | | changed some lines to fit the 80chars limitConstantin Wenger2011-07-22
| | | * | | fixed not finding dll for gettext in MSVCConstantin Wenger2011-07-21
| | | * | | Reorganize cmake gettext message output to ease debuggingGiuseppe Bilotta2011-07-21
| | | * | | Restore "Leave address blank" positionGiuseppe Bilotta2011-07-21
| | | * | | Find correct library for MSVC vs MingW in WinowsGiuseppe Bilotta2011-07-21
| | | * | | Only install locale files if using gettextGiuseppe Bilotta2011-07-21
| | | * | | Uppercase DEFINED or cmake 2.8.4 complainsGiuseppe Bilotta2011-07-21
| | | * | | updated some path because the dlls are mostly under bin not libConstantin Wenger2011-07-21
| | | * | | Refactor and clean up gettext managementGiuseppe Bilotta2011-07-21
| | | * | | Make gettext optionalGiuseppe Bilotta2011-07-21
| | | * | | Tweak makefiles to add -delta suffix.Weedy2011-07-21
| | | * | | Fix win32 MSVC compile. (screw gettext)Weedy2011-07-21
| * | | | | merged some stuff from upstream while merging deltaPerttu Ahola2011-07-23
| |\ \ \ \ \ | | | |_|/ / | | |/| | |
| * | | | | added some TODOs to main.cppPerttu Ahola2011-07-21
| * | | | | Merged minetest-delta a624fe549bc75855a170Perttu Ahola2011-07-21
| |\ \ \ \ \ | | |_|/ / / | |/| | | / | | | |_|/ | | |/| |
| * | | | Merge pull request #29 from cisoun/masterNils Dagsson Moskopp2011-07-21
| |\ \ \ \
| | * | | | Added missing .po fil.eCyriaque Skrapits2011-07-21
| | * | | | Added french translation.Cyriaque Skrapits2011-07-21
| |/ / / /
| * | | / * different collision box for fireflies so they now hover above the groundNils Dagsson Moskopp2011-07-21
| | |_|/ | |/| |
| * | | Merge pull request #27 from Oblomov/masterNils Dagsson Moskopp2011-07-20
| |\ \ \
| | * | | Move package search out of conditionalGiuseppe Bilotta2011-07-20
| * | | | + firefliesNils Dagsson Moskopp2011-07-20
| * | | | * README updatedNils Dagsson Moskopp2011-07-20
| * | | | Merge branch 'master' of github.com:erlehmann/minetest-deltaNils Dagsson Moskopp2011-07-20
| |\ \ \ \
| | * \ \ \ Merge pull request #24 from SpeedProg/masterNils Dagsson Moskopp2011-07-20
| | |\ \ \ \ | | | |/ / / | | |/| | |
| | | * | | fixed problem with wront paths in gettextConstantin Wenger2011-07-20
| * | | | | Merge branch 'master' of github.com:erlehmann/minetest-deltaNils Dagsson Moskopp2011-07-20
| |\| | | |
| | * | | | Merge pull request #23 from Oblomov/masterNils Dagsson Moskopp2011-07-20
| | |\ \ \ \
| | | * | | | Set the window caption for the initial window tooGiuseppe Bilotta2011-07-20
| | | * | | | Check the data path before usageGiuseppe Bilotta2011-07-20
| | | * | | | Use system sqlite3/jthread libs if availableGiuseppe Bilotta2011-07-20
| | |/ / / /
| * | | | | Merge branch 'master' of github.com:erlehmann/minetest-deltaNils Dagsson Moskopp2011-07-20
| |\| | | |
| | * | | | Merge pull request #22 from SpeedProg/masterNils Dagsson Moskopp2011-07-20
| | |\| | |
| | | * | | updated german po file for minetest-delta (prior it was for minetest)Constantin Wenger2011-07-20
| | | * | | added gettext supportConstantin Wenger2011-07-20
| | |/ / /
| * | | | Merge branch 'upstream/master'Nils Dagsson Moskopp2011-07-20
| |\ \ \ \ | | |/ / / | |/| / / | | |/ /
| * | | * README updated (graphics licensing)Nils Dagsson Moskopp2011-07-20
| * | | * by popular request, fewer cloudsNils Dagsson Moskopp2011-07-20
| * | | * README updatedNils Dagsson Moskopp2011-07-19
| * | | + minetest application iconNils Dagsson Moskopp2011-07-19
| * | | * initialize liquid_kind properly so compiler does not bitch about itNils Dagsson Moskopp2011-07-19
| * | | + fake shading for the volumetric cloudsNils Dagsson Moskopp2011-07-19
| * | | + volumetric clouds (thanks teddydestodes)Nils Dagsson Moskopp2011-07-18
hl kwb">class="noindent" >In real-world railways, a so-called interlocking system is a set of railway signals and trackside equipment. Its purpose is to prevent conflicting train movements which otherwise could result in derailing or colliding trains. If you want more information, just search for &#8220;railway interlocking&#8221; on the internet. <!--l. 28--><p class="noindent" >Real-world interlocking systems perform this task by setting routes. A route is a path along a track that a train can safely pass. To set a route for a train, the signalman (the operator of a signal box) has to set switches (turnouts) to the correct position and lock them in order to make a signal for a train show &#8220;Proceed&#8221;. In newer systems, this is done automatically by the interlocking system. A route can not be set if switches are locked to a wrong position by another route or if any portion of the route is occupied by a train. <!--l. 37--><p class="noindent" >The interlocking system in this Minetest mod tries to follow real-world interlocking systems as far as applicable. It divides tracks into track sections and implements a route setting mechanism following the same principle. <!--l. 42--><p class="noindent" >However, for the sake of simplicity of implementation and usage, not all concepts of real-world interlocking have been taken over. Especially, there is no mechanism for overlap. <!--l. 46--><p class="noindent" >If you are looking for a place to learn how real-world interlocking systems work, have a look at &#8220;SimSig&#8221;. By looking at their simulations, you can obtain experience on how to set up your own interlocking systems in AdvTrains. The SimSig glossary is a good place to look up unknown terms in this document. <!--l. 52--><p class="noindent" > <a id="x1-3r2"></a> <!--l. 52--><p class="noindent" ><span class="ecsx-1200">2</span> <span class="ecsx-1200">Setting</span> <span class="ecsx-1200">up</span> <span class="ecsx-1200">track</span> <span class="ecsx-1200">sections</span> <a id="Q1-1-0"></a> <!--l. 54--><p class="noindent" >In the real world, a line of track is divided into so-called track sections, or track circuits. Those systems often can not tell where exactly a train is, but only which track sections it occupies. A route can never be set through an occupied track section. <!--l. 59--><p class="noindent" >A track section often covers: <ul class="itemize1"> <li class="itemize">A section on a main running line, between two signals </li> <li class="itemize">A single turnout </li> <li class="itemize">A rail crossing, or a set of turnouts acting as a double/single slip switch </li> <li class="itemize">A siding</li></ul> <!--l. 67--><p class="noindent" >You will find some examples on how to interlock certain patterns later. <!--l. 69--><p class="noindent" > <a id="x1-4r1"></a> <!--l. 69--><p class="noindent" ><span class="ecsx-1200">2.1</span> <span class="ecsx-1200">Track</span> <span class="ecsx-1200">Circuit</span> <span class="ecsx-1200">Breaks</span> <a id="Q1-1-0"></a> <!--l. 71--><p class="noindent" >In this mod, you will not directly configure the locations of track sections. Instead, you designate the borders of each track section using a special node, the Track Circuit Break, abbreviated TCB. <!--l. 75--><p class="noindent" >For example, if you want to create a track section for a piece of a main running line, you set up two TCBs at the ends of this track circuit. <!--l. 79--><p class="noindent" >Setting up a TCB works as follows: <ol class="enumerate1" > <li class="enumerate" id="x1-6x1">Place a TCB node somewhere near the place where the circuit break is going to be located. </li> <li class="enumerate" id="x1-8x2">Right-click the TCB node </li> <li class="enumerate" id="x1-10x3">Punch the rail which should act as TCB</li></ol> <!--l. 86--><p class="noindent" >The result should look like this: <!--l. 88--><p class="noindent" ><img src="0_home_moritz_Home_Projekte_Minetest_minetest_m___s_assets_lyx_img_screenshot_20180830_142551.png" alt="PIC" > <!--l. 90--><p class="noindent" >Now you have assigned the TCB node to a rail. Right-click the TCB node once again. This will bring up a form which looks as follows: <!--l. 93--><p class="noindent" ><img src="1_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-26-35.png" alt="PIC" > <!--l. 95--><p class="noindent" >You see that the form is divided in side A and side B. To designate where each side is, a marker is displayed on the rail. You can always make this marker show up by punching the TCB node, and remove it by punching the marker. Both sides are shown as &#8220;End of interlocking&#8221;. This means that there is no track section set up at this place. <!--l. 101--><p class="noindent" >You should repeat this procedure once again a few meters away from the first TCB to create a second TCB on the same track. <!--l. 104--><p class="noindent" ><img src="2_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-32-48.png" alt="PIC" > <!--l. 106--><p class="noindent" >Once you have both bordering TCBs set up, you can now create the actual track section. To do this: <ol class="enumerate1" > <li class="enumerate" id="x1-12x1">Right-click one of the TCBs </li> <li class="enumerate" id="x1-14x2">Locate the correct side (A or B) to create the track section </li> <li class="enumerate" id="x1-16x3">Click &#8220;Create interlocked Track Section&#8221; in the formspec on the chosen side.</li></ol> <!--l. 114--><p class="noindent" >Now, the text on the formspec has changed. It shows something like this: <!--l. 117--><p class="noindent" ><img src="3_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-27-25.png" alt="PIC" > <!--l. 119--><p class="noindent" >Clicking &#8220;Show Track Section&#8221; brings up another formspec: <!--l. 121--><p class="noindent" ><img src="4_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-28-32.png" alt="PIC" > <!--l. 123--><p class="noindent" >On the top, you see a list of all TCBs that border this track section. In your case, there should be two TCBs listed. If there&#8217;s only one, head over to <a href="#x1-17r2">2.2<!--tex4ht:ref: subsec:Long-track-sections, --></a>. You should now select a name for the track section, to identify it later. <!--l. 128--><p class="noindent" >The same procedure is applicable when you create a turnout track section, except that you have to set up three or more TCBs. <!--l. 131--><p class="noindent" >The AdvTrains interlocking system allows you to add more TCBs after you have created a track section. This works without problems in most cases. For example, you can easily insert a turnout into an already set-up track section and create another TCB behind it, and AdvTrains will automatically detect the existing track section. Problems arise only if you try to insert a TCB in-between a section, in which case both sides of the TCB will end up assigned to the same section. The code currently does not handle this case properly, so try to avoid this situation by all means. As a last resort, you can always dissolve a faulty track section, as described in the next chapter. <!--l. 142--><p class="noindent" > <a id="x1-17r2"></a> <!--l. 142--><p class="noindent" ><span class="ecsx-1200">2.2</span> <span class="ecsx-1200">Long</span> <span class="ecsx-1200">track</span> <span class="ecsx-1200">sections,</span> <span class="ecsx-1200">crossings</span> <span class="ecsx-1200">and</span> <span class="ecsx-1200">other</span> <span class="ecsx-1200">edge</span> <span class="ecsx-1200">cases</span> <a id="Q1-1-0"></a> <!--l. 144--><p class="noindent" > <a id="x1-18r1"></a> <!--l. 144--><p class="noindent" ><span class="ecsx-1000">2.2.1</span> <span class="ecsx-1000">Very</span> <span class="ecsx-1000">long</span> <span class="ecsx-1000">track</span> <span class="ecsx-1000">sections</span> <a id="Q1-1-0"></a> <!--l. 146--><p class="noindent" >If you try to set up a track section that is longer than 1000 nodes, advtrains won&#8217;t recognize the TCB at the other end because of a safety limit in the traverser function, which is supposed to prevent deadlocks. This case has happened when the Track Section overview screen only shows one TCB in the list. The procedure for this is as follows: <ol class="enumerate1" > <li class="enumerate" id="x1-20x1">Go to the second TCB (the one that wasn&#8217;t recognized). It should show &#8220;End of Interlocking&#8221; on the relevant side. </li> <li class="enumerate" id="x1-22x2">Click &#8220;Create interlocked track section&#8221;. The section created will be different from the one that is already present. </li> <li class="enumerate" id="x1-24x3">In the track section overview, click &#8220;Join into other section&#8221; </li> <li class="enumerate" id="x1-26x4">Go back to the first TCB, bring up the Track Section overview screen of the first track section and click &#8220;Join with ???&#8221;</li></ol> <!--l. 160--><p class="noindent" >The other, missing TCB should now appear in the list. If you accidentally started such a joining procedure, click the &#8220;X&#8221; button on the right. <!--l. 164--><p class="noindent" > <a id="x1-27r2"></a> <!--l. 164--><p class="noindent" ><span class="ecsx-1000">2.2.2</span> <span class="ecsx-1000">Rail</span> <span class="ecsx-1000">crosses</span> <a id="Q1-1-0"></a> <!--l. 166--><p class="noindent" >Since rail crosses are created by laying tracks across each other without logical connection, there&#8217;s no way for advtrains to know whether rails cross each other. <!--l. 170--><p class="noindent" >Rail crossings in interlocking systems are always one single track section, which in most cases has 4 TCBs adjacent. <!--l. 173--><p class="noindent" ><img src="5_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-51-25.png" alt="PIC" > <!--l. 175--><p class="noindent" >The procedure is quite similar to the one for long sections: First, create two track sections for the branches, and then use the &#8220;Join&#8221; function to merge both sections into one. <!--l. 179--><p class="noindent" > <a id="x1-28r3"></a> <!--l. 179--><p class="noindent" ><span class="ecsx-1000">2.2.3</span> <span class="ecsx-1000">Deleting</span> <span class="ecsx-1000">and</span> <span class="ecsx-1000">re-adding</span> <span class="ecsx-1000">single</span> <span class="ecsx-1000">TCBs</span> <span class="ecsx-1000">to</span> <span class="ecsx-1000">a</span> <span class="ecsx-1000">section</span> <a id="Q1-1-0"></a> <!--l. 181--><p class="noindent" >In some occasions, for example when you remove a siding or a crossover, it can be necessary to unassign a TCB from a track section. There are multiple ways to do this: <ul class="itemize1"> <li class="itemize">In the TCB form, click the &#8220;Remove from section&#8221; button </li> <li class="itemize">In the track section form, first select the TCB in the list and then click &#8220;Unlink selected TCB&#8221;</li></ul> <!--l. 189--><p class="noindent" >The result is that the TCB shows &#8220;End of Interlocking&#8221; and the section does not list the TCB as an endpoint anymore. <!--l. 192--><p class="noindent" >The other case is adding a siding or a crossover, in which case one or more TCBs still show &#8220;End of Interlocking&#8221; although they should be part of a section: <ul class="itemize1"> <li class="itemize">Go to another TCB that is registered in the track section and click &#8220;Update near TCBs&#8221; </li> <li class="itemize">If that did not work, follow the procedure of creating a long track section</li></ul> <!--l. 202--><p class="noindent" > <a id="x1-29r4"></a> <!--l. 202--><p class="noindent" ><span class="ecsx-1000">2.2.4</span> <span class="ecsx-1000">Dissolving</span> <span class="ecsx-1000">sections</span> <a id="Q1-1-0"></a> <!--l. 204--><p class="noindent" >If you made a mistake setting up something and you don&#8217;t see any other way to fix a misconfigured track section, you can always delete it using the &#8220;Dissolve section&#8221; button. This operation removes the track section and sets all TCBs that previously belonged to the section as &#8220;End of Interlocking&#8221;. This will always work and lets you start over new with setting up track sections. <!--l. 211--><p class="noindent" > <a id="x1-30r3"></a> <!--l. 211--><p class="noindent" ><span class="ecsx-1200">2.3</span> <span class="ecsx-1200">Interlocking</span> <span class="ecsx-1200">patterns</span> <a id="Q1-1-0"></a> <!--l. 213--><p class="noindent" >This section is supposed to show some examples on how you should set up track sections on certain track configurations. <!--l. 216--><p class="noindent" > <a id="x1-31r3"></a> <!--l. 216--><p class="noindent" ><span class="ecsx-1200">3</span> <span class="ecsx-1200">Signals</span> <span class="ecsx-1200">and</span> <span class="ecsx-1200">routes</span> <a id="Q1-1-0"></a> <!--l. 218--><p class="noindent" >Signals are appliances that can give instructions to trains. That can be the permission to proceed, a speed restriction, or other information. <!--l. 221--><p class="noindent" >There are 2 types of signals: <ul class="itemize1"> <li class="itemize">Static signals always display the same information to the train. This can be a speed restriction (or the end of one), a disallowal to proceed as shunt move or similar things. In most cases, these are signs. </li> <li class="itemize">Variable signals are what most people would call a &#8220;signal&#8221;. Its function is to inform trains about whether and at which speed they can proceed into the next section safely.</li></ul> <!--l. 231--><p class="noindent" > <a id="x1-32r1"></a> <!--l. 231--><p class="noindent" ><span class="ecsx-1200">3.1</span> <span class="ecsx-1200">Signal</span> <span class="ecsx-1200">Influence</span> <span class="ecsx-1200">Point</span> <a id="Q1-1-0"></a> <!--l. 233--><p class="noindent" >Every signal is associated to a track on which the instruction should be followed. Signals are usually placed right next to the track on the right side. Human observers do know then that the signal belongs to the track left of it, however, train safety systems (like the one in advtrains) can not. <!--l. 239--><p class="noindent" >This is the reason why a so-called &#8220;influence point&#8221; needs to be assigned to any signal that should actually give instructions to trains, should the driver (if even there is one) fail to recognize the instructions. <!--l. 244--><p class="noindent" >Depending on the signal and the mod that adds the signal, there are different ways to configure this. Signals integrated into advtrains behave as follows: <ul class="itemize1"> <li class="itemize">Static signals and all red-green light signals from core advtrains that are not assigned to a TCB can be configured by holding the &#8220;Use&#8221; key and then right-clicking the signal </li> <li class="itemize">All signals that are assigned to a TCB can be configured by first right-clicking them, then selecting &#8220;Influence Point&#8221; in the signalling formspec.</li></ul> <!--l. 255--><p class="noindent" >The small formspec that opens allows you to set and later view or clear the Influence Point. To set the influence point, click the &#8220;Set&#8221; button, face towards the signal and punch a rail about 2m in front of the signal. A small marker will be shown, indicating success. To