CommonAPI Fahrzeug Animationscallback

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • CommonAPI Fahrzeug Animationscallback

    Callback um Fahrzeuge zu gestalten.

    CommonAPI Fahrzeug Animationscallback


    Vorläufige Entwicklungsbeschreibung der Version 1.11.20191002-dev



    Animationscallback registrieren


    Wichtig: Baut eure Fahrzeuge immer so, das eure Mods auch ohne die CommonAPI funktioniert. Um herauszufinden ob die CommonAPI geladen ist, überprüft die globale Variable commonapi und danach commonapi.vehanimations
    Es kann sein, das der Nutzer vehanimations abgeschaltet hat, also muss immer beides getestet werden.


    Um eine Animationscallback zu aktivieren, müsst Ihr in der Fahrzeug.mdl die Funktion commonapi.vehanimations.add(<mdlname>, <callbackfn>) aufrufen.

    Beispiel:

    Source Code

    1. local function MirageCallback(data, index)
    2. end
    3. function data()
    4. if (commonapi ~= nil) then
    5. if (commonapi.vehanimations ~= nil) then
    6. commonapi.vehanimations.add("vehicle/tram/be4_6mirage.mdl", MirageCallback)
    7. end
    8. end
    9. return {
    10. ...
    Display All



    Callback Funktion


    Die CommonAPI ruft bei jeder Entscheidung eines Tür Events bzw. des Abfahrtsevent einer Station euer Callback auf.
    local function mycallback(data, index)

    In der data Variable ist eine Tabelle mit allen Daten des Zugverbandes, der Index beschreibt den Index in der vehicles Subtabelle:

    Source Code

    1. {
    2. depot = -1,
    3. id = 16785,
    4. line = 16428,
    5. stopIndex = 0,
    6. type = 2,
    7. vehicles = { {
    8. age = 2,
    9. color = { -1, -1, -1 },
    10. event = "close_all_doors",
    11. fileName = "vehicle/tram/Avenio.mdl",
    12. lastevent = "open_all_doors_19",
    13. logo = "",
    14. loop = false,
    15. modelId = 405,
    16. opennum = 19,
    17. purchaseDate = {
    18. day = 9,
    19. month = 7,
    20. year = 1950
    21. }
    22. } }
    23. }
    Display All


    Hier könnt Ihr nun:
    • Das Event umschreiben bzw. eine andere Variante eines Events auswählen (Zurzeit sollte die Länge der Animation nicht erheblich länger sein als das normale Event)
    • Die Farbe des Fahrzeug ändern
    • Das angebrachte Logo verändern
    Um einen Eindruck der Daten zu erhalten, könnt Ihr in der CommonAPI Console eingeben: commonapi.vehanimations.traceOn()
    Ihr könnt in der Callback Funktion math.random ausführen. Auch ist die Möglichkeit andere TPF Lua Funktionen zu nutzen, bedenkt aber das die Callback Funktion so schnell wie möglich sein muss. Daher arbeitet sparsam.
    Außerdem bei einem Zugverband ist die Datentabelle für alle Callbacks die gleiche Tabelle, daher sind Änderungen an der Struktur nicht erlaubt!

    Für jedes Fahrzeugteil gibt es einen Eintrag in vehicles. Euer Callback erhält den Index in diese Tabelle als zweite Variable der Callback Funktion
    ageAlter des Fahrzeug(teils) in Monaten
    colorFarbe des Fahrzeugs (rgb float) { -1, - 1, -1 } bedeutet keine Farbe
    eventAbzuspielende Animation/Event. Sollte es nicht im Modell definiert sein, wird das default Event als Failback genutzt.
    (Die Länge der Animation für die Abfahrtszeit Berechnung kann dadurch nicht mehr verändert werden )
    lasteventVorheriges event wenn bekannt
    opennumNur bei close events, die letzten zwei Ziffern des open events oder nicht vorhanden
    loopAnimation unendlich abspielen
    logoString "" für nicht gesetzt. Logo auf dem Fahrzeug ggf. ändern



    Weiterführende Informationen


    CommonAPI in der Webdisk
    CommonAPI Forum Beitrag

    341 times viewed