diff --git a/BetterContacts_BH2.lua b/BetterContacts_BH2.lua index da78aaf..37bf78a 100644 --- a/BetterContacts_BH2.lua +++ b/BetterContacts_BH2.lua @@ -20,6 +20,7 @@ local options = { printErrors = false, replaceDots = false, varname = "Zugname", + varnameTrackID = "", chunkname = "KP-Eintrag", preventReturn0 = true, deprecatedUseGlobal = false, @@ -53,7 +54,11 @@ betterContacts.setOptions = function(newOptions) -- local function p is neccessary to prevent shadowing of variables z and s templateString = "local p=function() %s end;return function(z) local s=Zugname;Zugname=z;p();Zugname=s end;" else - templateString = "return function(" .. options.varname .. ") %s end" + local params = options.varname + if options.varnameTrackID ~= "" then + params = params .. "," .. options.varnameTrackID + end + templateString = "return function(" .. params .. ") %s end" end end betterContacts.setOptions() -- initialize local variables from default options diff --git a/README.md b/README.md index 8546272..535fe54 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,10 @@ Dabei werden die folgenden Parameter unterstützt: Ein beliebiger Variablenname als String (standardmäßig `"Zugname"`). Unter diesem Variablennamen wird der von EEP übergebene Name des Zuges bereitgestellt, der den Kontaktpunkt überfahren hat. Wenn du lieber einen anderen Variablennamen verwenden willst, kannst du das mit dieser Option ändern. +#### `varnameTrackID` ⚠️ + +Ein beliebiger Variablenname als String oder ein leerer String (`""`, Standardwert). Ab EEP16 mit Plugin 3 wird beim Überfahren eines Kontaktpunkts zusätzlich die ID des Gleises übergeben, auf dem der Kontaktpunkt liegt. Wenn du diese ID innerhalb des Kontaktpunkt-Eintrags verwenden willst, kannst du über diese Option einen Variablennamen dafür festlegen. + #### `printVersionInfo` `true` oder `false` (Standardwert). Sobald diese Option auf `true` gesetzt wird, wird eine Meldung mit der aktuell verwendeten Version von BetterContacts ins Ereignisfenster geschrieben. @@ -90,7 +94,7 @@ Eine kurze Erklärung dazu: Wird die `EEPMain` einmal mit `return 0` beendet, wi `true` oder `false` (Standardwert). Wenn `true`, wird der Zugname zusätzlich in einer globalen Variable namens `Zugname` bereitgestellt, die Option `varname` hat dann keinen Effekt mehr. Die Option `deprecatedUseGlobal` gibt es nur aus Kompatibilitätsgründen zu meiner bisherigen Codezeile. Ich rate dringend davon ab, sie zu verwenden (deshalb 👎). -**Achtung:** Die mit ⚠️ markierten Parameter `varname`, `replaceDots` und `deprecatedUseGlobal` können nicht nach Belieben geändert werden, sondern müssen zu den tatsächlichen Einträgen in den Kontaktpunkten auf der Anlage passen. +**Achtung:** Die mit ⚠️ markierten Parameter `varname`, `varnameTrackID`, `replaceDots` und `deprecatedUseGlobal` können nicht nach Belieben geändert werden, sondern müssen zu den tatsächlichen Einträgen in den Kontaktpunkten auf der Anlage passen. _Unwichtiger Hinweis:_ Bei der oben angegebenen `require`-Zeile handelt es sich um eine Kurzschreibweise, die dank verschiedener technischer Kniffe möglich ist. Die folgende Langversion (mit `.setOptions`, Klammern und Zeilenumbrüchen) macht genau das gleiche: @@ -114,7 +118,7 @@ Wenn du jetzt auf OK klickst, kommt wieder die wenig hilfreiche Fehlermeldung vo `[string "Kontaktpunkt-Eintrag"]:1: ')' expected near 'end'` Diese von Lua generierte Fehlermeldung ist zwar auch etwas kryptisch, enthält aber die wesentliche Info: Es fehlt eine schließende Klammer am Ende. -Wenn du diese Hilfe zur Fehlersuche nicht mehr benötigst, kannst du die Option `printErrors` wieder deaktivieren (entweder gar nicht angeben oder explizit auf `false`). +Wenn du diese Hilfe zur Fehlersuche nicht mehr benötigst, kannst du die Option `printErrors` wieder deaktivieren (entweder gar nicht angeben oder explizit auf `false` setzen). ### Umstieg vom Codeschnipsel zu BetterContacts