Gleisauswahl bei Gleiskonstruktionen reduzieren

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • Ich habe mir eine Gleismod zusammengestellt und habe es bei der Anzahl Gleisen "ein wenig übertrieben". Das Gleisbaumenü ist zwar voll, aber für mich dennoch übersichtlich. Bezüglich Baumodule bei Bahnhöfen habe ich mir einen Filter abgeschaut, sodass nur eine Selektion von Gleisen auftaucht.

    Dieser Filter wirkt jedoch nicht auf Bahnhofmods, Depotmods oder andere Gleiskonstruktionen, welche im UI-Menü sämtliche vorhandene Gleise laden. Gibt es eine Möglichkeit einer Mehrzahl anderer Mods mitzuteilen, dass sie nicht sämtliche Gleise laden sollen?


    Beispiel für vorhandene Gleise (stark verkürzte Liste):

    Freestyle_Bahnsteig.lua

    Schotterbett.lua

    Tunnelgleis_1.lua

    Bahnhofgleis_1.lua

    Bahnhofgleis_2.lua

    Bahnhofgleis_3.lua


    Nur schon von der Logik her macht es Sinn, dass nur die Bahnhofgleise in der Gleisauswahl bei Bahnhöfen, Depots etc. vorhanden sein sollten.


    Optimalerweise würde ich mir eine Lösung via einer eigenständige Mod (oder als Script für meine Gleismod) wünschen, die für alle anderen Mods filtert, welche Gleise sie im UI-Baumenü anzeigen sollen.

    Alternativ wäre es auch kein Problem, wenn ich bei jeder Mod mit eigenen Gleisen, die Gleise dort aus der Auswahl entfernen könnte.

    Mühsam wäre es bei jeder Mod mit Gleisauswahl, diese manuell definieren zu müssen.


    Ich habe mir schon einmal ein paar Mods angeschaut. eat1963_spitzkehre_2 hat soweit ich es erkennen konnte, einen eigenen Filter spezifisch für die Mod. Eine solche whitelist (oder blacklist), als globaler Filter wäre eine Wunschlösung.

    Diverse Mods nutzen die CommonApi, um alle vorhandenen Gleise aufzulisten. Ich nehme an, dass sie folgenden Codeblock dafür brauchen. Ich kann damit aber selber wenig anfangen.

    Ich hoffe mir kann hier jemand eine Lösung anbieten oder zumindest mir helfen eine Lösung zu finden.

  • Ich bin per zufall auf die Gleis-/Straßen-Menü-Manager Mod von WernerK gestossen. Ich habe diese Mod zuvor nicht beachtet, weil ich das Gleisbaumenü selber sauber geordnet halten kann und dafür keine Mod brauche. Ich habe die Mod jetzt aber getestet und ich finde sie für mein Problem nutzlos.


    Im Passivmodus sind im Gleisbaumenü sämtliche Gleise vorhanden und genauso verhält es sich in der Gleisauswahl der Gleiskonstruktionen. Wenn ich die Mod aber richtig verstanden habe, dient der Passivmodus nur dazu, die verwendeten Gleise zu erfassen und extern in der wktsr_settings.lua aufzulisten.


    Dementsprechend sind im Aktivmodus nur jene Gleise vorhanden, welche in der wktsr_settings.lua erfasst sind. Nebst den benutzten Gleise, kann in dieser Datei auch eine White- und Blacklisten erstellt werden. Dies wäre eigentlich meine Wunschlösung, würde dies nicht zugleich auch das Gleisbaumenü auf diese Gleise reduzieren.


    Ich würde damit sozusagen das gleiche Ergebnis erhalten, wie wenn ich einfach alle Gleise lösche, die ich nicht in der Gleiskonstruktion haben möchte.

    Ich würde aber gerne lediglich die Auswahl bei den Gleiskonstruktionen reduzieren, aber zugleich im Gleisbaumenü die volle Auswahl haben.


    Ausserdem funktioniert diese Mod nicht, wenn die Gleisauswahl in der Konstruktion über die CommoApi von eis_os getätigt wird. Hier spielt es keine Rolle ob die Mod vor oder nach der CommonApi geladen wird.


    Dementsprechend bin ich immer noch gleichweit wie vorher.

  • In CommonAPI1 für Transport Fever 1 gab es das noch und die Einstellung, da war settingstracks


    In CommonAPI2 ging das wegen den verschiedenen states nicht und habe es damals nicht portiert.



    Anleitung zum Testen:


    res\scripts\commonapi2\uiparameter.lua

    TrackSelector.filters = { filter.visibleInUI, filter._settingsTracks }

    um diese Zeile ergänzen (also hinzufügen):

    TrackSelector._filters = { filter.visibleInUI, filter._settingsTracks }




    StreetSelector.filters = { filter.visibleInUI, filter._settingsStreet }

    um diese Zeile ergänzen (also hinzufügen):

    StreetSelector._filters = { filter.visibleInUI, filter._settingsStreet }




    In der Datei

    res\scripts\commonapi2\filter.lua

    Die Zeile:

    local userfilterString = commonapi.settings.get("eis_os_commonapi_1", "filter"..typ) or ""

    mit dieser hier ersetzen:

    local userfilterString = commonapi._info.settings["filter"..typ] or ""



    Code: mod.lua
        buildoverwrite = {
                type = "string",
                default = "",
                name = _("setting_buildoverwrite"),
                description = _("setting_buildoverwrite_desc"),
                order = 330,
            },

    um diese Zeilen ergänzen:


    Der Code ist geblieben, da Mods darauf zugreifen können, und ich diese nicht kaputt machen wollte.


    Dann kann man in den CommonAPI2 Einstellungen nach Dateinamen filtern (Speichern nicht vergessen):

    Beispiel:

    eis_os_ würde alle Gleis Dateinamen mit dem Dateinamen "eis_os_" filtern. Also effektiv 1000mm und 750mm abschalten... ; kann man als Trennzeichen nutzen, es wird lua find auf dem Dateinamen angewendet, daher können auch reguläre Ausdrücke genutzt werden.



    PS: Und ja, da hat die CommonAPI2 Einstellungen aus CommonAPI versucht zu laden, da kommt aber nix mehr. Da commonapi.settings so nicht mehr unterstützt wird...

  • Zitat

    Dementsprechend bin ich immer noch gleichweit wie vorher.

    Hast du mal die Einstellung [NUR KATEGORIE] getestet? Dann wird eine zusätzliche Filter-Kategorie angelegt, in der nur die benutzten Gleise drin sind, allerdings ohne weitere Unterteilung. Aber so viele benutzte Gleise hat man normalerweise ja nicht.


    Was meinst du eigentlich mit Gleiskonstruktion? Es gibt doch nur die Gleis-Bildchen im Konstruktionsmenü? Oder meinst du die Drop-Down- bzw. Combo-Menüs in diversen Gleiskonstruktionen wie z.B. Gleisbauer oder Weichenbaukasten? Bei denen kannst du im Mod-Lade-Dialog einstellen, ob da gefiltert wird oder nicht, aber nur, wenn in der Reihenfolge vorher der Gleis-Straßen-Menü-Manager geladen wird. Das gilt aber nur für meine eigenen Mods, bei anderen wird das nicht unterstützt. Aber so viele andere gibt es auch nicht. Ok, bei der Spitzkehre mag das der Fall sein, weil sie den GSMM nicht unterstützt und stattdessen eben CommonAPI. Beim Gleisbauer, der eine vergleichbare Funktionalität hat wie die Spitzkehre, ist es eben umgekehrt. Eine Frage der persönlichen Präferenz.


    Der GSMM hat noch einen weiteren Vorteil: Es werden alle Gleistypen durchnummeriert, so dass sie in den Drop-Down-Menüs eindeutig auffindbar sind. Es ist nicht lustig, wenn du dort zig - was weiß ich - Hochgeschwindigkeitsgleis-Einträge mit gleichem Namen stehen hast, und dort nicht mehr das richtige Gleis findest. Leider benennen fats alle Anbieter von Gleisen oder Straßen ihre Typen mit uneindeutigen nichtssagenden Namen, dabei wird sogar inzwischen Mehrzeiligkeit in Dropdowns unterstützt.


    Ich hatte ursprünglich mal geplant, die Black- und Whitelists in GSMM über eine zusätzliche Auswahlfunktion im Gameplay zu erstellen. Aber wegen vieler anderer Sachen ist das bislang auf der Strecke geblieben. :-(

    Ich will TpF3 mit Dinos, Zombies und Vulkanen!

  • Erstmal Danke für die beiden Antworten.

    PS: Und ja, da hat die CommonAPI2 Einstellungen aus CommonAPI versucht zu laden, da kommt aber nix mehr. Da commonapi.settings so nicht mehr unterstützt wird...

    Wenn da nichts mehr kommt, vermute ich, dass eis_os_com_traindepot2_1 stattdessen das entsprechende Auswahlmenü geschafften hat. Dies würde zumindest mein aktuelles Testergebnis erklären. Die Codeanpassungen und die entsprechende Filtereinstellung funktionieren, aber ausschliesslich für Depots respektive Gleiskonstruktionen die als Depot definiert wurden.

    Lässt sich dies auf alle Bahnhöfe und Gleiskonstruktionen erweitern (zumindest jene welche sämtliche Gleise laden) oder wie müsste ich dies dort einbinden?

    Könnte der Filter auch invertiert werden (statt einer Blacklist eine Whitelist)?


    Was meinst du eigentlich mit Gleiskonstruktion? Es gibt doch nur die Gleis-Bildchen im Konstruktionsmenü? Oder meinst du die Drop-Down- bzw. Combo-Menüs in diversen Gleiskonstruktionen wie z.B. Gleisbauer oder Weichenbaukasten?

    Es gibt das Gleisbaumenü bei der man alle verfügbaren Gleise auswählen kann, um die Gleise selber zu bauen. Dort brauche ich keine Filter, dort habe ich mir selber eine Mod zusammengestellt, die Gleise sauber benannt und in Kategorien eingeteilt. Die zusätzliche Kategorie, welche die Funktion "nur Kategorie" liefern würde, brauche ich nicht und genauso wenig eine Mod die dort Ordnung schafft (was wohl der Hauptzweck der GSMM ist).

    Daneben gibt es Gleiskonstruktionen, welche in den Tabs 'Gebäude' (für Bahnhöfe und Depots) und 'Gleis-Konstruktionen' (für den Rest) liegen. Diverse Mods haben dort ein Drop-Downmenü bei welchem sämtliche Gleise geladen werden. Genau dort und nur dort möchte ich die Auswahl reduzieren.


    Die Sache ist halte genau die, dass es ein wenig zu viele Gleise geworden sind und ich dementsprechend nicht alle Gleise bei einem Bahnhof, einem Depot, einer Brücke, der Spitzkehre, dem Weichenbaukasten etc. laden möchte. Das Problem ist weniger die Übersicht, sondern die Performance weil dort unnötig viel Gleise geladen werden.

  • Technisch sollte das gehen mit allen Mods, die die CommonAPI1/2 Schnittstelle nutzen.


    eis_os_com_traindepot2_1 ist mein Testmod um zu schauen, ob die Schnittstelle noch brauchbar ist.

    Sollte es nicht gehen, schreib mir bitte den Mod (inkl. Version und ggf. Link)


    Da ja einige Forumnutzer hier herumgestänkert haben, hab ich die Schnittstelle nicht weiter verfolgt und für CommonAPI2 als deprecated/Nicht mehr Nutzbar deklariert.


    (O-Ton: Das geht doch mit UG Schnittstellen viel besser :rolleyes: )


    Ein Positiv Filter war im Gespräch, wurde aber verworfen, da Nutzer sonst Modprobleme melden könnten, die gar keine sind...

    Mittlerweile könnte ich das wohl sogar zur Laufzeit editieren wenn CommonAPI2 geladen ist.

  • Wie ich schon schrieb, bei meinen eigenen Konstruktionen geht das. Außer bei denen, wo ohnehin nur bestimmte Gleise oder Straßen zugelassen sind.

    Hier der Mod-Dialog für Gleisbauer:



    Die anderen Mods haben einen entsprechenden Checkbutton. Damit alle Gleise weiterhin in den normalen "Bildchen"-Menüs erscheinen, muss GSMM in der Reihenfolge vorher geladen werden und auf [PASSIV] gestellt sein.


    Dafür unterstützen meine Mods zurzeit nicht die Filter-Funktiion der CommonAPI, während andere Mods wiederum nicht GSMM unterstützen. Es ist aber - sofern ausschließlich die Dropdowns gefiltert werden soll - eine kooperative Angelegenheit, da diese Option in die entsprechenden Mods implementiert sein muss, wozu ich niemanden zwingen kann. Auch die CommonAPI muss offensichtlich durch die jeweilige Mod unterstützt werden, damit es funktioniert. Bei den Konstruktionen von enzojz fällt z.B. beides raus.


    Natürlich ließe sich die Schnittstelle vom jeweiligen Benutzer mit entsprechenden Skript-Kenntnissen selber in alle möglichen Mods einbauen, aber zumindest bei GSMM ist das nicht ganz so einfach.

    Ich will TpF3 mit Dinos, Zombies und Vulkanen!

  • Viele Funktionalität in CommonAPI2 wurde halt über die Zeit abgeschaltet, oder funktionieren nicht mehr weil UG was geändert hat oder sich Nutzer beschwert haben, das CommonAPI2 zu lange beim laden braucht.

    (Alle Konstruktionen checken, ob sie ein Update brauchen war halt bei >1000 Mods nicht mehr umsetzbar )


    Vielleicht macht UG ja was brauchbares für TPF3, ich zweifele aber irgendwie daran...

  • Technisch sollte das gehen mit allen Mods, die die CommonAPI1/2 Schnittstelle nutzen.

    Wie kann ich überprüfen ob diese Schnittstelle da ist, respektive sie hinzufügen?


    Auf dem ersten Blick geht folgendes nicht:

    Die Steam-Mods von Enzojz.

    Die Spitzkehre eat1963_spitzkehre_2 hat, wie ich schon erwähnt habe, eine eigene manuelle Filterliste.

    Und dann gibt es noch Gleisbauer und Weichenbaukasten von WernerK.

    Ggf andere Mods, die ich Ich im Moment nicht auf dem Radar habe.


    Dafür unterstützen meine Mods zurzeit nicht die Filter-Funktiion der CommonAPI, während andere Mods wiederum nicht GSMM unterstützen. Es ist aber - sofern ausschließlich die Dropdowns gefiltert werden soll - eine kooperative Angelegenheit, da diese Option in die entsprechenden Mods implementiert sein muss, wozu ich niemanden zwingen kann. Auch die CommonAPI muss offensichtlich durch die jeweilige Mod unterstützt werden, damit es funktioniert. Bei den Konstruktionen von enzojz fällt z.B. beides raus.

    Das bedeutet also schlicht, dass ich jede nicht unterstütze Mod manuell anpassen muss?


    Kann ich den GSMM irgendwie selektiv nur für das Dropdownmenü nutzen? Wenn ich dann sowieso ein Whitelist für die Spitzkehre anfertigen muss, wäre es kein grosses Ding diese rüber zu kopieren. Das Ganze bringt aber nichts, wenn auch das Gleisbaumenü gefiltert wird.

    Einmal editiert, zuletzt von HansVader ()

  • Zitat

    Das bedeutet also schlicht, dass ich jede nicht unterstütze Mod manuell anpassen muss?

    So ist es. Im Wesentlichen wären es die Sachen von enzojz. Ich weiß nicht, ob ich den noch irgendwie überreden könnte, meinen Filter einzubauen, der ist wohl in letzter Zeit auch nicht mehr aktiv. Falls du entsprechende Kenntnisse hast und dich selber da rantraust, könnte ich dir per PN entsprechende Hinweise geben. Spitzkehre kann ich nichts zu sagen.

    Zitat

    Kann ich den GSMM irgendwie selektiv nur für das Dropdownmenü nutzen?

    Ja. Hab ich oben unter #7 erklärt. Wenn du allerdings die Einträge nicht nur auf benutzte Typen beschränken möchtest, müsstest du es in der Tat manuell in die Whitelist eintragen.

    Ich will TpF3 mit Dinos, Zombies und Vulkanen!

  • Bei der Spitzkehre ab Version 2.34:

    - Changed: Gleisauswahl ohne dass CommonAPI aktiviert/installiert ist.


    Das wurde also aktiv aus der Mod entfernt...


    Die Idee der CommonAPI war halt meinen aktiven Standard mit Support über alle Mods hinweg... da wird halt nix draus.

    Und die CommonAPI1 lief das sogar ohne DLL und es gab auch mal Mac Support dafür.


    Bei anderen Spielen gibt es das halt als gemeinsame Mod, hier wird es aktiv sabotiert und von UG gibt es auch nix brauchbares... also ist Handarbeit angesagt. Und da kann sich auch kein anderer Modder herausreden von wegen zeitgleiche Entwicklung. Am Ende haben die Spieler eine Fragmentierung, die absolut unnötig ist...


    -edit-

    enzojz Mods als Module müssten api.res und daher das über startYear, endYear mitbekommen. isVisible wird wohl aber nicht genutzt?

  • Ja. Hab ich oben unter #7 erklärt. Wenn du allerdings die Einträge nicht nur auf benutzte Typen beschränken möchtest, müsstest du es in der Tat manuell in die Whitelist eintragen.

    Das habe ich tatsächlich beim testen übersehen. Bei deinen Mods funktioniert im Passivmodus der Filter auch. Ich war bisher davon ausgegangen, dass dies ein globaler Filter wäre. Ich habe nur bei anderen Mods geschaut, welche aber ausschliesslich im Aktivmodus weniger Gleise hatten (Ergo Annahme, dass dieser auch nur im Aktivmodus funktioniert). Dies macht eigentlich Sinn, weil dein Aktivmodus die vorhandene Gleise reduziert, ergo beeinflusst du damit indirekt die anderen Mods. Und logischerweise wenn du im Passivmodus keine Gleise wegfilterst, laden somit alle anderen Mods auch alle vorhanden Gleise.


    Zumindest konnte ich jetzt dank eurer Hilfe das Problem kleiner machen. Dann muss ich wohl oder übel manuell die Whitelist füllen und bei Enzojz Mods selber Hand anlegen. Der Rest scheint damit aber wohl zu funktionieren. Vielen Dank.