Moderner Bahnhof mit mehr Bauoptionen

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 dachte da eher an bestehende Bahnhofsgebäude, welche man vielleicht aus den Originalmods anderer Modder durch sie "ausklammern" und für dieses Projekt hier zur Verfügung stellen könnte - nur als Gedankengang, wenn jemand dazu bereit wäre.


    Soll ja nicht alles an Dir alleine hängen bleiben... ;)

  • Neue Version 20190129

    • (Intern) Komplett neue Bauroutine
    • Eigene Layouts per Liniennamen definieren
    • Fix: Längen und Anzahl der Gleise führen zum Crash in TPF Scripten
    • Neun Gleise per UI baubar
    • Bessere Behandlung der erweiterten Längen
    • Fix: Bahnhofsdächer an falscher Stelle
    • Neue Icone für Tab 3
    • Layout B ungetestet, (wird nicht mit Steigungen funktionieren)

    Webdisk download hier: Moderner Bahnhof mit mehr Bauoptionen (Modern train station)


    Nochmalig: Es ist eine Alpha Version. Achtet auf das Datum im Dateinamen
    Passwort: alphaalpha






    Diese Version ist nur grob getestet.


    Es gibt nun Layouts zum Auswählen, ABCD12345. ABCD sind fest verdrahtet, 12345 sind eigene Layouts
    C und D funktionieren noch nicht.


    Zum Layout erstellen:


    Um ein einfaches Layout zu erstellen, nutzt Ihr den Linienmanager, erstellt eine neue Linie.


    Dann benennt Ihr die neue Linie um: (Linie anklicken, Stift Symbol zum Umbenennen nutzen, Layout schreiben und dann die Enter Taste nicht vergessen!)
    >>[UI Nummer]>>[Layout]


    Die Nummer könnt Ihr in der UI dann anwählen, siehe dafür auch den Screenshot.


    Für das Layout dürft Ihr zur Zeit benutzen:


    =Gleis
    MMittelbahnsteig
    RBahnsteig für Gleis Rechts (d.h. nachfolgendes Gleis mit = definieren)
    LBahnsteig für Gleis Links (d.h. vor dem Buchstaben L ist ein Gleis mit = definiert)
    Leerfläche 5m, dort passt auch ein Gleis hin ;)


    Das eigene Layout kann auch mit verschiedenen Gleislängen gebaut werden, dafür einfach diese in der UI auswählen. (TAB3)
    Nicht alles was man Bauen kann wird auch funktionieren.


    Alle Gleise müssen immer vom Hauptanschluss erreichbar sein oder zumindest der zweite Gleisanschluss mit dem Strassennetzwerk verbunden werden.




    Viel Spaß

  • Nein, ohne Erklärung ist es ja nicht nutzbar, außerdem es ist immer noch eine Alpha Version

    Als nächstes ist ein besseres Bahnhofsgebäude dran und auch komplexe Layouts aus Dateien.


    Mit komplexen Layouts sollten dann wohl auch das Trennen von Gleisen funktionieren bzw. dann kann man theoretisch selber ein Gleiswechsel einbauen...


    Vielleicht kann mir @Tom auch verraten wie man mehrere Gleistypen an Plattformen anschließen kann.
    Zählt TpF die Nodes dann einfach weiter für die terminalGroups vehicleNodeOverride Ids?

  • Zählt TpF die Nodes dann einfach weiter für die terminalGroups vehicleNodeOverride Ids?

    Der Wert von "vehicleNodeOverride" ist der Index des Nodes in der "edgeLists"-Auflistung, zu dem die Terminals gehören und der denn Haltepunkt des Zuges festlegt.
    Da wird von TpF nichts gezählt, Du musst für den korrekten Index-Wert abhängig von der Anzahl der von dir erzeugten Edges selbst sorgen.
    Schau mal nach "getTotalEdgeCount()" und den Vorkommnissen von "vehicleNodes" in meinem Stationbuilder v2.3 (Kanshi's Bahnhof und mein Standard plus)

    Vielleicht kann mir @Tom auch verraten wie man mehrere Gleistypen an Plattformen anschließen kann.

    Die Frage habe ich jetzt nicht verstanden, was meinst Du mit "mehrere Gleistypen"?

  • Hmm, das war wohl etwas schlecht ausgedrückt, der Index in einem Array aus allen edges. Ist schon klar das der Index errechnet bzw. vom Script bestimmt wird.


    Bei zwei Gleistypen hab ich ja zwei theoretisch unabhängige edgeLists (bzw. mit Strassen sogar noch mehr), jeweils mit Ihren eigene Nodes. Die NodeID ist dann der Index über alle edge listen hinweg, wollte mich da nur nochmals versichern.


  • Here are some useful info:


    First, mixing cargo platforms and passenger platforms seems leads to crash. As I have just test tonight. My test with pure cargo station or passenger station is find, but once I try to change the type of one platform, it crashes.


    Then about terminals:


    in mdl files you will see this:


    terminals = {
    { personNodes = { 6 }, personEdges = { 1, 3} },
    { personNodes = { 5 }, personEdges = { 0, 2} }
    }


    so in debug mode you can see, if the platforms have two tracks, two red lines.
    don't know very clearly the function of personNodes, but it's the hightlight dot in debug mode, and always surrended by affected personEdges(red), where the passengers wait for the train. In any cases, node = {point, vector}, edge is forms by two nearest nodes, you can count these index by fingers. (two nodes a line and one edge a line in data before lanesutils in raw models, for raw data, each {point, vector} is a node)


    in the result.terminals, you will have


    {
    terminals = { listofterminals },
    vehicleNodeOverride = track * 4 - 2
    }


    the listofterminals is a table like this


    {platformid, terminaId}


    where platformId is the model index of the platform mdl file in result.models, and terminalId is the index of the terminals section in platform model file
    vehicleNodeOverride is the id of the track edge node index in result.edgeList, always where the train (center) stops


    The vector of the track edges controls the side where train doors open


    You can define internal terminals directly in a model, in this case, you need to define vehicule edges aside of person edges, then


    terminals = {
    { vehicleNode = {x}, personNodes = { 6 }, personEdges = { 1, 3} },
    { personNodes = { 5 }, personEdges = { 0, 2} }
    }


    in result.terminals you just erase vehicleNodeOverride, and put this model id as the first, can be followed by the others models.


    You can look at into the stationlib.lua in my underground station and also the complexstation.lua of complex station. I use generated data to map into these results.


    All indices are from 0.


    for example in my complex station I defined this by hand for tram platforms



    As you can see and guess I have rotated one of the platforms model by 180° in the terminal of index 1 (the 3rd in the second one)


    and in this case:


    It take last train platform and uses it's empty side of one tram track, and use a new tram platform for another.


    However, for roads with two or more lanes, you can only affect terminals to the right side by edge indices, the left side is impossible. So you can see in my complex station, the two tram tracks are independent and the tram platform give extra edges to connect them and raw roads.

    This guy is too lazy to create a signature. 8o

    4 Mal editiert, zuletzt von Enzojz ()

  • Hmm, das war wohl etwas schlecht ausgedrückt, der Index in einem Array aus allen edges. Ist schon klar das der Index errechnet bzw. vom Script bestimmt wird.


    Bei zwei Gleistypen hab ich ja zwei theoretisch unabhängige edgeLists (bzw. mit Strassen sogar noch mehr), jeweils mit Ihren eigene Nodes. Die NodeID ist dann der Index über alle edge listen hinweg, wollte mich da nur nochmals versichern.


    You can suppose all nodes are stored in a linked list so the index is determinate by the order you have written them in the script.

    This guy is too lazy to create a signature. 8o

  • Bei zwei Gleistypen hab ich ja zwei theoretisch unabhängige edgeLists (bzw. mit Strassen sogar noch mehr), jeweils mit Ihren eigene Nodes.

    Nein, das hat mit Gleistypen oder Strassen nichts zu tun. VehicleNodeOverride beinhaltet den jeweiligen Node-Index über alle Nodes in
    in edgeLists - egal ob Straßen oder Gleise, ob nach Typ geordnet oder durcheinander (Gleis, Straße, Gleis, ...).
    Hier meine Notiz an mich selbst bei meiner entsprechenden Funktion...

    don't know very clearly the function of personNodes,

    These are the entry nodes to the platform for passengers leaving the train...

  • Yes, I know how the NodeID system works. Was only not quite sure about what happens if there is a street in between as example, thanks for clarification.


    Technical my station uses an extra bind pass. For every rail station track segment the future edgeId is recorded and later a bind function connects every platforms.


    Again only placing all the options into the UI is a real challenge...

  • Ich nehme an, mit "Gleistypen" meinst du die 4 Varianten Standard (mit / ohne Oberleitung) und Hochgeschwindigkeit (mit / ohne Oberleitung) ?


    Beim Bau ist es in Ordnung, wenn man sich für einen Typ entscheidet - genial wäre es wirklich, wenn per Upgrade einzelne Gleise veränderbar wären.
    Vielleicht speziell nur dann, wenn ein 5m Leerraum ein Gleis trennt (falls nicht anders machbar)?

  • @Enzojz - hmm, I don't have any crashes on my map with my stations.
    It only crashed as i connected person lanes to vehicle lanes on the street connection.
    Learned the lesson.


    Using seperate edgeLists-entries is the only way to have different tracks (speed, catenery etc.)
    for planned stations. It should work. Otherwise it is senseless.


    I use tracks with vmax = 30km/h for the tracks with double allocation at the last stations
    (Standard plus and Kanshi's modern station). We will see if new crash reports arrive.


    Mysterious...

BlueBrixx