diff options
45 files changed, 3316 insertions, 3 deletions
diff --git a/advtrains/init.lua b/advtrains/init.lua index 92f8a9c..a02b377 100644 --- a/advtrains/init.lua +++ b/advtrains/init.lua @@ -108,9 +108,9 @@ sid=function(id) if id then return string.sub(id, -6) end end --ONLY use this function for temporary debugging. for consistent debug prints use atprint atdebug=function(t, ...) - local text=advtrains.print_concat_table({t, ...}) - minetest.log("action", "[advtrains]"..text) - minetest.chat_send_all("[advtrains]"..text) +-- local text=advtrains.print_concat_table({t, ...}) +-- minetest.log("action", "[advtrains]"..text) +-- minetest.chat_send_all("[advtrains]"..text) end if minetest.settings:get_bool("advtrains_enable_debugging") then diff --git a/assets/interlocking.html.LyXconv/0_home_moritz_Home_Projekte_Minetest_minetest_m___s_assets_lyx_img_screenshot_20180830_142551.png b/assets/interlocking.html.LyXconv/0_home_moritz_Home_Projekte_Minetest_minetest_m___s_assets_lyx_img_screenshot_20180830_142551.png Binary files differnew file mode 100644 index 0000000..77e05f8 --- /dev/null +++ b/assets/interlocking.html.LyXconv/0_home_moritz_Home_Projekte_Minetest_minetest_m___s_assets_lyx_img_screenshot_20180830_142551.png diff --git a/assets/interlocking.html.LyXconv/1_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-26-35.png b/assets/interlocking.html.LyXconv/1_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-26-35.png Binary files differnew file mode 100644 index 0000000..468ce25 --- /dev/null +++ b/assets/interlocking.html.LyXconv/1_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-26-35.png diff --git a/assets/interlocking.html.LyXconv/2_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-32-48.png b/assets/interlocking.html.LyXconv/2_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-32-48.png Binary files differnew file mode 100644 index 0000000..c3aa984 --- /dev/null +++ b/assets/interlocking.html.LyXconv/2_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-32-48.png diff --git a/assets/interlocking.html.LyXconv/3_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-27-25.png b/assets/interlocking.html.LyXconv/3_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-27-25.png Binary files differnew file mode 100644 index 0000000..82253bc --- /dev/null +++ b/assets/interlocking.html.LyXconv/3_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-27-25.png diff --git a/assets/interlocking.html.LyXconv/4_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-28-32.png b/assets/interlocking.html.LyXconv/4_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-28-32.png Binary files differnew file mode 100644 index 0000000..0cbed7d --- /dev/null +++ b/assets/interlocking.html.LyXconv/4_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-28-32.png diff --git a/assets/interlocking.html.LyXconv/5_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-51-25.png b/assets/interlocking.html.LyXconv/5_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-51-25.png Binary files differnew file mode 100644 index 0000000..1091455 --- /dev/null +++ b/assets/interlocking.html.LyXconv/5_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-51-25.png diff --git a/assets/interlocking.html.LyXconv/6_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_assign_signal.png b/assets/interlocking.html.LyXconv/6_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_assign_signal.png Binary files differnew file mode 100644 index 0000000..cd97f05 --- /dev/null +++ b/assets/interlocking.html.LyXconv/6_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_assign_signal.png diff --git a/assets/interlocking.html.LyXconv/7_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex1.png b/assets/interlocking.html.LyXconv/7_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex1.png Binary files differnew file mode 100644 index 0000000..048294d --- /dev/null +++ b/assets/interlocking.html.LyXconv/7_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex1.png diff --git a/assets/interlocking.html.LyXconv/8_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex2.png b/assets/interlocking.html.LyXconv/8_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex2.png Binary files differnew file mode 100644 index 0000000..ed14540 --- /dev/null +++ b/assets/interlocking.html.LyXconv/8_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex2.png diff --git a/assets/interlocking.html.LyXconv/9_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex3.png b/assets/interlocking.html.LyXconv/9_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex3.png Binary files differnew file mode 100644 index 0000000..fdcc785 --- /dev/null +++ b/assets/interlocking.html.LyXconv/9_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex3.png diff --git a/assets/interlocking.html.LyXconv/interlocking.css b/assets/interlocking.html.LyXconv/interlocking.css new file mode 100644 index 0000000..461af3c --- /dev/null +++ b/assets/interlocking.html.LyXconv/interlocking.css @@ -0,0 +1,141 @@ + +/* start css.sty */ +.ecsx-1728{font-size:170%; font-weight: bold;} +.ecsx-1728{ font-weight: bold;} +.ecsx-1728{ font-weight: bold;} +.ecsx-1728{ font-weight: bold;} +.ecsx-1728{ font-weight: bold;} +.ecsx-1728{ font-weight: bold;} +.ecsx-1728{ font-weight: bold;} +.ecsx-1728{ font-weight: bold;} +.ecst-1440{font-size:140%;} +.ecsx-1200{font-size:120%; font-weight: bold;} +.ecsx-1200{ font-weight: bold;} +.ecsx-1200{ font-weight: bold;} +.ecsx-1200{ font-weight: bold;} +.ecsx-1200{ font-weight: bold;} +.ecsx-1200{ font-weight: bold;} +.ecsx-1200{ font-weight: bold;} +.ecsx-1200{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +.ecbx-1000{ font-weight: bold;} +.ecbx-1000{ font-weight: bold;} +.ecbx-1000{ font-weight: bold;} +.ecbx-1000{ font-weight: bold;} +.ecbx-1000{ font-weight: bold;} +.ecbx-1000{ font-weight: bold;} +.ecbx-1000{ font-weight: bold;} +.ecbx-1000{ font-weight: bold;} +.ecti-1000{ font-style: italic;} +.ecti-1000{ font-style: italic;} +.ecti-1000{ font-style: italic;} +.ecti-1000{ font-style: italic;} +.ecti-1000{ font-style: italic;} +.ecti-1000{ font-style: italic;} +.ecti-1000{ font-style: italic;} +.ecti-1000{ font-style: italic;} +.ectt-1000{ font-family: monospace;} +.ectt-1000{ font-family: monospace;} +.ectt-1000{ font-family: monospace;} +.ectt-1000{ font-family: monospace;} +.ectt-1000{ font-family: monospace;} +.ectt-1000{ font-family: monospace;} +.ectt-1000{ font-family: monospace;} +.ectt-1000{ font-family: monospace;} +p.noindent { text-indent: 0em } +td p.noindent { text-indent: 0em; margin-top:0em; } +p.nopar { text-indent: 0em; } +p.indent{ text-indent: 1.5em } +@media print {div.crosslinks {visibility:hidden;}} +a img { border-top: 0; border-left: 0; border-right: 0; } +center { margin-top:1em; margin-bottom:1em; } +td center { margin-top:0em; margin-bottom:0em; } +.Canvas { position:relative; } +img.math{vertical-align:middle;} +li p.indent { text-indent: 0em } +li p:first-child{ margin-top:0em; } +li p:last-child, li div:last-child { margin-bottom:0.5em; } +li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; } +.enumerate1 {list-style-type:decimal;} +.enumerate2 {list-style-type:lower-alpha;} +.enumerate3 {list-style-type:lower-roman;} +.enumerate4 {list-style-type:upper-alpha;} +div.newtheorem { margin-bottom: 2em; margin-top: 2em;} +.obeylines-h,.obeylines-v {white-space: nowrap; } +div.obeylines-v p { margin-top:0; margin-bottom:0; } +.overline{ text-decoration:overline; } +.overline img{ border-top: 1px solid black; } +td.displaylines {text-align:center; white-space:nowrap;} +.centerline {text-align:center;} +.rightline {text-align:right;} +div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; } +.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.fbox {display:table} +div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.minipage{width:100%;} +div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} +div.center div {text-align: left;} +div.flushright, div.flushright div.flushright {text-align: right;} +div.flushright div {text-align: left;} +div.flushleft {text-align: left;} +.underline{ text-decoration:underline; } +.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } +.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +.framebox-c {text-align:center;} +.framebox-l {text-align:left;} +.framebox-r {text-align:right;} +span.thank-mark{ vertical-align: super } +span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } +div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } +table.tabular td p{margin-top:0em;} +table.tabular {margin-left: auto; margin-right: auto;} +td p:first-child{ margin-top:0em; } +td p:last-child{ margin-bottom:0em; } +div.td00{ margin-left:0pt; margin-right:0pt; } +div.td01{ margin-left:0pt; margin-right:5pt; } +div.td10{ margin-left:5pt; margin-right:0pt; } +div.td11{ margin-left:5pt; margin-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +td.td00{ padding-left:0pt; padding-right:0pt; } +td.td01{ padding-left:0pt; padding-right:5pt; } +td.td10{ padding-left:5pt; padding-right:0pt; } +td.td11{ padding-left:5pt; padding-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +.hline hr, .cline hr{ height : 1px; margin:0px; } +.tabbing-right {text-align:right;} +span.TEX {letter-spacing: -0.125em; } +span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} +a span.TEX span.E {text-decoration: none; } +span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} +span.LATEX span.TEX{ position:relative; left: -0.4em; } +div.float, div.figure {margin-left: auto; margin-right: auto;} +div.float img {text-align:center;} +div.figure img {text-align:center;} +.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} +.marginpar p{margin-top:0.4em; margin-bottom:0.4em;} +table.equation {width:100%;} +.equation td{text-align:center; } +td.equation { margin-top:1em; margin-bottom:1em; } +td.equation-label { width:5%; text-align:center; } +td.eqnarray4 { width:5%; white-space: normal; } +td.eqnarray2 { width:5%; } +table.eqnarray-star, table.eqnarray {width:100%;} +div.eqnarray{text-align:center;} +div.array {text-align:center;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.pmatrix img{vertical-align:middle;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.bar-css {text-decoration:overline;} +img.cdots{vertical-align:middle;} +.figure img.graphics {margin-left:10%;} +/* end css.sty */ + diff --git a/assets/interlocking.html.LyXconv/interlocking.html b/assets/interlocking.html.LyXconv/interlocking.html new file mode 100644 index 0000000..98f5ac9 --- /dev/null +++ b/assets/interlocking.html.LyXconv/interlocking.html @@ -0,0 +1,558 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html > +<head><title></title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<!-- html --> +<meta name="src" content="interlocking.tex"> +<link rel="stylesheet" type="text/css" href="interlocking.css"> +</head><body +> +<!--l. 18--><p class="noindent" > + + +<!--l. 18--><p class="noindent" ><span +class="ecsx-1728">Interlocking</span> +<span +class="ecsx-1728">System</span> +<span +class="ecsx-1728">Guide</span> +<div class="tabular"> <table id="TBL-1" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-1-1g"><col +id="TBL-1-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-1-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-1-1" +class="td00"></td></tr></table> +</div> +<a + id="x1-2r1"></a> + <!--l. 20--><p class="noindent" ><span +class="ecsx-1200">1</span> <span +class="ecsx-1200">Introduction</span> +<a + id="Q1-1-0"></a> +<!--l. 22--><p 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 +“railway interlocking” 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 “Proceed”. 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 “SimSig”. 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 “End of +interlocking”. 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 “Create interlocked Track Section” 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 “Show Track Section” 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’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’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’t recognized). It should show “End of Interlocking” on the relevant side. + </li> + <li + class="enumerate" id="x1-22x2">Click “Create interlocked track section”. 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 “Join into other section” + </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 “Join with ???”</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 “X” 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’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 “Join” +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 “Remove from section” button + </li> + <li class="itemize">In the track section form, first select the TCB in the list and then click “Unlink selected TCB”</li></ul> +<!--l. 189--><p class="noindent" >The result is that the TCB shows “End of Interlocking” 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 “End of Interlocking” 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 “Update near TCBs” + </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’t see any other way to fix a misconfigured track section, you can always +delete it using the “Dissolve section” button. This operation removes the track section and sets all TCBs that previously +belonged to the section as “End of Interlocking”. 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 shows 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" >The purpose of signals is to inform trains about whether they can proceed into the next section safely. Making a section of track safe to +pass for a train, turnouts need to be set to the correct position and no other train should be allowed to cross or share parts of the route +with this train. +<!--l. 224--><p class="noindent" > +<a + id="x1-32r1"></a> + <!--l. 224--><p class="noindent" ><span +class="ecsx-1200">3.1</span> <span +class="ecsx-1200">Assigning</span> + <span +class="ecsx-1200">Signals</span> + <span +class="ecsx-1200">to</span> + <span +class="ecsx-1200">TCBs</span> +<a + id="Q1-1-0"></a> +<!--l. 226--><p class="noindent" >Signals in the advtrains interlocking system are positioned - like in real life - at the border of track sections. +<!--l. 229--><p class="noindent" >When you set up a signal, do the following steps: + <ol class="enumerate1" > + <li + class="enumerate" id="x1-34x1">If not already happened, set up a TCB (you don’t need to, but are advised to, configure track sections there) + </li> + <li + class="enumerate" id="x1-36x2">Place the signal a few meters in front of the TCB, so that trains stopping at the signal do never pass the TCB + </li> + <li + class="enumerate" id="x1-38x3">Locate the side of the TCB which points in the direction that trains will proceed past the signal, as shown in the figure + below. + </li> + <li + class="enumerate" id="x1-40x4">Right-click the TCB, and click “Assign a signal” on this side. + </li> + <li + class="enumerate" id="x1-42x5">Punch the signal.</li></ol> +<!--l. 240--><p class="noindent" ><img +src="6_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_assign_signal.png" alt="PIC" +> +<!--l. 242--><p class="noindent" >You can assign a signal to each side of a TCB. This is, for example, useful when creating block sections on a bi-directional main running +line. +<!--l. 246--><p class="noindent" > +<a + id="x1-43r2"></a> + <!--l. 246--><p class="noindent" ><span +class="ecsx-1200">3.2</span> <span +class="ecsx-1200">The</span> + <span +class="ecsx-1200">concept</span> + <span +class="ecsx-1200">of</span> + <span +class="ecsx-1200">routes</span> +<a + id="Q1-1-0"></a> +<!--l. 248--><p class="noindent" >A so-called route is a locked path between two signals, which locks all turnouts in the correct position. +<!--l. 251--><p class="noindent" >Example: Imagine a station with 2 platforms on a single track running line. We are looking at signal A. You probably want trains coming +from the right to go into platform 1 or into platform 2, so you need to program 2 routes. +<!--l. 256--><p class="noindent" ><img +src="7_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex1.png" alt="PIC" +> +<!--l. 258--><p class="noindent" >This leads us to the most important aspect of route programming: Routes always start at a signal (A) and end at a signal facing in the +<span +class="ecbx-1000">same direction </span>(D and E), not at an opposite-facing signal (B and C). There are only few exceptions, we’ll cover this +later. +<!--l. 263--><p class="noindent" >When you set a route to make a train proceed on it, the interlocking system ensures that: + <ul class="itemize1"> + <li class="itemize">There are no rail vehicles on the route + </li> + <li class="itemize">All turnouts are set to the correct position and it is impossible to move them + </li> + <li class="itemize">No other routes can be set that would in any way conflict with this route</li></ul> +<!--l. 272--><p class="noindent" >For this to work, you need to specify all track sections the train will pass along, as well as the positions of all turnouts that need to be +locked. Those are not only the turnouts that lay directly on the train’s route, but also some turnouts on adjacent tracks, the so-called +flank protection. +<!--l. 278--><p class="noindent" >The purpose of flank protection is to prevent runaway trains and/or wagons to pass into a route. This is achieved by setting nearby +turnouts to a position that points “away” from the route. Example: +<!--l. 282--><p class="noindent" ><img +src="8_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex2.png" alt="PIC" +> +<!--l. 284--><p class="noindent" >The upper turnout, of course, needs to be locked in straight (normal) position, while the lower one is not relevant for the route itself. But +what if the lower turnout was set to the diverging (reverse) position and the driver of another train approaching signal B fails to see the +red light? This train would crash into the first one. To minimise danger, that other train would need to be routed towards signal +D. +<!--l. 291--><p class="noindent" >There are, of course, situations, where both positions of a turnout would conflict with a route equally. In those situations, there’s nothing +you can do and no flank lock needs to be set. +<!--l. 295--><p class="noindent" > +<a + id="x1-44r3"></a> + <!--l. 295--><p class="noindent" ><span +class="ecsx-1200">3.3</span> <span +class="ecsx-1200">Shunt</span> + <span +class="ecsx-1200">routes</span> +<a + id="Q1-1-0"></a> +<!--l. 297--><p class="noindent" >Operating railways is not all about driving trains around. Coupling, decoupling and moving single engines, wagons or groups of wagons +across a station, called shunting, also plays an important role. +<!--l. 301--><p class="noindent" >Remember what we said about routes: There must be no rail vehicles on the route. So what if you have some goods wagons +ready on a siding, and want to couple an engine to it? You can not set a regular route into the siding, because it is +occupied. +<!--l. 306--><p class="noindent" >The solution is to program a second route into the siding, but with the difference that it already ends at the rear-facing signal of it, so it +doesn’t include the siding section itself: +<!--l. 310--><p class="noindent" ><img +src="9_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex3.png" alt="PIC" +> +<!--l. 312--><p class="noindent" >The Sht2 route then needs to show a shunt aspect, which instructs the driver to proceed slowly and watch out for vehicles on the route. +To show a “free” aspect here would be wrong, because that would mean that the track is free until the next main signal, which it is clearly +not. +<!--l. 320--><p class="noindent" ><span +class="ecti-1000">Note that advtrains_interlocking currently does not allow to set individual aspects for routes, this is a feature still to be implemented</span> +<span +class="ecti-1000">soon.</span> +<!--l. 322--><p class="noindent" >Shunt routes like this are, so far, the only exception to the “Routes should end at a signal facing the same direction” +rule. +<!--l. 325--><p class="noindent" > +<a + id="x1-45r4"></a> + <!--l. 325--><p class="noindent" ><span +class="ecsx-1200">3.4</span> <span +class="ecsx-1200">Route</span> + <span +class="ecsx-1200">Release</span> +<a + id="Q1-1-0"></a> +<!--l. 327--><p class="noindent" >In early real-life interlocking systems, routes either had to be cancelled by the signalman after the train had passed the route, or there was +a single release contact at the end of the route. However, as interlocking systems evolved and the position of trains is now +roughly known by the track sections, portions of the route can be freed as soon as the train has left the corresponding +section. +<!--l. 334--><p class="noindent" >AdvTrains has chosen a modern approach to route releasing. Each turnout lock is associated to a track section belonging to the route’s +path. Once the train leaves this section, all assigned locks are also freed. +<!--l. 338--><p class="noindent" > +<a + id="x1-46r5"></a> + <!--l. 338--><p class="noindent" ><span +class="ecsx-1200">3.5</span> <span +class="ecsx-1200">Programming</span> + <span +class="ecsx-1200">a</span> + <span +class="ecsx-1200">route</span> +<a + id="Q1-1-0"></a> +<!--l. 340--><p class="noindent" >The route programming procedure is quite straightforward if you’ve read the previous sections and understood how routes should be +set. +<!--l. 343--><p class="noindent" >Routes always start at a signal. You must have assigned the signal to a TCB, as described earlier. +<!--l. 346--><p class="noindent" >When you right-click the signal, it no longer changes its aspect. Instead, a formspec pops up, showing you an (empty) list of routes with +the possibility to set them or to create new routes. Click the “Create new route” button to start programming a new +route. +<!--l. 351--><p class="noindent" >The form closes, and an arrow is displayed on the TCB. You are now in “Route Programming” mode, programming the first track section +of the route. Now: + <ul class="itemize1"> + <li class="itemize">Put any turnouts you need to lock in the correct position (e.g. by right-clicking them). This includes flank protection. + </li> + <li class="itemize">Punch them. This makes a marker saying “Route Lock Editing” appear. + </li> + <li class="itemize">If you punch a turnout again, or punch the marker, you can remove the lock again. + </li> + <li class="itemize">When you’ve locked all turnouts in the current section, go to and punch the TCB that is the border to the next track + section the train proceeds into.</li></ul> +<!--l. 364--><p class="noindent" >Once you’ve done this, the lock markers change to “Route Lock”, telling they can’t be changed anymore. Repeat the above procedure until +you have punched the final TCB, at which the route should end. As mentioned before, there should be a signal at this place, +however this is not enforced. Now, run the chat command <span +class="ectt-1000">/at_rp_set <name of route> </span>to complete programming the +route. +<!--l. 371--><p class="noindent" >A few hints: + <ul class="itemize1"> + <li class="itemize">If one turnout should be locked by more than one section, set the lock only in the <span +class="ectt-1000">last </span>of those sections. Locking the same + turnout in multiple sections of a single route results in undefined behavior! + </li> + <li class="itemize">If you accidentally punched a TCB, you can run <span +class="ectt-1000">/at_rp_back </span>to undo this and return to the previous section. Due to a + bug, you have to re-set all locks of this section. + </li> + <li class="itemize">If you want to stop programming the entire route without saving it, run <span +class="ectt-1000">/at_rp_discard</span></li></ul> +<!--l. 384--><p class="noindent" > +<a + id="x1-47r4"></a> + <!--l. 384--><p class="noindent" ><span +class="ecsx-1200">4</span> <span +class="ecsx-1200">Interlocking</span> + <span +class="ecsx-1200">system</span> + <span +class="ecsx-1200">operation</span> +<a + id="Q1-1-0"></a> +<!--l. 386--><p class="noindent" >Setting up the interlocking for a portion of a railway network requires some time, experience and planning, but once done, there’s not +much to do anymore to make trains run on your, now safer, railway. This section covers some useful practices to route trains across your +network. +<!--l. 391--><p class="noindent" >At the moment, routes can only be set by clicking the signal or via LuaATC, except if you use automatic working. It is planned to control +this via the onboard computer and via a “signal box” view based on the currently broken itrainmap. +<!--l. 396--><p class="noindent" > +<a + id="x1-48r1"></a> + <!--l. 396--><p class="noindent" ><span +class="ecsx-1200">4.1</span> <span +class="ecsx-1200">Simple</span> + <span +class="ecsx-1200">route</span> + <span +class="ecsx-1200">setting</span> + <span +class="ecsx-1200">and</span> + <span +class="ecsx-1200">cancelling</span> +<a + id="Q1-1-0"></a> +<!--l. 398--><p class="noindent" >To set a route, simply right-click the signal, select a route and click “set route”. If there are no conflicts, the signal turns green and the +train is allowed to proceed. +<!--l. 402--><p class="noindent" >It may be possible that the route can not be set, because one or more other routes conflict with the current one, or a section is blocked. In +this case, the signal stays red, and the conflicting item is shown in the formspec. As soon as the conflict is resolved (by cancellation +or release of the conflicting route, or the section becoming free), the requested route will be set and the signal turns +green. +<!--l. 409--><p class="noindent" >If a route is either requested or set, it can be cancelled from the signalling formspec. This means that all turnouts and sections are +released, and the signal reverts back to red. This of course only works when the train has not passed the signal yet. There is no +mechanism for Approach Locking. +<!--l. 415--><p class="noindent" > +<a + id="x1-49r2"></a> + <!--l. 415--><p class="noindent" ><span +class="ecsx-1200">4.2</span> <span +class="ecsx-1200">Automatic</span> + <span +class="ecsx-1200">Working</span> +<a + id="Q1-1-0"></a> +<!--l. 417--><p class="noindent" >Block signals on main running lines usually only have a single route to set, the one proceeding along the main line. Their purpose is only +to show whether there are trains in the next section. So, it would be convenient if this only route would set itself again after a train +passed. +<!--l. 423--><p class="noindent" >This is what Automatic Working is for. Set a route, click “Enable Automatic Working”, and as soon as a train passes, the route is +automatically re-set. +<!--l. 427--><p class="noindent" >This function is nearly identical to SimSig automatic signals. It can also be useful on a line with high traffic, when there’s a +low-frequented access to a siding. You’d enable automatic working for the main route and cancel it only when you need a train to go into +the siding. +<!--l. 432--><p class="noindent" > +<a + id="x1-50r5"></a> + <!--l. 432--><p class="noindent" ><span +class="ecsx-1200">5</span> <span +class="ecsx-1200">Final</span> + <span +class="ecsx-1200">notes</span> +<a + id="Q1-1-0"></a> +<!--l. 434--><p class="noindent" >The interlocking system is mainly finished, though there are still some plans and ideas. They include: + <ul class="itemize1"> + <li class="itemize">Setting routes from inside a train (via onboard computer) + </li> + <li class="itemize">Signalbox panels, as revival of itrainmap + </li> + <li class="itemize">Individual signal aspects for routes + </li> + <li class="itemize">Distant signals + </li> + <li class="itemize">On-Train head-up display for oncoming signals (they have something like this in Czech Republic, I forgot how it’s called.)</li></ul> +<!--l. 444--><p class="noindent" >Apart from this, there’s the large oncoming project of a new timetable-based train automation system, but this will take some time to +evolve and is out of the scope of this document. +<!--l. 448--><p class="noindent" >If you have any suggestions, corrections, improvements, criticism or cute kittens and stuff, you can always contact me by various means +(Forum PM, E-Mail (orwell@bleipb.de), Linuxworks server chat a.s.o.). Have fun! +<!--l. 453--><p class="noindent" >- orwell +</body></html> + + + diff --git a/assets/interlocking.lyx b/assets/interlocking.lyx new file mode 100644 index 0000000..9e9e94f --- /dev/null +++ b/assets/interlocking.lyx @@ -0,0 +1,1157 @@ +#LyX 2.2 created this file. For more info see http://www.lyx.org/ +\lyxformat 508 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass paper +\use_default_options true +\maintain_unincluded_children false +\language english +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry true +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\index Index +\shortcut idx +\color #008000 +\end_index +\leftmargin 1cm +\topmargin 1cm +\rightmargin 1cm +\bottommargin 1cm +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation 0bp +\quotes_language english +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Title +Minetest Mod - Advanced Trains [advtrains] +\end_layout + +\begin_layout Title +Interlocking System Guide +\end_layout + +\begin_layout Section +Introduction +\end_layout + +\begin_layout Standard +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 +\begin_inset Quotes eld +\end_inset + +railway interlocking +\begin_inset Quotes erd +\end_inset + + on the internet. +\end_layout + +\begin_layout Standard +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 +\begin_inset Quotes eld +\end_inset + +Proceed +\begin_inset Quotes erd +\end_inset + +. + 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. +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Standard +If you are looking for a place to learn how real-world interlocking systems + work, have a look at +\begin_inset Quotes eld +\end_inset + +SimSig +\begin_inset Quotes erd +\end_inset + +. + 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. +\end_layout + +\begin_layout Section +Setting up track sections +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Standard +A track section often covers: +\end_layout + +\begin_layout Itemize +A section on a main running line, between two signals +\end_layout + +\begin_layout Itemize +A single turnout +\end_layout + +\begin_layout Itemize +A rail crossing, or a set of turnouts acting as a double/single slip switch +\end_layout + +\begin_layout Itemize +A siding +\end_layout + +\begin_layout Standard +You will find some examples on how to interlock certain patterns later. +\end_layout + +\begin_layout Subsection +Track Circuit Breaks +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Standard +Setting up a TCB works as follows: +\end_layout + +\begin_layout Enumerate +Place a TCB node somewhere near the place where the circuit break is going + to be located. +\end_layout + +\begin_layout Enumerate +Right-click the TCB node +\end_layout + +\begin_layout Enumerate +Punch the rail which should act as TCB +\end_layout + +\begin_layout Standard +The result should look like this: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/screenshot_20180830_142551.png + width 10cm + +\end_inset + + +\end_layout + +\begin_layout Standard +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: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/Bildschirmfoto_2018-08-30_14-26-35.png + width 10cm + +\end_inset + + +\end_layout + +\begin_layout Standard +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 +\begin_inset Quotes eld +\end_inset + +End of interlocking +\begin_inset Quotes erd +\end_inset + +. + This means that there is no track section set up at this place. +\end_layout + +\begin_layout Standard +You should repeat this procedure once again a few meters away from the first + TCB to create a second TCB on the same track. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/Bildschirmfoto_2018-08-30_14-32-48.png + width 10cm + +\end_inset + + +\end_layout + +\begin_layout Standard +Once you have both bordering TCBs set up, you can now create the actual + track section. + To do this: +\end_layout + +\begin_layout Enumerate +Right-click one of the TCBs +\end_layout + +\begin_layout Enumerate +Locate the correct side (A or B) to create the track section +\end_layout + +\begin_layout Enumerate +Click +\begin_inset Quotes eld +\end_inset + +Create interlocked Track Section +\begin_inset Quotes erd +\end_inset + + in the formspec on the chosen side. +\end_layout + +\begin_layout Standard +Now, the text on the formspec has changed. + It shows something like this: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/Bildschirmfoto_2018-08-30_14-27-25.png + width 5cm + +\end_inset + + +\end_layout + +\begin_layout Standard +Clicking +\begin_inset Quotes eld +\end_inset + +Show Track Section +\begin_inset Quotes erd +\end_inset + + brings up another formspec: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/Bildschirmfoto_2018-08-30_14-28-32.png + width 5cm + +\end_inset + + +\end_layout + +\begin_layout Standard +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's only one, head over to +\begin_inset CommandInset ref +LatexCommand ref +reference "subsec:Long-track-sections," + +\end_inset + +. + You should now select a name for the track section, to identify it later. +\end_layout + +\begin_layout Standard +The same procedure is applicable when you create a turnout track section, + except that you have to set up three or more TCBs. +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Subsection +Long track sections, crossings and other edge cases +\begin_inset CommandInset label +LatexCommand label +name "subsec:Long-track-sections," + +\end_inset + + +\end_layout + +\begin_layout Subsubsection +Very long track sections +\end_layout + +\begin_layout Standard +If you try to set up a track section that is longer than 1000 nodes, advtrains + won'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: +\end_layout + +\begin_layout Enumerate +Go to the second TCB (the one that wasn't recognized). + It should show +\begin_inset Quotes eld +\end_inset + +End of Interlocking +\begin_inset Quotes erd +\end_inset + + on the relevant side. +\end_layout + +\begin_layout Enumerate +Click +\begin_inset Quotes eld +\end_inset + +Create interlocked track section +\begin_inset Quotes erd +\end_inset + +. + The section created will be different from the one that is already present. +\end_layout + +\begin_layout Enumerate +In the track section overview, click +\begin_inset Quotes eld +\end_inset + +Join into other section +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Enumerate +Go back to the first TCB, bring up the Track Section overview screen of + the first track section and click +\begin_inset Quotes eld +\end_inset + +Join with ??? +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Standard +The other, missing TCB should now appear in the list. + If you accidentally started such a joining procedure, click the +\begin_inset Quotes eld +\end_inset + +X +\begin_inset Quotes erd +\end_inset + + button on the right. +\end_layout + +\begin_layout Subsubsection +Rail crosses +\end_layout + +\begin_layout Standard +Since rail crosses are created by laying tracks across each other without + logical connection, there's no way for advtrains to know whether rails + cross each other. +\end_layout + +\begin_layout Standard +Rail crossings in interlocking systems are always one single track section, + which in most cases has 4 TCBs adjacent. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/Bildschirmfoto_2018-08-30_14-51-25.png + width 5cm + +\end_inset + + +\end_layout + +\begin_layout Standard +The procedure is quite similar to the one for long sections: First, create + two track sections for the branches, and then use the +\begin_inset Quotes eld +\end_inset + +Join +\begin_inset Quotes erd +\end_inset + + function to merge both sections into one. +\end_layout + +\begin_layout Subsubsection +Deleting and re-adding single TCBs to a section +\end_layout + +\begin_layout Standard +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: +\end_layout + +\begin_layout Itemize +In the TCB form, click the +\begin_inset Quotes eld +\end_inset + +Remove from section +\begin_inset Quotes erd +\end_inset + + button +\end_layout + +\begin_layout Itemize +In the track section form, first select the TCB in the list and then click + +\begin_inset Quotes eld +\end_inset + +Unlink selected TCB +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Standard +The result is that the TCB shows +\begin_inset Quotes eld +\end_inset + +End of Interlocking +\begin_inset Quotes erd +\end_inset + + and the section does not list the TCB as an endpoint anymore. +\end_layout + +\begin_layout Standard +The other case is adding a siding or a crossover, in which case one or more + TCBs still show +\begin_inset Quotes eld +\end_inset + +End of Interlocking +\begin_inset Quotes erd +\end_inset + + although they should be part of a section: +\end_layout + +\begin_layout Itemize +Go to another TCB that is registered in the track section and click +\begin_inset Quotes eld +\end_inset + +Update near TCBs +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Itemize +If that did not work, follow the procedure of creating a long track section +\end_layout + +\begin_layout Subsubsection +Dissolving sections +\end_layout + +\begin_layout Standard +If you made a mistake setting up something and you don't see any other way + to fix a misconfigured track section, you can always delete it using the + +\begin_inset Quotes eld +\end_inset + +Dissolve section +\begin_inset Quotes erd +\end_inset + + button. + This operation removes the track section and sets all TCBs that previously + belonged to the section as +\begin_inset Quotes eld +\end_inset + +End of Interlocking +\begin_inset Quotes erd +\end_inset + +. + This will always work and lets you start over new with setting up track + sections. +\end_layout + +\begin_layout Subsection +Interlocking patterns +\end_layout + +\begin_layout Standard +This section shows some examples on how you should set up track sections + on certain track configurations. +\end_layout + +\begin_layout Section +Signals and routes +\end_layout + +\begin_layout Standard +The purpose of signals is to inform trains about whether they can proceed + into the next section safely. + Making a section of track safe to pass for a train, turnouts need to be + set to the correct position and no other train should be allowed to cross + or share parts of the route with this train. +\end_layout + +\begin_layout Subsection +Assigning Signals to TCBs +\end_layout + +\begin_layout Standard +Signals in the advtrains interlocking system are positioned - like in real + life - at the border of track sections. +\end_layout + +\begin_layout Standard +When you set up a signal, do the following steps: +\end_layout + +\begin_layout Enumerate +If not already happened, set up a TCB (you don't need to, but are advised + to, configure track sections there) +\end_layout + +\begin_layout Enumerate +Place the signal a few meters in front of the TCB, so that trains stopping + at the signal do never pass the TCB +\end_layout + +\begin_layout Enumerate +Locate the side of the TCB which points in the direction that trains will + proceed past the signal, as shown in the figure below. +\end_layout + +\begin_layout Enumerate +Right-click the TCB, and click +\begin_inset Quotes eld +\end_inset + +Assign a signal +\begin_inset Quotes erd +\end_inset + + on this side. +\end_layout + +\begin_layout Enumerate +Punch the signal. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/assign_signal.png + width 8cm + +\end_inset + + +\end_layout + +\begin_layout Standard +You can assign a signal to each side of a TCB. + This is, for example, useful when creating block sections on a bi-directional + main running line. +\end_layout + +\begin_layout Subsection +The concept of routes +\end_layout + +\begin_layout Standard +A so-called route is a locked path between two signals, which locks all + turnouts in the correct position. +\end_layout + +\begin_layout Standard +Example: Imagine a station with 2 platforms on a single track running line. + We are looking at signal A. + You probably want trains coming from the right to go into platform 1 or + into platform 2, so you need to program 2 routes. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/route_ex1.png + width 7cm + +\end_inset + + +\end_layout + +\begin_layout Standard +This leads us to the most important aspect of route programming: Routes + always start at a signal (A) and end at a signal facing in the +\series bold +same direction +\series default + (D and E), not at an opposite-facing signal (B and C). + There are only few exceptions, we'll cover this later. +\end_layout + +\begin_layout Standard +When you set a route to make a train proceed on it, the interlocking system + ensures that: +\end_layout + +\begin_layout Itemize +There are no rail vehicles on the route +\end_layout + +\begin_layout Itemize +All turnouts are set to the correct position and it is impossible to move + them +\end_layout + +\begin_layout Itemize +No other routes can be set that would in any way conflict with this route +\end_layout + +\begin_layout Standard +For this to work, you need to specify all track sections the train will + pass along, as well as the positions of all turnouts that need to be locked. + Those are not only the turnouts that lay directly on the train's route, + but also some turnouts on adjacent tracks, the so-called flank protection. +\end_layout + +\begin_layout Standard +The purpose of flank protection is to prevent runaway trains and/or wagons + to pass into a route. + This is achieved by setting nearby turnouts to a position that points +\begin_inset Quotes eld +\end_inset + +away +\begin_inset Quotes erd +\end_inset + + from the route. + Example: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/route_ex2.png + width 7cm + +\end_inset + + +\end_layout + +\begin_layout Standard +The upper turnout, of course, needs to be locked in straight (normal) position, + while the lower one is not relevant for the route itself. + But what if the lower turnout was set to the diverging (reverse) position + and the driver of another train approaching signal B fails to see the red + light? This train would crash into the first one. + To minimise danger, that other train would need to be routed towards signal + D. +\end_layout + +\begin_layout Standard +There are, of course, situations, where both positions of a turnout would + conflict with a route equally. + In those situations, there's nothing you can do and no flank lock needs + to be set. +\end_layout + +\begin_layout Subsection +Shunt routes +\end_layout + +\begin_layout Standard +Operating railways is not all about driving trains around. + Coupling, decoupling and moving single engines, wagons or groups of wagons + across a station, called shunting, also plays an important role. +\end_layout + +\begin_layout Standard +Remember what we said about routes: There must be no rail vehicles on the + route. + So what if you have some goods wagons ready on a siding, and want to couple + an engine to it? You can not set a regular route into the siding, because + it is occupied. +\end_layout + +\begin_layout Standard +The solution is to program a second route into the siding, but with the + difference that it already ends at the rear-facing signal of it, so it + doesn't include the siding section itself: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/route_ex3.png + width 7cm + +\end_inset + + +\end_layout + +\begin_layout Standard +The Sht2 route then needs to show a shunt aspect, which instructs the driver + to proceed slowly and watch out for vehicles on the route. + To show a +\begin_inset Quotes eld +\end_inset + +free +\begin_inset Quotes erd +\end_inset + + aspect here would be wrong, because that would mean that the track is free + until the next main signal, which it is clearly not. +\end_layout + +\begin_layout Standard + +\shape italic +Note that advtrains_interlocking currently does not allow to set individual + aspects for routes, this is a feature still to be implemented soon. +\end_layout + +\begin_layout Standard +Shunt routes like this are, so far, the only exception to the +\begin_inset Quotes eld +\end_inset + +Routes should end at a signal facing the same direction +\begin_inset Quotes erd +\end_inset + + rule. +\end_layout + +\begin_layout Subsection +Route Release +\end_layout + +\begin_layout Standard +In early real-life interlocking systems, routes either had to be cancelled + by the signalman after the train had passed the route, or there was a single + release contact at the end of the route. + However, as interlocking systems evolved and the position of trains is + now roughly known by the track sections, portions of the route can be freed + as soon as the train has left the corresponding section. +\end_layout + +\begin_layout Standard +AdvTrains has chosen a modern approach to route releasing. + Each turnout lock is associated to a track section belonging to the route's + path. + Once the train leaves this section, all assigned locks are also freed. +\end_layout + +\begin_layout Subsection +Programming a route +\end_layout + +\begin_layout Standard +The route programming procedure is quite straightforward if you've read + the previous sections and understood how routes should be set. +\end_layout + +\begin_layout Standard +Routes always start at a signal. + You must have assigned the signal to a TCB, as described earlier. +\end_layout + +\begin_layout Standard +When you right-click the signal, it no longer changes its aspect. + Instead, a formspec pops up, showing you an (empty) list of routes with + the possibility to set them or to create new routes. + Click the +\begin_inset Quotes eld +\end_inset + +Create new route +\begin_inset Quotes erd +\end_inset + + button to start programming a new route. +\end_layout + +\begin_layout Standard +The form closes, and an arrow is displayed on the TCB. + You are now in +\begin_inset Quotes eld +\end_inset + +Route Programming +\begin_inset Quotes erd +\end_inset + + mode, programming the first track section of the route. + Now: +\end_layout + +\begin_layout Itemize +Put any turnouts you need to lock in the correct position (e.g. + by right-clicking them). + This includes flank protection. +\end_layout + +\begin_layout Itemize +Punch them. + This makes a marker saying +\begin_inset Quotes eld +\end_inset + +Route Lock Editing +\begin_inset Quotes erd +\end_inset + + appear. +\end_layout + +\begin_layout Itemize +If you punch a turnout again, or punch the marker, you can remove the lock + again. +\end_layout + +\begin_layout Itemize +When you've locked all turnouts in the current section, go to and punch + the TCB that is the border to the next track section the train proceeds + into. +\end_layout + +\begin_layout Standard +Once you've done this, the lock markers change to +\begin_inset Quotes eld +\end_inset + +Route Lock +\begin_inset Quotes erd +\end_inset + +, telling they can't be changed anymore. + Repeat the above procedure until you have punched the final TCB, at which + the route should end. + As mentioned before, there should be a signal at this place, however this + is not enforced. + Now, run the chat command +\family typewriter +/at_rp_set <name of route> +\family default + to complete programming the route. +\end_layout + +\begin_layout Standard +A few hints: +\end_layout + +\begin_layout Itemize +If one turnout should be locked by more than one section, set the lock only + in the +\family typewriter +\series bold +last +\family default +\series default + of those sections. + Locking the same turnout in multiple sections of a single route results + in undefined behavior! +\end_layout + +\begin_layout Itemize +If you accidentally punched a TCB, you can run +\family typewriter +/at_rp_back +\family default + to undo this and return to the previous section. + Due to a bug, you have to re-set all locks of this section. +\end_layout + +\begin_layout Itemize +If you want to stop programming the entire route without saving it, run + +\family typewriter +/at_rp_discard +\end_layout + +\begin_layout Section +Interlocking system operation +\end_layout + +\begin_layout Standard +Setting up the interlocking for a portion of a railway network requires + some time, experience and planning, but once done, there's not much to + do anymore to make trains run on your, now safer, railway. + This section covers some useful practices to route trains across your network. +\end_layout + +\begin_layout Standard +At the moment, routes can only be set by clicking the signal or via LuaATC, + except if you use automatic working. + It is planned to control this via the onboard computer and via a +\begin_inset Quotes eld +\end_inset + +signal box +\begin_inset Quotes erd +\end_inset + + view based on the currently broken itrainmap. +\end_layout + +\begin_layout Subsection +Simple route setting and cancelling +\end_layout + +\begin_layout Standard +To set a route, simply right-click the signal, select a route and click + +\begin_inset Quotes eld +\end_inset + +set route +\begin_inset Quotes erd +\end_inset + +. + If there are no conflicts, the signal turns green and the train is allowed + to proceed. +\end_layout + +\begin_layout Standard +It may be possible that the route can not be set, because one or more other + routes conflict with the current one, or a section is blocked. + In this case, the signal stays red, and the conflicting item is shown in + the formspec. + As soon as the conflict is resolved (by cancellation or release of the + conflicting route, or the section becoming free), the requested route will + be set and the signal turns green. +\end_layout + +\begin_layout Standard +If a route is either requested or set, it can be cancelled from the signalling + formspec. + This means that all turnouts and sections are released, and the signal + reverts back to red. + This of course only works when the train has not passed the signal yet. + There is no mechanism for Approach Locking. +\end_layout + +\begin_layout Subsection +Automatic Working +\end_layout + +\begin_layout Standard +Block signals on main running lines usually only have a single route to + set, the one proceeding along the main line. + Their purpose is only to show whether there are trains in the next section. + So, it would be convenient if this only route would set itself again after + a train passed. +\end_layout + +\begin_layout Standard +This is what Automatic Working is for. + Set a route, click +\begin_inset Quotes eld +\end_inset + +Enable Automatic Working +\begin_inset Quotes erd +\end_inset + +, and as soon as a train passes, the route is automatically re-set. +\end_layout + +\begin_layout Standard +This function is nearly identical to SimSig automatic signals. + It can also be useful on a line with high traffic, when there's a low-frequente +d access to a siding. + You'd enable automatic working for the main route and cancel it only when + you need a train to go into the siding. +\end_layout + +\begin_layout Section +Final notes +\end_layout + +\begin_layout Standard +The interlocking system is mainly finished, though there are still some + plans and ideas. + They include: +\end_layout + +\begin_layout Itemize +Setting routes from inside a train (via onboard computer) +\end_layout + +\begin_layout Itemize +Signalbox panels, as revival of itrainmap +\end_layout + +\begin_layout Itemize +Individual signal aspects for routes +\end_layout + +\begin_layout Itemize +Distant signals +\end_layout + +\begin_layout Itemize +On-Train head-up display for oncoming signals (they have something like + this in Czech Republic, I forgot how it's called.) +\end_layout + +\begin_layout Standard +Apart from this, there's the large oncoming project of a new timetable-based + train automation system, but this will take some time to evolve and is + out of the scope of this document. +\end_layout + +\begin_layout Standard +If you have any suggestions, corrections, improvements, criticism or cute + kittens and stuff, you can always contact me by various means (Forum PM, + E-Mail (orwell@bleipb.de), Linuxworks server chat a.s.o.). + Have fun! +\end_layout + +\begin_layout Standard +- orwell +\end_layout + +\end_body +\end_document diff --git a/assets/interlocking.lyx~ b/assets/interlocking.lyx~ new file mode 100644 index 0000000..0a881dc --- /dev/null +++ b/assets/interlocking.lyx~ @@ -0,0 +1,1109 @@ +#LyX 2.2 created this file. For more info see http://www.lyx.org/ +\lyxformat 508 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass paper +\use_default_options true +\maintain_unincluded_children false +\language english +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry true +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\index Index +\shortcut idx +\color #008000 +\end_index +\leftmargin 1cm +\topmargin 1cm +\rightmargin 1cm +\bottommargin 1cm +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation 0bp +\quotes_language english +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Title +Minetest Mod - Advanced Trains [advtrains] +\end_layout + +\begin_layout Title +Interlocking System Guide +\end_layout + +\begin_layout Section +Introduction +\end_layout + +\begin_layout Standard +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 +\begin_inset Quotes eld +\end_inset + +railway interlocking +\begin_inset Quotes erd +\end_inset + + on the internet. +\end_layout + +\begin_layout Standard +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 +\begin_inset Quotes eld +\end_inset + +Proceed +\begin_inset Quotes erd +\end_inset + +. + 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. +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Standard +If you are looking for a place to learn how real-world interlocking systems + work, have a look at +\begin_inset Quotes eld +\end_inset + +SimSig +\begin_inset Quotes erd +\end_inset + +. + 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. +\end_layout + +\begin_layout Section +Setting up track sections +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Standard +A track section often covers: +\end_layout + +\begin_layout Itemize +A section on a main running line, between two signals +\end_layout + +\begin_layout Itemize +A single turnout +\end_layout + +\begin_layout Itemize +A rail crossing, or a set of turnouts acting as a double/single slip switch +\end_layout + +\begin_layout Itemize +A siding +\end_layout + +\begin_layout Standard +You will find some examples on how to interlock certain patterns later. +\end_layout + +\begin_layout Subsection +Track Circuit Breaks +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Standard +Setting up a TCB works as follows: +\end_layout + +\begin_layout Enumerate +Place a TCB node somewhere near the place where the circuit break is going + to be located. +\end_layout + +\begin_layout Enumerate +Right-click the TCB node +\end_layout + +\begin_layout Enumerate +Punch the rail which should act as TCB +\end_layout + +\begin_layout Standard +The result should look like this: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/screenshot_20180830_142551.png + width 10cm + +\end_inset + + +\end_layout + +\begin_layout Standard +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: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/Bildschirmfoto_2018-08-30_14-26-35.png + width 10cm + +\end_inset + + +\end_layout + +\begin_layout Standard +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 +\begin_inset Quotes eld +\end_inset + +End of interlocking +\begin_inset Quotes erd +\end_inset + +. + This means that there is no track section set up at this place. +\end_layout + +\begin_layout Standard +You should repeat this procedure once again a few meters away from the first + TCB to create a second TCB on the same track. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/Bildschirmfoto_2018-08-30_14-32-48.png + width 10cm + +\end_inset + + +\end_layout + +\begin_layout Standard +Once you have both bordering TCBs set up, you can now create the actual + track section. + To do this: +\end_layout + +\begin_layout Enumerate +Right-click one of the TCBs +\end_layout + +\begin_layout Enumerate +Locate the correct side (A or B) to create the track section +\end_layout + +\begin_layout Enumerate +Click +\begin_inset Quotes eld +\end_inset + +Create interlocked Track Section +\begin_inset Quotes erd +\end_inset + + in the formspec on the chosen side. +\end_layout + +\begin_layout Standard +Now, the text on the formspec has changed. + It shows something like this: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/Bildschirmfoto_2018-08-30_14-27-25.png + width 5cm + +\end_inset + + +\end_layout + +\begin_layout Standard +Clicking +\begin_inset Quotes eld +\end_inset + +Show Track Section +\begin_inset Quotes erd +\end_inset + + brings up another formspec: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/Bildschirmfoto_2018-08-30_14-28-32.png + width 5cm + +\end_inset + + +\end_layout + +\begin_layout Standard +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's only one, head over to +\begin_inset CommandInset ref +LatexCommand ref +reference "subsec:Long-track-sections," + +\end_inset + +. + You should now select a name for the track section, to identify it later. +\end_layout + +\begin_layout Standard +The same procedure is applicable when you create a turnout track section, + except that you have to set up three or more TCBs. +\end_layout + +\begin_layout Standard +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. +\end_layout + +\begin_layout Subsection +Long track sections, crossings and other edge cases +\begin_inset CommandInset label +LatexCommand label +name "subsec:Long-track-sections," + +\end_inset + + +\end_layout + +\begin_layout Subsubsection +Very long track sections +\end_layout + +\begin_layout Standard +If you try to set up a track section that is longer than 1000 nodes, advtrains + won'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: +\end_layout + +\begin_layout Enumerate +Go to the second TCB (the one that wasn't recognized). + It should show +\begin_inset Quotes eld +\end_inset + +End of Interlocking +\begin_inset Quotes erd +\end_inset + + on the relevant side. +\end_layout + +\begin_layout Enumerate +Click +\begin_inset Quotes eld +\end_inset + +Create interlocked track section +\begin_inset Quotes erd +\end_inset + +. + The section created will be different from the one that is already present. +\end_layout + +\begin_layout Enumerate +In the track section overview, click +\begin_inset Quotes eld +\end_inset + +Join into other section +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Enumerate +Go back to the first TCB, bring up the Track Section overview screen of + the first track section and click +\begin_inset Quotes eld +\end_inset + +Join with ??? +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Standard +The other, missing TCB should now appear in the list. + If you accidentally started such a joining procedure, click the +\begin_inset Quotes eld +\end_inset + +X +\begin_inset Quotes erd +\end_inset + + button on the right. +\end_layout + +\begin_layout Subsubsection +Rail crosses +\end_layout + +\begin_layout Standard +Since rail crosses are created by laying tracks across each other without + logical connection, there's no way for advtrains to know whether rails + cross each other. +\end_layout + +\begin_layout Standard +Rail crossings in interlocking systems are always one single track section, + which in most cases has 4 TCBs adjacent. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/Bildschirmfoto_2018-08-30_14-51-25.png + width 5cm + +\end_inset + + +\end_layout + +\begin_layout Standard +The procedure is quite similar to the one for long sections: First, create + two track sections for the branches, and then use the +\begin_inset Quotes eld +\end_inset + +Join +\begin_inset Quotes erd +\end_inset + + function to merge both sections into one. +\end_layout + +\begin_layout Subsubsection +Deleting and re-adding single TCBs to a section +\end_layout + +\begin_layout Standard +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: +\end_layout + +\begin_layout Itemize +In the TCB form, click the +\begin_inset Quotes eld +\end_inset + +Remove from section +\begin_inset Quotes erd +\end_inset + + button +\end_layout + +\begin_layout Itemize +In the track section form, first select the TCB in the list and then click + +\begin_inset Quotes eld +\end_inset + +Unlink selected TCB +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Standard +The result is that the TCB shows +\begin_inset Quotes eld +\end_inset + +End of Interlocking +\begin_inset Quotes erd +\end_inset + + and the section does not list the TCB as an endpoint anymore. +\end_layout + +\begin_layout Standard +The other case is adding a siding or a crossover, in which case one or more + TCBs still show +\begin_inset Quotes eld +\end_inset + +End of Interlocking +\begin_inset Quotes erd +\end_inset + + although they should be part of a section: +\end_layout + +\begin_layout Itemize +Go to another TCB that is registered in the track section and click +\begin_inset Quotes eld +\end_inset + +Update near TCBs +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Itemize +If that did not work, follow the procedure of creating a long track section +\end_layout + +\begin_layout Subsubsection +Dissolving sections +\end_layout + +\begin_layout Standard +If you made a mistake setting up something and you don't see any other way + to fix a misconfigured track section, you can always delete it using the + +\begin_inset Quotes eld +\end_inset + +Dissolve section +\begin_inset Quotes erd +\end_inset + + button. + This operation removes the track section and sets all TCBs that previously + belonged to the section as +\begin_inset Quotes eld +\end_inset + +End of Interlocking +\begin_inset Quotes erd +\end_inset + +. + This will always work and lets you start over new with setting up track + sections. +\end_layout + +\begin_layout Subsection +Interlocking patterns +\end_layout + +\begin_layout Standard +This section shows some examples on how you should set up track sections + on certain track configurations. +\end_layout + +\begin_layout Section +Signals and routes +\end_layout + +\begin_layout Standard +The purpose of signals is to inform trains about whether they can proceed + into the next section safely. + Making a section of track safe to pass for a train, turnouts need to be + set to the correct position and no other train should be allowed to cross + or share parts of the route with this train. +\end_layout + +\begin_layout Subsection +Assigning Signals to TCBs +\end_layout + +\begin_layout Standard +Signals in the advtrains interlocking system are positioned - like in real + life - at the border of track sections. +\end_layout + +\begin_layout Standard +When you set up a signal, do the following steps: +\end_layout + +\begin_layout Enumerate +If not already happened, set up a TCB (you don't need to, but are advised + to, configure track sections there) +\end_layout + +\begin_layout Enumerate +Place the signal a few meters in front of the TCB, so that trains stopping + at the signal do never pass the TCB +\end_layout + +\begin_layout Enumerate +Locate the side of the TCB which points in the direction that trains will + proceed past the signal, as shown in the figure below. +\end_layout + +\begin_layout Enumerate +Right-click the TCB, and click +\begin_inset Quotes eld +\end_inset + +Assign a signal +\begin_inset Quotes erd +\end_inset + + on this side. +\end_layout + +\begin_layout Enumerate +Punch the signal. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/assign_signal.png + width 8cm + +\end_inset + + +\end_layout + +\begin_layout Standard +You can assign a signal to each side of a TCB. + This is, for example, useful when creating block sections on a bi-directional + main running line. +\end_layout + +\begin_layout Subsection +The concept of routes +\end_layout + +\begin_layout Standard +A so-called route is a locked path between two signals, which locks all + turnouts in the correct position. +\end_layout + +\begin_layout Standard +Example: Imagine a station with 2 platforms on a single track running line. + We are looking at signal A. + You probably want trains coming from the right to go into platform 1 or + into platform 2, so you need to program 2 routes. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/route_ex1.png + width 7cm + +\end_inset + + +\end_layout + +\begin_layout Standard +This leads us to the most important aspect of route programming: Routes + always start at a signal (A) and end at a signal facing in the +\series bold +same direction +\series default + (D and E), not at an opposite-facing signal (B and C). + There are only few exceptions, we'll cover this later. +\end_layout + +\begin_layout Standard +When you set a route to make a train proceed on it, the interlocking system + ensures that: +\end_layout + +\begin_layout Itemize +There are no rail vehicles on the route +\end_layout + +\begin_layout Itemize +All turnouts are set to the correct position and it is impossible to move + them +\end_layout + +\begin_layout Itemize +No other routes can be set that would in any way conflict with this route +\end_layout + +\begin_layout Standard +For this to work, you need to specify all track sections the train will + pass along, as well as the positions of all turnouts that need to be locked. + Those are not only the turnouts that lay directly on the train's route, + but also some turnouts on adjacent tracks, the so-called flank protection. +\end_layout + +\begin_layout Standard +The purpose of flank protection is to prevent runaway trains and/or wagons + to pass into a route. + This is achieved by setting nearby turnouts to a position that points +\begin_inset Quotes eld +\end_inset + +away +\begin_inset Quotes erd +\end_inset + + from the route. + Example: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/route_ex2.png + width 7cm + +\end_inset + + +\end_layout + +\begin_layout Standard +The upper turnout, of course, needs to be locked in straight (normal) position, + while the lower one is not relevant for the route itself. + But what if the lower turnout was set to the diverging (reverse) position + and the driver of another train approaching signal B fails to see the red + light? This train would crash into the first one. + To minimise danger, that other train would need to be routed towards signal + D. +\end_layout + +\begin_layout Standard +There are, of course, situations, where both positions of a turnout would + conflict with a route equally. + In those situations, there's nothing you can do and no flank lock needs + to be set. +\end_layout + +\begin_layout Subsection +Shunt routes +\end_layout + +\begin_layout Standard +Operating railways is not all about driving trains around. + Coupling, decoupling and moving single engines, wagons or groups of wagons + across a station, called shunting, also plays an important role. +\end_layout + +\begin_layout Standard +Remember what we said about routes: There must be no rail vehicles on the + route. + So what if you have some goods wagons ready on a siding, and want to couple + an engine to it? You can not set a regular route into the siding, because + it is occupied. +\end_layout + +\begin_layout Standard +The solution is to program a second route into the siding, but with the + difference that it already ends at the rear-facing signal of it, so it + doesn't include the siding section itself: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/route_ex3.png + width 7cm + +\end_inset + + +\end_layout + +\begin_layout Standard +The Sht2 route then needs to show a shunt aspect, which instructs the driver + to proceed slowly and watch out for vehicles on the route. + To show a +\begin_inset Quotes eld +\end_inset + +free +\begin_inset Quotes erd +\end_inset + + aspect here would be wrong, because that would mean that the track is free + until the next main signal, which it is clearly not. +\end_layout + +\begin_layout Standard + +\shape italic +Note that advtrains_interlocking currently does not allow to set individual + aspects for routes, this is a feature still to be implemented soon. +\end_layout + +\begin_layout Standard +Shunt routes like this are, so far, the only exception to the +\begin_inset Quotes eld +\end_inset + +Routes should end at a signal facing the same direction +\begin_inset Quotes erd +\end_inset + + rule. +\end_layout + +\begin_layout Subsection +Route Release +\end_layout + +\begin_layout Standard +In early real-life interlocking systems, routes either had to be cancelled + by the signalman after the train had passed the route, or there was a single + release contact at the end of the route. + However, as interlocking systems evolved and the position of trains is + now roughly known by the track sections, portions of the route can be freed + as soon as the train has left the corresponding section. +\end_layout + +\begin_layout Standard +AdvTrains has chosen a modern approach to route releasing. + Each turnout lock is associated to a track section belonging to the route's + path. + Once the train leaves this section, all assigned locks are also freed. +\end_layout + +\begin_layout Subsection +Programming a route +\end_layout + +\begin_layout Standard +The route programming procedure is quite straightforward if you've read + the previous sections and understood how routes should be set. +\end_layout + +\begin_layout Standard +Routes always start at a signal. + You must have assigned the signal to a TCB, as described earlier. +\end_layout + +\begin_layout Standard +When you right-click the signal, it no longer changes its aspect. + Instead, a formspec pops up, showing you an (empty) list of routes with + the possibility to set them or to create new routes. + Click the +\begin_inset Quotes eld +\end_inset + +Create new route +\begin_inset Quotes erd +\end_inset + + button to start programming a new route. +\end_layout + +\begin_layout Standard +The form closes, and an arrow is displayed on the TCB. + You are now in +\begin_inset Quotes eld +\end_inset + +Route Programming +\begin_inset Quotes erd +\end_inset + + mode, programming the first track section of the route. + Now: +\end_layout + +\begin_layout Itemize +Put any turnouts you need to lock in the correct position (e.g. + by right-clicking them). + This includes flank protection. +\end_layout + +\begin_layout Itemize +Punch them. + This makes a marker saying +\begin_inset Quotes eld +\end_inset + +Route Lock Editing +\begin_inset Quotes erd +\end_inset + + appear. +\end_layout + +\begin_layout Itemize +If you punch a turnout again, or punch the marker, you can remove the lock + again. +\end_layout + +\begin_layout Itemize +When you've locked all turnouts in the current section, go to and punch + the TCB that is the border to the next track section the train proceeds + into. +\end_layout + +\begin_layout Standard +Once you've done this, the lock markers change to +\begin_inset Quotes eld +\end_inset + +Route Lock +\begin_inset Quotes erd +\end_inset + +, telling they can't be changed anymore. + Repeat the above procedure until you have punched the final TCB, at which + the route should end. + As mentioned before, there should be a signal at this place, however this + is not enforced. + Now, run the chat command +\family typewriter +/at_rp_set <name of route> +\family default + to complete programming the route. +\end_layout + +\begin_layout Standard +A few hints: +\end_layout + +\begin_layout Itemize +If one turnout should be locked by more than one section, set the lock only + in the +\family typewriter +\series bold +last +\family default +\series default + of those sections. + Locking the same turnout in multiple sections of a single route results + in undefined behavior! +\end_layout + +\begin_layout Itemize +If you accidentally punched a TCB, you can run +\family typewriter +/at_rp_back +\family default + to undo this and return to the previous section. + Due to a bug, you have to re-set all locks of this section. +\end_layout + +\begin_layout Itemize +If you want to stop programming the entire route without saving it, run + +\family typewriter +/at_rp_discard +\end_layout + +\begin_layout Section +Interlocking system operation +\end_layout + +\begin_layout Standard +Setting up the interlocking for a portion of a railway network requires + some time, experience and planning, but once done, there's not much to + do anymore to make trains run on your, now safer, railway. + This section covers some useful practices to route trains across your network. +\end_layout + +\begin_layout Standard +At the moment, routes can only be set by clicking the signal or via LuaATC, + except if you use automatic working. + It is planned to control this via the onboard computer and via a +\begin_inset Quotes eld +\end_inset + +signal box +\begin_inset Quotes erd +\end_inset + + view based on the currently broken itrainmap. +\end_layout + +\begin_layout Subsection +Simple route setting and cancelling +\end_layout + +\begin_layout Standard +To set a route, simply right-click the signal, select a route and click + +\begin_inset Quotes eld +\end_inset + +set route +\begin_inset Quotes erd +\end_inset + +. + If there are no conflicts, the signal turns green and the train is allowed + to proceed. +\end_layout + +\begin_layout Standard +It may be possible that the route can not be set, because one or more other + routes conflict with the current one, or a section is blocked. + In this case, the signal stays red, and the conflicting item is shown in + the formspec. + As soon as the conflict is resolved (by cancellation or release of the + conflicting route, or the section becoming free), the requested route will + be set and the signal turns green. +\end_layout + +\begin_layout Standard +If a route is either requested or set, it can be cancelled from the signalling + formspec. + This means that all turnouts and sections are released, and the signal + reverts back to red. + This of course only works when the train has not passed the signal yet. + There is no mechanism for Approach Locking. +\end_layout + +\begin_layout Subsection +Automatic Working +\end_layout + +\begin_layout Standard +Block signals on main running lines usually only have a single route to + set, the one proceeding along the main line. + Their purpose is only to show whether there are trains in the next section. + So, it would be convenient if this only route would set itself again after + a train passed. +\end_layout + +\begin_layout Standard +This is what Automatic Working is for. + Set a route, click +\begin_inset Quotes eld +\end_inset + +Enable Automatic Working +\begin_inset Quotes erd +\end_inset + +, and as soon as a train passes, the route is automatically re-set. +\end_layout + +\begin_layout Standard +This function is nearly identical to SimSig automatic signals. + It can also be useful on a line with high traffic, when there's a low-frequente +d access to a siding. + You'd enable automatic working for the main route and cancel it only when + you need a train to go into the siding. +\end_layout + +\end_body +\end_document diff --git a/assets/lyx_img/Bildschirmfoto_2018-08-30_14-26-35.png b/assets/lyx_img/Bildschirmfoto_2018-08-30_14-26-35.png Binary files differnew file mode 100644 index 0000000..468ce25 --- /dev/null +++ b/assets/lyx_img/Bildschirmfoto_2018-08-30_14-26-35.png diff --git a/assets/lyx_img/Bildschirmfoto_2018-08-30_14-27-25.png b/assets/lyx_img/Bildschirmfoto_2018-08-30_14-27-25.png Binary files differnew file mode 100644 index 0000000..82253bc --- /dev/null +++ b/assets/lyx_img/Bildschirmfoto_2018-08-30_14-27-25.png diff --git a/assets/lyx_img/Bildschirmfoto_2018-08-30_14-28-32.png b/assets/lyx_img/Bildschirmfoto_2018-08-30_14-28-32.png Binary files differnew file mode 100644 index 0000000..0cbed7d --- /dev/null +++ b/assets/lyx_img/Bildschirmfoto_2018-08-30_14-28-32.png diff --git a/assets/lyx_img/Bildschirmfoto_2018-08-30_14-32-48.png b/assets/lyx_img/Bildschirmfoto_2018-08-30_14-32-48.png Binary files differnew file mode 100644 index 0000000..c3aa984 --- /dev/null +++ b/assets/lyx_img/Bildschirmfoto_2018-08-30_14-32-48.png diff --git a/assets/lyx_img/Bildschirmfoto_2018-08-30_14-51-25.png b/assets/lyx_img/Bildschirmfoto_2018-08-30_14-51-25.png Binary files differnew file mode 100644 index 0000000..1091455 --- /dev/null +++ b/assets/lyx_img/Bildschirmfoto_2018-08-30_14-51-25.png diff --git a/assets/lyx_img/assign_signal.png b/assets/lyx_img/assign_signal.png Binary files differnew file mode 100644 index 0000000..cd97f05 --- /dev/null +++ b/assets/lyx_img/assign_signal.png diff --git a/assets/lyx_img/route_ex1.png b/assets/lyx_img/route_ex1.png Binary files differnew file mode 100644 index 0000000..048294d --- /dev/null +++ b/assets/lyx_img/route_ex1.png diff --git a/assets/lyx_img/route_ex2.png b/assets/lyx_img/route_ex2.png Binary files differnew file mode 100644 index 0000000..ed14540 --- /dev/null +++ b/assets/lyx_img/route_ex2.png diff --git a/assets/lyx_img/route_ex3.png b/assets/lyx_img/route_ex3.png Binary files differnew file mode 100644 index 0000000..fdcc785 --- /dev/null +++ b/assets/lyx_img/route_ex3.png diff --git a/assets/lyx_img/screenshot_20180830_142551.png b/assets/lyx_img/screenshot_20180830_142551.png Binary files differnew file mode 100644 index 0000000..77e05f8 --- /dev/null +++ b/assets/lyx_img/screenshot_20180830_142551.png diff --git a/assets/manual.html.LyXconv/0_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-43-29.png b/assets/manual.html.LyXconv/0_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-43-29.png Binary files differnew file mode 100644 index 0000000..2e8301d --- /dev/null +++ b/assets/manual.html.LyXconv/0_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-43-29.png diff --git a/assets/manual.html.LyXconv/10_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-48-54.png b/assets/manual.html.LyXconv/10_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-48-54.png Binary files differnew file mode 100644 index 0000000..7e42a15 --- /dev/null +++ b/assets/manual.html.LyXconv/10_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-48-54.png diff --git a/assets/manual.html.LyXconv/11_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-50-27.png b/assets/manual.html.LyXconv/11_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-50-27.png Binary files differnew file mode 100644 index 0000000..af02a2a --- /dev/null +++ b/assets/manual.html.LyXconv/11_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-50-27.png diff --git a/assets/manual.html.LyXconv/12_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-51-02.png b/assets/manual.html.LyXconv/12_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-51-02.png Binary files differnew file mode 100644 index 0000000..134002d --- /dev/null +++ b/assets/manual.html.LyXconv/12_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-51-02.png diff --git a/assets/manual.html.LyXconv/13_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-58-39.png b/assets/manual.html.LyXconv/13_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-58-39.png Binary files differnew file mode 100644 index 0000000..63d8cc6 --- /dev/null +++ b/assets/manual.html.LyXconv/13_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-58-39.png diff --git a/assets/manual.html.LyXconv/14_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-58-20.png b/assets/manual.html.LyXconv/14_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-58-20.png Binary files differnew file mode 100644 index 0000000..5bc3da2 --- /dev/null +++ b/assets/manual.html.LyXconv/14_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-58-20.png diff --git a/assets/manual.html.LyXconv/15_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2017-03-09_11-33-09.png b/assets/manual.html.LyXconv/15_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2017-03-09_11-33-09.png Binary files differnew file mode 100644 index 0000000..ebe6ada --- /dev/null +++ b/assets/manual.html.LyXconv/15_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2017-03-09_11-33-09.png diff --git a/assets/manual.html.LyXconv/16_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2017-03-09_11-42-49.png b/assets/manual.html.LyXconv/16_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2017-03-09_11-42-49.png Binary files differnew file mode 100644 index 0000000..7084c7d --- /dev/null +++ b/assets/manual.html.LyXconv/16_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2017-03-09_11-42-49.png diff --git a/assets/manual.html.LyXconv/17_home_moritz_Home_Projekte_Minetest_minetest____ssets_manual_img_screenshot_20161203_231622.png b/assets/manual.html.LyXconv/17_home_moritz_Home_Projekte_Minetest_minetest____ssets_manual_img_screenshot_20161203_231622.png Binary files differnew file mode 100644 index 0000000..6a667b9 --- /dev/null +++ b/assets/manual.html.LyXconv/17_home_moritz_Home_Projekte_Minetest_minetest____ssets_manual_img_screenshot_20161203_231622.png diff --git a/assets/manual.html.LyXconv/1_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-04-12.png b/assets/manual.html.LyXconv/1_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-04-12.png Binary files differnew file mode 100644 index 0000000..1c5c088 --- /dev/null +++ b/assets/manual.html.LyXconv/1_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-04-12.png diff --git a/assets/manual.html.LyXconv/2_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-04-57.png b/assets/manual.html.LyXconv/2_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-04-57.png Binary files differnew file mode 100644 index 0000000..9c0dd3e --- /dev/null +++ b/assets/manual.html.LyXconv/2_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-04-57.png diff --git a/assets/manual.html.LyXconv/3_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-05-51.png b/assets/manual.html.LyXconv/3_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-05-51.png Binary files differnew file mode 100644 index 0000000..3eae023 --- /dev/null +++ b/assets/manual.html.LyXconv/3_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-05-51.png diff --git a/assets/manual.html.LyXconv/4_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-07-13.png b/assets/manual.html.LyXconv/4_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-07-13.png Binary files differnew file mode 100644 index 0000000..6da1b3f --- /dev/null +++ b/assets/manual.html.LyXconv/4_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-07-13.png diff --git a/assets/manual.html.LyXconv/5_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-56-34.png b/assets/manual.html.LyXconv/5_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-56-34.png Binary files differnew file mode 100644 index 0000000..c57002d --- /dev/null +++ b/assets/manual.html.LyXconv/5_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-56-34.png diff --git a/assets/manual.html.LyXconv/6_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-08-02.png b/assets/manual.html.LyXconv/6_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-08-02.png Binary files differnew file mode 100644 index 0000000..83d0249 --- /dev/null +++ b/assets/manual.html.LyXconv/6_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-08-02.png diff --git a/assets/manual.html.LyXconv/7_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-09-01.png b/assets/manual.html.LyXconv/7_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-09-01.png Binary files differnew file mode 100644 index 0000000..be586b6 --- /dev/null +++ b/assets/manual.html.LyXconv/7_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-09-01.png diff --git a/assets/manual.html.LyXconv/8_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-10-15.png b/assets/manual.html.LyXconv/8_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-10-15.png Binary files differnew file mode 100644 index 0000000..00d2ded --- /dev/null +++ b/assets/manual.html.LyXconv/8_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-10-15.png diff --git a/assets/manual.html.LyXconv/9_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-45-38.png b/assets/manual.html.LyXconv/9_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-45-38.png Binary files differnew file mode 100644 index 0000000..f535adb --- /dev/null +++ b/assets/manual.html.LyXconv/9_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-45-38.png diff --git a/assets/manual.html.LyXconv/manual.css b/assets/manual.html.LyXconv/manual.css new file mode 100644 index 0000000..ed26400 --- /dev/null +++ b/assets/manual.html.LyXconv/manual.css @@ -0,0 +1,112 @@ + +/* start css.sty */ +.ecsx-1728{font-size:170%; font-weight: bold;} +.ecsx-1728{ font-weight: bold;} +.ecsx-1728{ font-weight: bold;} +.ecsx-1728{ font-weight: bold;} +.ecsx-1728{ font-weight: bold;} +.ecsx-1200{font-size:120%; font-weight: bold;} +.ecsx-1200{ font-weight: bold;} +.ecsx-1200{ font-weight: bold;} +.ecsx-1200{ font-weight: bold;} +.ecsx-1200{ font-weight: bold;} +.ectt-1000{ font-family: monospace;} +.ectt-1000{ font-family: monospace;} +.ectt-1000{ font-family: monospace;} +.ectt-1000{ font-family: monospace;} +.ectt-1000{ font-family: monospace;} +.ecsx-1000{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +.ecsx-1000{ font-weight: bold;} +p.noindent { text-indent: 0em } +td p.noindent { text-indent: 0em; margin-top:0em; } +p.nopar { text-indent: 0em; } +p.indent{ text-indent: 1.5em } +@media print {div.crosslinks {visibility:hidden;}} +a img { border-top: 0; border-left: 0; border-right: 0; } +center { margin-top:1em; margin-bottom:1em; } +td center { margin-top:0em; margin-bottom:0em; } +.Canvas { position:relative; } +img.math{vertical-align:middle;} +li p.indent { text-indent: 0em } +li p:first-child{ margin-top:0em; } +li p:last-child, li div:last-child { margin-bottom:0.5em; } +li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; } +.enumerate1 {list-style-type:decimal;} +.enumerate2 {list-style-type:lower-alpha;} +.enumerate3 {list-style-type:lower-roman;} +.enumerate4 {list-style-type:upper-alpha;} +div.newtheorem { margin-bottom: 2em; margin-top: 2em;} +.obeylines-h,.obeylines-v {white-space: nowrap; } +div.obeylines-v p { margin-top:0; margin-bottom:0; } +.overline{ text-decoration:overline; } +.overline img{ border-top: 1px solid black; } +td.displaylines {text-align:center; white-space:nowrap;} +.centerline {text-align:center;} +.rightline {text-align:right;} +div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; } +.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.fbox {display:table} +div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.minipage{width:100%;} +div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} +div.center div {text-align: left;} +div.flushright, div.flushright div.flushright {text-align: right;} +div.flushright div {text-align: left;} +div.flushleft {text-align: left;} +.underline{ text-decoration:underline; } +.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } +.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +.framebox-c {text-align:center;} +.framebox-l {text-align:left;} +.framebox-r {text-align:right;} +span.thank-mark{ vertical-align: super } +span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } +div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } +table.tabular td p{margin-top:0em;} +table.tabular {margin-left: auto; margin-right: auto;} +td p:first-child{ margin-top:0em; } +td p:last-child{ margin-bottom:0em; } +div.td00{ margin-left:0pt; margin-right:0pt; } +div.td01{ margin-left:0pt; margin-right:5pt; } +div.td10{ margin-left:5pt; margin-right:0pt; } +div.td11{ margin-left:5pt; margin-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +td.td00{ padding-left:0pt; padding-right:0pt; } +td.td01{ padding-left:0pt; padding-right:5pt; } +td.td10{ padding-left:5pt; padding-right:0pt; } +td.td11{ padding-left:5pt; padding-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +.hline hr, .cline hr{ height : 1px; margin:0px; } +.tabbing-right {text-align:right;} +span.TEX {letter-spacing: -0.125em; } +span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} +a span.TEX span.E {text-decoration: none; } +span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} +span.LATEX span.TEX{ position:relative; left: -0.4em; } +div.float, div.figure {margin-left: auto; margin-right: auto;} +div.float img {text-align:center;} +div.figure img {text-align:center;} +.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} +.marginpar p{margin-top:0.4em; margin-bottom:0.4em;} +table.equation {width:100%;} +.equation td{text-align:center; } +td.equation { margin-top:1em; margin-bottom:1em; } +td.equation-label { width:5%; text-align:center; } +td.eqnarray4 { width:5%; white-space: normal; } +td.eqnarray2 { width:5%; } +table.eqnarray-star, table.eqnarray {width:100%;} +div.eqnarray{text-align:center;} +div.array {text-align:center;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.pmatrix img{vertical-align:middle;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.bar-css {text-decoration:overline;} +img.cdots{vertical-align:middle;} +.figure img.graphics {margin-left:10%;} +/* end css.sty */ + diff --git a/assets/manual.html.LyXconv/manual.html b/assets/manual.html.LyXconv/manual.html new file mode 100644 index 0000000..fe1c132 --- /dev/null +++ b/assets/manual.html.LyXconv/manual.html @@ -0,0 +1,236 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html > +<head><title></title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<!-- html --> +<meta name="src" content="manual.tex"> +<link rel="stylesheet" type="text/css" href="manual.css"> +</head><body +> +<!--l. 15--><p class="noindent" ><span +class="ecsx-1728">Advanced</span> +<span +class="ecsx-1728">Trains</span> +<!--l. 17--><p class="indent" > This mod aims to provide realistic, good-looking and functional trains by introducing a revolutionary rail placement system. It +features several wagons that can be coupled together. +<!--l. 21--><p class="indent" > This mod is not finished. If you miss features, suggest them, but do not denounce this mod just because they are not yet implemented. +They will be. +<span +class="ecsx-1200">Placing</span> +<span +class="ecsx-1200">Rails</span> +<!--l. 27--><p class="noindent" >Minetest’s in-house rail system features rails that turn at an angle of 90 degrees – totally impractical for the use with realistic trains. So +we have our own rails. Remember: Carts can’t drive on the rails provided by this mod, as do trains not drive on minetest’s default rails +because of their different track widths. +<!--l. 33--><p class="indent" > First, craft some rails. +<!--l. 35--><p class="indent" > <img +src="0_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-43-29.png" alt="PIC" +> +<!--l. 37--><p class="indent" > Now, place one at any position and another one right next to it: you have made your first railway track! +<!--l. 40--><p class="indent" > To learn how to make turns have a look at the following examples. A rail node has been placed only at the red-marked +places. +<!--l. 43--><p class="indent" > <img +src="1_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-04-12.png" alt="PIC" +><img +src="2_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-04-57.png" alt="PIC" +> +<!--l. 45--><p class="indent" > <img +src="3_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-05-51.png" alt="PIC" +><img +src="4_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-07-13.png" alt="PIC" +> +<!--l. 47--><p class="indent" > As shown in the illustrations above, the 30-degree angled rails use a knight’s move (2 ahead, 1 aside) for placement. For the rails to +look realistic, I encourage you not to build turns that are too narrow. IMO the angles you can build with this are still way to narrow, but +this is the best compromise I can find. +<!--l. 53--><p class="indent" > +<!--l. 53--><p class="noindent" ><span +class="ecsx-1200">Switches</span> +<!--l. 55--><p class="indent" > To create switches we need the trackworker tool. ATM it looks like a Doctor Who Sonic Screwdriver. Aside from turning rails into +switches, it is also capable of rotating everything (rails, bumpers, signals) in this mod. Due to internal mechanics, nothing can be rotated +using the default screwdriver. +<!--l. 61--><p class="indent" > <img +src="5_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-56-34.png" alt="PIC" +> +<!--l. 63--><p class="indent" > Place some rails. Then left-click 1-2 times on one of these rails, until you see a switch. Use right-click to rotate it how you need it. You +can change the switch direction by right-clicking the switch or by powering it with mesecons. +<!--l. 68--><p class="indent" > Unfortunately tracks that are placed next to switches don’t always automatically connect to them. You need to correct manually +using the Trackworker. One day I will implement proper handling for these. When you are finished it could look like +this: +<!--l. 73--><p class="indent" > <img +src="6_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-08-02.png" alt="PIC" +> +<!--l. 75--><p class="indent" > +<!--l. 75--><p class="noindent" ><span +class="ecsx-1200">Rail</span> +<span +class="ecsx-1200">crosses</span> +<!--l. 77--><p class="indent" > There are no real cross-rail nodes. However you can create crossing rails by being creative and using the knight’s move or by placing +opposing 45-degree rails. +<!--l. 81--><p class="indent" > <img +src="7_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-09-01.png" alt="PIC" +><img +src="8_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_10-10-15.png" alt="PIC" +> +<!--l. 83--><p class="indent" > +<!--l. 83--><p class="noindent" ><span +class="ecsx-1200">Height</span> +<span +class="ecsx-1200">differences</span> +<!--l. 85--><p class="indent" > To master height differences you can craft slope nodes: +<!--l. 87--><p class="indent" > <img +src="9_home_moritz_Home_Projekte_Minetest_minetest_m___nual_img_Bildschirmfoto_2016-09-17_09-45-38.png" alt="PIC" +> +<!--l. 89--><p class="indent" > To place them, you have to prepare the base, then stand in the right direction and point to the slope start point, then place it. A slope +will be constructed in the direction you are facing (45 degree steps) leaned against the next solid node. The right number of slopes is +subtracted from the item stack if you are in survival. +<!--l. 95--><p class="indent" > +<!--l. 95--><p class="noindent" ><span +class="ecsx-1200">Bumpers,</span> +<span +class="ecsx-1200">platforms,</span> +<span +class="ecsx-1200">signals</span> +<span +class="ecsx-1200">and</span> +<span +class="ecsx-1200">detector</span> +<span +class="ecsx-1200">rails</span> +<!--l. 97--><p class="indent" > <img +src="10_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-48-54.png" alt="PIC" +> +<!--l. 99--><p class="indent" > Bumpers are objects that are usually placed at the end of a track to prevent trains rolling off it. After placed, they can be rotated +using the Trackworker. +<!--l. 103--><p class="indent" > <img +src="11_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-50-27.png" alt="PIC" +><img +src="12_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-51-02.png" alt="PIC" +> +<!--l. 105--><p class="indent" > These are a regular analog signal and an electric signal. Like everything, you can rotate them using the Trackworker. +Right-click or power with mesecons to signal trains that they can pass or have to stop. The signals do not have any effect on +trains, they can only signal the driver. A more advanced signalling system (with distant signals/signal combinations) is +planned. +<!--l. 112--><p class="indent" > <img +src="13_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-58-39.png" alt="PIC" +><img +src="14_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2016-09-17_09-58-20.png" alt="PIC" +> +<!--l. 114--><p class="indent" > These are some platform nodes. I suggest using the left one, it’s only half height and looks better. These nodes also have a sandstone +variant, craft with sandstone bricks +<!--l. 118--><p class="indent" > <img +src="15_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2017-03-09_11-33-09.png" alt="PIC" +> +<!--l. 120--><p class="indent" > These detector rails turn adjacent mesecons on when a train is standing/driving over them. +<!--l. 123--><p class="indent" > Notice: Detector rails and bumpers currently aren’t aligned to the regular tracks. This will be fixed soon. Meanwhile, you need to +rotate them manually. +<!--l. 127--><p class="indent" > +<!--l. 127--><p class="noindent" ><span +class="ecsx-1200">Trains</span> +<!--l. 129--><p class="indent" > There are some wagons included in this modpack, however community members (namely mbb and Andrey) have made some more wagons +that can be downloaded and enabled separately. Visit the forum topic (<a +href="https://forum.minetest.net/viewtopic.php?f=11&t=14726" class="url" ><span +class="ectt-1000">https://forum.minetest.net/viewtopic.php?f=11&t=14726</span></a>) +to download them. +<!--l. 134--><p class="indent" > To see what’s included, look up in a craft guide or consult the creative mode inventory. +<!--l. 137--><p class="indent" > To place wagons simply craft and click a track. To remove a wagon, punch it. Only the person who placed the wagon can do this. In +survival if you destroy trains you get only some of your steel back, so you will be asked to confirm if you really want to destroy a +wagon. +<!--l. 142--><p class="indent" > +<!--l. 142--><p class="noindent" ><span +class="ecsx-1200">Driving</span> +<span +class="ecsx-1200">trains</span> +<!--l. 144--><p class="indent" > Right-click any wagon to get on. This will attach you to the wagon and register you as passenger. Depending on how the wagon is set +up, you are either in a passenger seat or inside a driver stand. Right-clicking again will show your possibilities on what you can do in/with +the wagon. +<!--l. 150--><p class="indent" > Example: +<!--l. 152--><p class="indent" > <img +src="16_home_moritz_Home_Projekte_Minetest_minetest____nual_img_Bildschirmfoto_2017-03-09_11-42-49.png" alt="PIC" +> +<!--l. 154--><p class="indent" > When entering a subway wagon, you are formally inside the passenger area. You can see this by the fact that there’s no head-up +display. Right-clicking brings up this form. +<!--l. 158--><p class="indent" > The first button will make you move to the Driver stand, so you can drive the train. +<!--l. 161--><p class="indent" > The second button should say “Wagon properties” and appears only for the wagon owner. See “Wagon Properties”. +<!--l. 164--><p class="indent" > The last button tells that the doors are closed, so you can’t get off at this time. If the doors are open or the wagon has no doors, this +button says “Get off”. +<!--l. 168--><p class="indent" > It is always possible to bypass closed doors and get off by holding the Sneak key and right-clicking the wagon or by +holding Sneak and Use at the same time. Remember that this may result in your death when the train is travelling +fast. +<!--l. 173--><p class="indent" > The Japanese train and the Subway train support automatic getting on by just walking into the wagon. As soon as you stand on a +platform and walk towards a door, you will automatically get on the wagon. On these, pressing W or S while inside the Passenger Area +will also make you get off. +<!--l. 179--><p class="indent" > +<!--l. 179--><p class="noindent" ><span +class="ecsx-1200">Train</span> +<span +class="ecsx-1200">controls</span> +<!--l. 181--><p class="indent" > If you are inside a driver stand you are presented with a head-up display: +<!--l. 184--><p class="indent" > The upper bar shows your current speed and the lower bar shows what speed you ordered the train to hold. Assuming you have the +default controls (WASD, Shift for sneak, Space for jump), the following key bindings apply: + <ul class="itemize1"> + <li class="itemize">W - faster + </li> + <li class="itemize">S - slower / change direction + </li> + <li class="itemize">A / D – open/close doors + </li> + <li class="itemize">Space: brake (shown by =B=, target speed will be decreased automatically) + </li> + <li class="itemize">Sneak+S: set speed to 0 (train rolls out, brake to stop!) + </li> + <li class="itemize">Sneak+W: Set full speed + </li> + <li class="itemize">Sneak+A: Set speed to 4 (~40km/h) + </li> + <li class="itemize">Sneak+D: Set speed to 8 (~100km/h) + </li> + <li class="itemize">Sneak+Space: toggle brake (the brake will not release when releasing the keys, shown by =^B=)</li></ul> +<!--l. 201--><p class="indent" > +<!--l. 201--><p class="noindent" ><span +class="ecsx-1200">Coupling</span> +<span +class="ecsx-1200">wagons</span> +<!--l. 203--><p class="indent" > You just learned how to drive an engine. Now place a wagon anywhere and drive your engine slowly towards that wagon. As soon as +they collided your engine will stop. Now get off and right-click the green icon that appeared between the engine and the train. You have +coupled the wagon to the engine. +<!--l. 209--><p class="indent" > <img +src="17_home_moritz_Home_Projekte_Minetest_minetest____ssets_manual_img_screenshot_20161203_231622.png" alt="PIC" +> +<!--l. 211--><p class="indent" > To discouple a wagon, punch the red icon between the wagons you want to discouple while the train is standing. +<!--l. 214--><p class="indent" > +<!--l. 214--><p class="noindent" ><span +class="ecsx-1200">Automatic</span> +<span +class="ecsx-1200">Train</span> +<span +class="ecsx-1200">Control</span> +<span +class="ecsx-1200">(ATC)</span> +<!--l. 216--><p class="indent" > ATC rails allow you to automate train operation. There are two types of ATC rails: +<!--l. 219--><p class="indent" > +<!--l. 219--><p class="noindent" ><span +class="ecsx-1000">Regular</span> +<span +class="ecsx-1000">ATC</span> +<!--l. 221--><p class="indent" > The ATC rail does not have a crafting recipe. When placed, you can set a command and it will be sent to any train driving over the +controller. +<!--l. 224--><p class="indent" > Only the static mode is implemented, changing the mode has no effect. +<!--l. 226--><p class="indent" > For a detailed explanation how ATC commands work and their syntax see atc_command.txt +<!--l. 229--><p class="indent" > Note: to rotate ATC rails, you need to bypass the formspec that is set for the node. To do this, hold Sneak when right-clicking the rail +with the trackworker tool. +<!--l. 233--><p class="indent" > +<!--l. 233--><p class="noindent" ><span +class="ecsx-1000">LUA</span> +<span +class="ecsx-1000">ATC</span> +<!--l. 235--><p class="indent" > The LUA ATC suite is part of the mod advtrains_luaautomation. The LUA ATC components are quite similar to Mesecons +Luacontrollers and allow to create all kinds of automation systems. This tool is not intended for beginners or regular players, but for +server admins who wish to create a heavily automated subway system. +<!--l. 241--><p class="indent" > More information on those can be found inside the mod directory of advtrains_luaautomation. +</body></html> + + + |