Skip to content

Commit 37ef2f6

Browse files
committed
inverted switches + new ver
1 parent c9ba4fd commit 37ef2f6

4 files changed

Lines changed: 40 additions & 10 deletions

File tree

help.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ <h2>Speciální předpony názvů návěstidel:</h2>
2828
<p><strong>VS / VL</strong> -- Vložené návěstidlo. Používá se u stanic, kde více kolejí sdílí jedno odjezdové návěstidlo -- vložené návěstidlo označuje, na kterou konkrétní kolej se cesta staví.</p>
2929
<p><strong>Sc / Lc</strong> -- Cestové návěstidlo (opakovač). Buď stojí samostatně jako odjezdové návěstidlo, nebo -- pokud po něm v postavené cestě následuje další hlavní návěstidlo -- opakuje jeho návěst s předponou "Opak" (např. "Volno" se zobrazí jako "OpakVolno").</p>
3030
<p>Tyto předpony nic neovlivňují v samotném generátoru, jsou to jen konvence, které si musí uživatel dodržet ať to na straně ORMS funguje správně.</p>
31+
<h2>Výhybky:</h2>
32+
<p>Buňka výhybky má tvar <code>&lt;symbol1&gt; V &lt;symbol2&gt; &lt;název&gt;</code>, např. "═ V ╔ Vy1Kr" -- první symbol je vzhled ve vypnutém stavu, druhý symbol ve stavu zapnutém, "V" je jen oddělovač označující, že se jedná o výhybku (přes pravé menu "Vyhybka" &rarr; "Normální").</p>
33+
<p>Pokud je fyzický blok výhybky ve světě otočený/zapojený obráceně oproti ostatním (po resetu/rebootu ORMS ukazuje GUI správný symbol, ale fyzicky je výhybka přehozená), použijte místo "V" oddělovač "I" (přes "Vyhybka" &rarr; "Invertovaná"), např. "═ I ╔ Vy1Kr". Symboly a jejich pořadí zůstávají stejné (první = vypnuto, druhý = zapnuto) -- "I" jen řekne ORMS, aby pro tuhle jednu výhybku poslal opačný povel, aby fyzický stav odpovídal tomu, co je vidět v GUI.</p>
3134
<h2>Popisky (Labels):</h2>
3235
<p><strong>Popisek nikdy neumisťujte doprostřed koleje tak, aby ji přerušil</strong> (typicky číslo koleje napsané do mezery uprostřed rovného úseku). ORMS s popisky při hledání cesty vůbec nepočítá -- taková mezera je pro program neprůchozí díra, i když trať na pohled vypadá spojitě, a cesta pak zbytečně objíždí přes výhybky, aby se přes ni dostala. Popisek dejte vždy vedle koleje (nad/pod ni), nikdy do jejího středu.</p>
3336
</div>

index.html

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
</head>
99
<body>
1010
<nav class="navbar">
11-
<div class="brand2"> ORMS Layout Generator - Web Edition v0.8</div>
11+
<div class="brand2"> ORMS Layout Generator - Web Edition v0.9</div>
1212
<div class="brand"> Vybraná buňka: X: 0, Y: 0</div>
1313
<div class="navbar-buttons">
1414
<button id="convertLuaButton" class="button">Převést do LUA</button>
@@ -118,8 +118,18 @@
118118
</li>
119119
</ul>
120120
</li>
121-
<li class="item">
122-
<span>Vyhybka</span>
121+
<li class="item share">
122+
<div>
123+
<span>Vyhybka</span>
124+
</div>
125+
<ul class="share-menu">
126+
<li class="item">
127+
<span>Normální</span>
128+
</li>
129+
<li class="item">
130+
<span>Invertovaná</span>
131+
</li>
132+
</ul>
123133
</li>
124134
<li class="item">
125135
<span>Název Stanice</span>

res/header.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,17 @@ document.addEventListener('DOMContentLoaded', () => {
7171
switch (text) {
7272

7373
// Insert preset symbols / text based on menu selection
74-
case 'Vyhybka':
74+
case 'Normální':
7575
pasteTextIntoSelectedCell("═ V ═ Vy1Kr");
7676
break;
7777

78+
case 'Invertovaná':
79+
// "I" instead of "V" marks a switch whose physical block is placed
80+
// backwards from every other one -- ORMS flips which activate()
81+
// boolean it sends for just this switch (see help.html).
82+
pasteTextIntoSelectedCell("═ I ═ Vy1Kr");
83+
break;
84+
7885
case 'Název Stanice':
7986
pasteTextIntoSelectedCell("L Nymburk Hl.n.");
8087
break;
@@ -105,6 +112,7 @@ document.addEventListener('DOMContentLoaded', () => {
105112
case 'Kolej':
106113
case 'Zarážedla':
107114
case 'Tunel':
115+
case 'Vyhybka':
108116
break;
109117

110118
// Default: paste the item's text itself

res/navbar.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ function convertToLua() {
2525
// Templates for various LUA entries
2626
const TemplateTrack = "{y, x, \"z\"},";
2727
const TemplateSwitch = "{y, x, \"z\", \"r\", \"q\"},";
28+
// A physical switch block that's placed/wired backwards from every other one -- ORMS
29+
// reads a 6th "true" element to flip which activate() boolean it sends for that one
30+
// switch, while the two icons keep their normal meaning (first = deactivated look,
31+
// second = activated look) for every other switch and for the GUI/pathfinding.
32+
const TemplateSwitchInverted = "{y, x, \"z\", \"r\", \"q\", true},";
2833
const TemplateCrossing = "{y, x, \"z\", \"r\", \"q\"},";
2934
const TemplateSignal = "{y, x, \"z\", \"q\"},";
3035
const TemplateLabel = "{y, x, \"q\"},";
@@ -72,17 +77,21 @@ function convertToLua() {
7277
StorageLable += Temp2 + '\n';
7378
}
7479

75-
// Switch (e.g., "═ V ═ Vy1")
76-
else if (cellText.charAt(2) === 'V') {
77-
let Temp = TemplateSwitch.replace("x", row);
80+
// Switch (e.g., "═ V ═ Vy1"). "I" instead of "V" marks a switch whose
81+
// physical block is inverted (see TemplateSwitchInverted above) -- same
82+
// format otherwise, just a different marker character so the fixed
83+
// character positions below don't need to change.
84+
else if (cellText.charAt(2) === 'V' || cellText.charAt(2) === 'I') {
85+
const template = cellText.charAt(2) === 'I' ? TemplateSwitchInverted : TemplateSwitch;
86+
let Temp = template.replace("x", row);
7887
Temp = Temp.replace("y", col);
79-
Temp = Temp.replace('z', cellText.charAt(0));
88+
Temp = Temp.replace('z', cellText.charAt(0));
8089
// First letter is type
8190

82-
Temp = Temp.replace('r', cellText.charAt(4));
91+
Temp = Temp.replace('r', cellText.charAt(4));
8392
// Direction char
8493

85-
Temp = Temp.replace("q", cellText.substring(6));
94+
Temp = Temp.replace("q", cellText.substring(6));
8695
// ID portion
8796

8897
StorageSwitches += Temp + '\n';

0 commit comments

Comments
 (0)