From 4490e324a1c4887daf94c7a1c484ed040d1b52c1 Mon Sep 17 00:00:00 2001 From: Nero <41307858+nero@users.noreply.github.com> Date: Fri, 17 Jun 2022 23:41:55 +0000 Subject: [PATCH] Move main lua file into Install_00 folder --- Install_00/Install.ini | 3 +- Install_00/kskit.lua | 97 ++++++++++++++++++ init.lua | 221 ----------------------------------------- 3 files changed, 99 insertions(+), 222 deletions(-) create mode 100644 Install_00/kskit.lua delete mode 100644 init.lua diff --git a/Install_00/Install.ini b/Install_00/Install.ini index 5e0ee16..f856455 100644 --- a/Install_00/Install.ini +++ b/Install_00/Install.ini @@ -1,4 +1,5 @@ [EEPInstall] EEPVersion = 10 File001 = "On.lua","LUA\On.lua" -File002 = "Prototype.lua","LUA\Prototype.Lua" +File002 = "Prototype.lua","LUA\Prototype.lua" +File003 = "kskit.lua","LUA\kskit.lua" diff --git a/Install_00/kskit.lua b/Install_00/kskit.lua new file mode 100644 index 0000000..2db3568 --- /dev/null +++ b/Install_00/kskit.lua @@ -0,0 +1,97 @@ +require("Prototype") +require("On") +serpent=require("serpent") + +-- Versionsnummer. Diese dient vor allem zu Diagnosezwecken. +-- Ich weiss jetzt noch nicht, wie viele verschiedene Versionen von dem Script spaeter herumfliegen werden. +KsKitVer=0 + +-- Grundsätzliche Typen von Signalbildern +FAHRT=1 +HALT=2 +RANGIERFAHRT=3 +ERSATZFAHRT=4 +AUS=5 + +-- Grundsignal, entspricht allen Signalen vor EEP 6 sowie dem Unsichtbaren Signal aus dem Grundbestand +Signal=Prototype() + +function Signal:init(tab) + for k,v in pairs(tab) do + local setter = "set_"..tostring(k) + if type(self[setter]) == "function" then + self[setter](self, v) + else + error("Signaleigenschaft "..k.." hier nicht erlaubt") + end + end +end + +-- ID to use with EEPGetSignal/EEPSetSignal +function Signal:set_ID(id) + if type(id) ~= "number" then error("Signal ID must be a number") end + self.ID = id +end +Signal.set_1=Signal.set_ID + +-- Anfahrtsgeschwindigkeit ans Haltzeigende Signal +function Signal:set_V_halt(v) + if type(v) ~= "number" then error("V_halt must be number") end + self.V_halt = v +end + +-- Unsichtbares Signal: Zugbeeinflussung +function Signal:set_V_regler(id) + self.V_regler=id +end + +function Signal:set_Begriffe(Begriffe) + self.RFSS=false -- Rangierfahrstrassenstart + self.RFSZ=false -- Rangierfahrstrassenziel + self.ZFSS=false -- Zugfahrstrassenstart + self.ZFSZ=false -- Zugfahrstrassenziel + for i=1,#Begriffe do + if Begriffe[i][1]==RANGIERFAHRT then self.RFSS=true end + if Begriffe[i][1]==HALT then self.RFSZ=true; self.ZFSZ=true end + if Begriffe[i][1]==FAHRT then self.ZFSS=true end + end + self.Begriffe=Begriffe +end + +-- Signalbilder OSJD/EZMG/Hl-Signale des Ostblocks +-- V_erwarten=60 wird durch V_erwarten=40 signalisiert +Hl1={FAHRT} +Hl2={FAHRT, V_max=100} +Hl3a={FAHRT, V_max=40} +Hl3b={FAHRT, V_max=60} +Hl4={FAHRT, V_erwarten=100} +Hl5={FAHRT, V_max=100, V_erwarten=100} +Hl6a={FAHRT, V_max=40, V_erwarten=100} +Hl6b={FAHRT, V_max=60, V_erwarten=100} +Hl7={FAHRT, V_erwarten=40} +Hl8={FAHRT, V_max=100, V_erwarten=40} +Hl9a={FAHRT, V_max=40, V_erwarten=40} +Hl9b={FAHRT, V_max=60, V_erwarten=40} +Hl10={FAHRT, H_erwarten=true} +Hl11={FAHRT, V_max=100, H_erwarten=true} +Hl12a={FAHRT, V_max=40, H_erwarten=true} +Hl12b={FAHRT, V_max=60, H_erwarten=true} +Hl13={HALT} + +-- Zusatzsignale (DS 301 Namen) +Zs1={ERSATZFAHRT} +Sh1={RANGIERFAHRT} -- war Ra12 bei DR + +-- V11NHK10024 HL-Signale der DR *V40* - Grundset +Hl_Signal_Ausfahrt_V40=Signal{Begriffe={Hl13,Hl1,Hl3a,Zs1,Sh1,Hl13}} +Hl_Signal_Ausfahrt_Vmax=Signal{Begriffe={Hl13,Hl1,Zs1,Sh1,Hl13}} +Hl_Signal_Block=Signal{Begriffe={Hl13,Hl1,Zs1,Hl13}} +Hl_Signal_Einfahrt_V40=Signal{Begriffe={Hl13,Hl1,Hl7,Hl10,Hl3a,Hl9a,Hl12a,Zs1,Hl13}} +Hl_Signal_Selbstblock=Signal{Begriffe={Hl13,Hl1,Hl10,Hl13}} +Hl_Signal_Vorsignal_V40=Signal{Begriffe={Hl10,Hl7,Hl1}} +Hl_Signal_Vorsignalwiederholer_V40=Signal{Begriffe={Hl10,Hl7,Hl1}} + +-- V11NHK10025 HL-Signale der DR *V60* - Erweiterungsset +Hl_Signal_Ausfahrt_V60=Signal{Begriffe={Hl13,Hl1,Hl3b,Hl3a,Zs1,Sh1,Hl13}} +Hl_Signal_Einfahrt_V60=Signal{Begriffe={Hl13,Hl1,Hl4,Hl7,Hl10,Hl3b,Hl6b,Hl9b,Hl12b,Hl3a,Hl6a,Hl9a,Hl12a,Zs1,Hl13}} +Hl_Signal_Vorsignalwiederholer_V60=Signal{Begriffe={Hl10,Hl7,Hl1}} diff --git a/init.lua b/init.lua deleted file mode 100644 index 640e88c..0000000 --- a/init.lua +++ /dev/null @@ -1,221 +0,0 @@ --- Versionsnummer. Diese dient vor allem zu Diagnosezwecken. --- Ich weiss jetzt noch nicht, wie viele verschiedene Versionen von dem Script spaeter herumfliegen werden. -KsKitVer=0 - --- Grundsätzliche Typen von Signalbildern -FAHRT=1 -HALT=2 -RANGIERFAHRT=3 -ERSATZFAHRT=4 -AUS=5 - --- Signalbilder des Hv-Signalsystems -Hp0={HALT} -Hp1={FAHRT} -Hp2={FAHRT, V_max=40} -Vr0={FAHRT, H_erwarten=true} -Vr1={FAHRT} -Vr2={FAHRT, V_erwarten=40} - --- Signalbilder OSJD/EZMG/Hl-Signale des Ostblocks --- V_erwarten=60 wird durch V_erwarten=40 signalisiert -Hl1={FAHRT} -Hl2={FAHRT, V_max=100} -Hl3a={FAHRT, V_max=40} -Hl3b={FAHRT, V_max=60} -Hl4={FAHRT, V_erwarten=100} -Hl5={FAHRT, V_max=100, V_erwarten=100} -Hl6a={FAHRT, V_max=40, V_erwarten=100} -Hl6b={FAHRT, V_max=60, V_erwarten=100} -Hl7={FAHRT, V_erwarten=40} -Hl8={FAHRT, V_max=100, V_erwarten=40} -Hl9a={FAHRT, V_max=40, V_erwarten=40} -Hl9b={FAHRT, V_max=60, V_erwarten=40} -Hl10={FAHRT, H_erwarten=true} -Hl11={FAHRT, V_max=100, H_erwarten=true} -Hl12a={FAHRT, V_max=40, H_erwarten=true} -Hl12b={FAHRT, V_max=60, H_erwarten=true} -Hl13={HALT} - --- Zusatzsignale (DS 301 Namen) -Zs1={ERSATZFAHRT} -Sh1={RANGIERFAHRT} -- war Ra12 bei DR - --- Signalebilder der jeweiligen Signalmodelle -Signalmodelle={ - -- V11NHK10024 HL-Signale der DR *V40* - Grundset - ["Hl_Signal_Ausfahrt_V40_HK1"]={ Hl13,Hl1,Hl3a,Zs1,Sh1,Hl13 }, - ["Hl_Signal_Ausfahrt_Vmax_HK1"]={ Hl13,Hl1,Zs1,Sh1,Hl13 }, - ["Hl_Signal_Block_HK1"]={ Hl13,Hl1,Zs1,Hl13 }, - ["Hl_Signal_Einfahrt_V40_HK1"]={ Hl13,Hl1,Hl7,Hl10,Hl3a,Hl9a,Hl12a,Zs1,Hl13 }, - ["Hl_Signal_Selbstblock_HK1"]={ Hl13,Hl1,Hl10,Hl13 }, - ["Hl_Signal_Vorsignal_V40_HK1"]={ Hl10,Hl7,Hl1 }, - ["Hl_Signal_Vorsignalwiederholer_V40_HK1"]={ Hl10,Hl7,Hl1 }, - -- V11NHK10025 HL-Signale der DR *V60* - Erweiterungsset - ["Hl_Signal_Ausfahrt_V60_HK1"]={ Hl13,Hl1,Hl3b,Hl3a,Zs1,Sh1,Hl13 }, - ["Hl_Signal_Einfahrt_V60_HK1"]={ Hl13,Hl1,Hl4,Hl7,Hl10,Hl3b,Hl6b,Hl9b,Hl12b,Hl3a,Hl6a,Hl9a,Hl12a,Zs1,Hl13 }, - ["Hl_Signal_Vorsignalwiederholer_V60_HK1"]={ Hl10,Hl7,Hl1 } -} - --- -Signalmeta = {} - -Signalmeta.__call= function(table, data) - local sigobj = {} - local mt = {} - mt.__index = table - setmetatable(sigobj, mt) - for k, v in pairs(data) do - local setter = "set_"..tostring(k) - if type(sigobj[setter]) == "function" then - sigobj[setter](sigobj, v) - else - error("Invalid signal property "..tostring(k)) - end - end - return sigobj -end - --- Basisklasse fuer alle Signale --- Entspricht den Signalen von vor EEP 6: Stellung 1 ist Fahrt, Stellung 2 ist Halt -Basissignal = { - Begriffe = { Hp1, Hp0 } -} -setmetatable(Basissignal, Signalmeta) - -function Basissignal:set_1(v) - if type(v) ~= "number" then - error("Signal ID must be number") - end - self.ID = v -end - -USignal = {} -setmetatable(USignal, Signalmeta) - --- Datenbank fuer Tabelle -KsFahrstrassen = {} - --- Fahrstrasse in Datenbank aufnehmen -function FS(Tabelle) - KsFahrstrassen[Tabelle[1]] = Tabelle -end - --- Datenbank fuer Signale -KsSignale = {} - --- KsSignale von GK3 sind sehr systematisch benannt, die moeglichen Stellungen lassen sich aus dem Namen herleiten -function GK3KsBegriffe(Modell) - local Teile = {} - for str in string.gmatch(Modell, "([^_ ]+)") do - Teile[str]=true - end - local Stellungen = {} - - -- Halt am Hauptsignal - if Teile["A"] or Teile["B"] then - table.insert(Stellungen, {"Hp0"}) - end - - -- Halt erwarten - -- ... am Wiederholer - if Teile["VSigWdh"] then - table.insert(Stellungen, {"Ks2","Kl"}) - end - -- ... An MAS oder Vorsignalen - if Teile["MAS"] or Teile["VSig"] then - if Teile["verkuerzt"] then - table.insert(Stellungen, {"Ks2","Kl"}) - end - table.insert(Stellungen, {"Ks2"}) - if Teile["Kl"] then - table.insert(Stellungen, {"Ks2","Kl"}) - end - end - - -- Fahrt/Fahrt erwarten - table.insert(Stellungen, {"Ks1"}) - - -- Langsamfahrt erwarten - -- ... am Wiederholer - if Teile["VSigWdh"] then - table.insert(Stellungen, {"Ks1bl","Kl"}) - end - -- ... am MAS oder Vorsignalen - if Teile["MAS"] or Teile["VSig"] or Teile["VSigWdh"] then - if Teile["verkuerzt"] then - table.insert(Stellungen, {"Ks1bl","Kl"}) - end - table.insert(Stellungen, {"Ks1bl"}) - if Teile["Kl"] then - table.insert(Stellungen, {"Ks1bl","Kl"}) - end - end - - -- Rangierfahrt an Ausfahrsignalen - if Teile["A"] then - table.insert(Stellungen, {"Sh1"}) - end - - -- Ersatzsignal an Ausfahrsignalen und Blocksignalen ohne Vorsichtssignal - if Teile["A"] or (Teile["B"] and not Teile["V"]) then - table.insert(Stellungen, {"Zs1"}) - end - - -- Vorsichtssignal an Hauptsignalen - if Teile["V"] then - table.insert(Stellungen, {"Zs7"}) - end - - -- Kennlicht - if Teile["Kl"] or Teile["VSigWdh"] or Teile["verkuerzt"] then - table.insert(Stellungen, {"Kl"}) - end - - -- Dunkel geschaltet - table.insert(Stellungen, {}) - return Stellungen -end - -local GK3KsBauarten={ - "Ks_Sig_A", - "Ks_Sig_A_MAS", - "Ks_Sig_A_MAS_Kl", - "Ks_Sig_A_V", - "Ks_Sig_A_V_MAS", - "Ks_Sig_A_V_MAS_Kl", - "Ks_Sig_B", - "Ks_Sig_B_MAS", - "Ks_Sig_B_V", - "Ks_Sig_B_V_MAS", - "Ks_Sig_B_V_MAS_Kl", - "Ks_Sig_VSig", - "Ks_Sig_VSigWdh", - "Ks_Sig_VSig_verkuerzt" -} - -for cnt=1, #GK3KsBauarten do - _G[GK3KsBauarten[cnt]]=function(Meta) - Signal=Meta[1] - Meta[1] = nil - -- Falls kein name gegeben, einen generieren - if Meta.Name == nil then - Meta.Name = string.format("%d", Signal) - end - if type(Meta.Schild) == "number" then - Meta.Schild="#"..tostring(Meta.Schild) - end - Meta.Kennzahl = Kennzahl - Meta.Begriffe = GK3KsBegriffe(GK3KsBauarten[cnt]) - KsSignale[Signal] = Meta - end -end - -function KsKitInit() - for Signal, Meta in pairs(KsSignale) do - if Meta.Schild ~= nil then - EEPStructureSetTextureText(Meta.Schild, 1, Meta.Kennzahl) - EEPStructureSetTextureText(Meta.Schild, 2, Meta.Name) - end - end -end