Beiträge von eis_os

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


    Also die Fahrstreifen sind nur 3m (wie es auch bei einer kleinen Straße der Fall ist), das ist gerade so das da zwei Fahrzeuge gut vorbeifahren können.

    Daher denke ich, das ich da keine weitere noch kleinerer Straße erstelle. Da passt ja dann gar kein Fahrzeug mehr durch.


    Sprich die "mittlere" Straße mit Parkstreifen hat 3m (released, kann nicht mehr geändert werden)

    Die "große" neue Straße mit Parkstreifen (4 Fahrstreifen + 2 Parken) hat nun 3,2m. Da bin ich mir noch unsicher, ob es ggf. etwas breiter sein soll. Meinungen?



    Also das sieht gerade so aus: 4+2 Parken, 4+1 Parken, 4 (Große Straße von UG), 4+2 Parken

    Oder anders gesagt, ne große Straße mit einem seitlichen Parkstreifen ist gleich groß wie ne große Straße ohne.


    Bei UGs Straßen sind halt die Fahrstreifen immer 4 Meter bzw. bei der kleinen Variante 3m Breit....

    Neue Version 20240129:


    Ich habe wie angekündigt den Modlisten Code komplett überarbeitet.
    U.a. kann CommonAPI2 nun auch in einem neuen LUA State auf die api.gui.* Funktionen zugreifen. Damit ist es mir möglich die Erweiterten Spieleinstellungen zu modifizieren.


    (Der LUA Code für die Anzeige ist noch nicht optimiert und wird mit dem alten Fenster gemeinsam genutzt, also ist das noch recht rudimentär)


    Auch eine schöne neue Sache: Habt Ihr ein Spielstand mit nicht installierten Mods, aber ein Mod mit gleichen Namen bzw. via gleicher modid ( CommonAPI2 Erweiterungen für Mods ) so kann CommonAPI2 nun dieses austauschen, das geht auch mit mehreren Mods via einem Klick.


    Auch kann jetzt eine Abhängigkeit direkt aktiviert werden. (Wird dann auch vor diesem Mod platziert)

    Ziel ist es irgendwann mal das Renderoverlay (oberes Menü) komplett Fallen zu lassen.


    FlexStreets hat auch ne ganze Menge an Bugs ausgetrieben bekommen, nun sollten auch "gedrehte" Straßen gerendert werden. Fehlerhafte Tramtracks an Ecken sollten damit auch behoben worden sein.


    Noch was? Achja, die Seatprovider werden nun auch geprüft...


    Downloads:

    >>> CommonAPI2 Download

    >>> Streetpackage Download



    1.8.20240129
    - BUILD 35732 Version GOG, Steam windows and linux support
    - ModList can only be changed in Custom Game Settings Dialog now.
    - new: CustomGameSettingsComp overlay system, replaces old ModListHandling code
    - new: Mod dependency errors in CustomGameSettings component ui
    - new: new native ModList interface
    - new: replace missing mods with installed versions, uses mod.lua extradata or name
    - new: replace all missing mods with installed versions.
    - new: enable mods required by other mods
    - FlexStreets: fix laneConfigCommonAPI->material rendering when street is reversed by StreetContext
    - FlexStreets: fix streetStripeCommonAPI rendering when street is reversed by StreetContext
    - FlexStreets: fix laneConfigEndCapCommonAPI rendering when street is reversed (except at dead ends)
    - FlexStreets: fix tram track, catenary rendering when street is reversed (wrong attribute map access)
    - inspect window: split SHAPE_LIST and it's attributes for entity components
    - ModSettingWindow: add gravity so TextInput is bigger with tpfui and add info-message style to save button
    - checkModels: add compartment loadConfigs seat checker

    Hat etwas länger gedauert.


    Nein technisch sehe ich da gerade keine Möglichkeit. Sonst müsste ich dafür noch ein zusätzliches laneConfigEndCap2CommonAPI einbauen für die "andere Seite".

    Sprich die nächste CommonAPI2 wird die Einträge halt spiegeln.



    Des weiteren werden dann auch streetStripeCommonAPI streetStripeMedianCommonAPI und auch die laneConfigCommonAPI -> materialien gespiegelt sollte CommonAPI2 Attribute 31 in der Straße vorfinden. bzw. der interne StreetContext sagt es ist alles umgedreht.


    Damit sollte die fehlerhafte Darstellung von Gleisen an Verbindungen des selben Straßentyps nicht mehr vorkommen, die Oberleitungen stimmen dann auch und die Bodentexturen.


    Die streetStripes können ggf. einen Offset haben. Da werde ich wohl erst einmal nix ändern können.

    Das Problem mit Sackgassen habe ich nicht lösen können, da egal wie rum ich die Straße drehe, es im Node am Ende keine Änderungen der Attribute gibt.
    (Ausgenommen die Verbindungsmap, die die Laneverbindungen angeben)


    Sprich Attribute 31 bleibt immer 0, keine Ahnung warum :/

    (Das ist wieder so ein Fall bei TPF2, der ohne CommonAPI2 halt nie ne Rolle spielt)


    Bessere Nachrichten habe ich leider dazu nicht. Außerdem bin ich immer noch kein Zentimeter mit der Modliste weiter... ||

    Ja, das wäre dann mit Beule und eine Änderung der Straßenbreite, die könnte ich natürlich auch mit einer sehr kleinen Abweichung provozieren (20cm insgesamt mehr Straßenbreite, jeweils 10cm Gehweg schmäler):

    Das ist dann für TPF2 ne Kreuzung, das Ergebnis ist naja Verbesserungswürdig:



    So wirklich gut sieht das mit den resultierenden Lücken auch nicht aus... Die Lücke zu schließen würde bedeuten ich müsste einen neuen Transition Code für Kreuzungen schreiben. Dazu hab ich nicht genügend Info zu und das wird dann wirklich richtig kompliziert. TPF2 macht das ja zum Beispiel bei Busspuren auch nicht...


    -edit-

    Du kannst das in eisos_town_medium_parkingtrees selber sehen, 10m, die Lampen sind dann dazwischen...

    Hotfix für eisos_town_large_trambus, die laneConfigCommonAPI reparieren:


    Code
        laneConfigCommonAPI = {
            { },
            { transportModes = "busMaybeTramOnly" },
            { },
            { },
            { transportModes = "busMaybeTramOnly" },
            { },
        },

    Werde heute Abend wohl ein neues Paket hochladen...





    Zum Thema Haltestellen, technisch geht es wie gewünscht,
    aber das Problem beim Einfädeln und Ausfädeln bei Spuren bzw. der allgemeine Spurwechsel ist halt bei TPF2 immer etwas "suboptimal". Das sieht halt zum K... <X aus.


    Auch mit Werners Werkzeug musste ich TPF2 mit noch ein paar Waypoints überreden die Straßen nicht zusammen zu fassen... (sprich die sind nicht für die Wegfindung da, sondern weil mir TPF2 sonst die Straße in ein Stück umwandelt)



    (Bild mit Privatfahrzeug als Beispiel hinzugefügt...)

    Dafür hat CommonAPI2 die Einstellung busOnly;)

    Da hast du dann nur noch individual Verkehr um "Brötchen" zu holen oder in die Garage zu fahren :D In der Regel funktioniert es, getestet hab ich es noch nicht aber sollte gehen. Man darf halt die Bushaltestelle nicht direkt vor oder hinter einer Kreuzung bauen.

    laneConfigCommonAPI ist nur für die Lanes zuständig und "eigenständig". Sprich Rendering Sachen sind davon unabhängig.


    Beachte die wichtigen Hinweise in der Doku:

    - Mit einer vollständig geladenen CommonAPI2 übernimmt CommonAPI2 laneConfigCommonAPI.

    - Ohne CommonAPI2 geladenen DLL, so oder native abgschaltet muss mein Straßenpaket vor deiner eigenen Straßen geladen sein. Dieses ändert die Straßen so gut wie möglich um.

    - Es gibt keine Möglichkeiten solche Straßen per Jokerstraßen oder anderen ScriptMods zu erstellen...

    (Sprich diese müssen physisch auf deinem Datenträger liegen und via modifer eingelesen werden können)

    https://commonapi2.bytetransfe…ts?id=laneconfigcommonapi


    Hintergrund: In CommonAPI2 steckt der Code, der alle *CommonAPI Parameter einliest und durch das ganze Spiel trägt, da sich UG weigert die Daten weiter durchzureichen oder extra Daten zu speichern.

    (Ich hab das mehrmals angesprochen, sie haben mir damit das Leben unnötig schwer gemacht, aber wie man sieht, auch diese Hürde habe ich umgangen)


    Es gäbe aber keine Möglichkeit die Straßen zu reparieren wenn CommonAPI2 nicht mehr geladen ist und man diese per postRunFn erstellt.

    Auch ist die interne API aufgepfropft. Damit UG mir das nicht kaputt macht, werde ich das wie hier jetzt nicht verraten...


    Technisch kann man zwar da dran, das ist aber recht unschön in der postRunFn:

    commonapi._native.FlexStreets.getExtraData(api.res.streetTypeRep.find("eis_os_streetpackage/eisos_town_y_large_avenue_middle_tram.lua"), "streetStripeCommonAPI")


    Ohne CommonAPI2 Dll verliert man die Daten dann und kommt da auch nicht mehr heran.



    Die Haltelinien werden via laneConfigEndCapCommonAPI erstellt. Beachte, für CommonAPI2 zählt jede Lane, auch die der Gehwege! (Wenn ich alles richtig habe, sollten aber zu viele Einträge sinnvolle Fehlermeldungen provozieren)

    Da war doch was?


    Achja, ich wollte schon seit langem mal ne neue Version hochladen, das ist wegen CommonAPI2 Code Änderungen für den Nodeeditor vor Weihnachten irgendwo unter gekommen, nunja, dann gibt es halt direkt Version 1.30 :-)


    Nun gibt es die ersten Straßen mit Parkplätzen, es sind eigene echte Lanes, vier Varianten, jeweils mit Baumscheiben bzw. Gleisen...





    Download wie immer unter:

    eis_os Strassenpaket - Strassen mit Rasengleis & Mitteltram -


    1.30

    - ### This version requires at least CommonAPI2 1.8.20231025 ###

    - split into eisos_town_medium_parking and eisos_town_medium_parkingtrees

    - fix eisos_town_medium_p2 (Street with big sidewalk) border


    1.20

    - ### This Version requires at least CommonAPI2 1.8.20231025 ###

    - new streets: eisos_town_medium_parking and eisos_town_medium_parking_tram

    - use new CommonAPI2 FlexStreet laneConfigCommonAPI transportModes

    - new failback code, supporting user created street lua, no hardcoded filenames (uses a category name as temporary storage)

    Nein, das Problem liegt darin, das TPF2 nie das Flag für Haltelinien/signalAssetName in seiner AttributeMap setzt.


    Etwas genauer, jede Straße bzw. Kreuzung hat die Entity Komponente Shapelist, jede Shape List hat eine AttributeMap.

    Ich kenne den Code der das Rendern veranlassen würde (da ich ne Menge eigenen Code für CommonAPI2 geschrieben habe), der sieht in etwa so aus:


    Ist das Attribute 6 in der AttributeMap gesetzt?

    Wenn ja, ist signalAssetName nicht empty?

    - Rendere die Haltelinie

    - Füge das Model aus signalAssetName hinzu.


    Aber es wird für TPF2 das traffic_light system aus res\config\traffic_light benutzt,

    das heißt das dieser Code eigentlich gar nicht mehr genutzt werden soll und signalAssetName ja auch nicht mehr genutzt wird.


    Resultat ist, es gibt im heutigen TPF2 keine Haltelinien, die mir bekannt wären.


    Beim schreiben des Rendercodes der CommonAPI2 hab ich da mal herumexperimentiert: