[h1]CommonAPI Fahrzeug Animationscallback [/h1]
[info=warning]Vorläufige Entwicklungsbeschreibung der Version 1.11.20191002-dev[/info]
1 Animationscallback registrieren
[info=warning]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.
[/info]
Um eine Animationscallback zu aktivieren, müsst Ihr in der Fahrzeug.mdl die Funktion commonapi.vehanimations.add(<mdlname>, <callbackfn>) aufrufen.
Beispiel:
local function MirageCallback(data, index)
end
function data()
if (commonapi ~= nil) then
if (commonapi.vehanimations ~= nil) then
commonapi.vehanimations.add("vehicle/tram/be4_6mirage.mdl", MirageCallback)
end
end
return {
...
Alles anzeigen
2 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:
{
depot = -1,
id = 16785,
line = 16428,
stopIndex = 0,
type = 2,
vehicles = { {
age = 2,
color = { -1, -1, -1 },
event = "close_all_doors",
fileName = "vehicle/tram/Avenio.mdl",
lastevent = "open_all_doors_19",
logo = "",
loop = false,
modelId = 405,
opennum = 19,
purchaseDate = {
day = 9,
month = 7,
year = 1950
}
} }
}
Alles anzeigen
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
age | Alter des Fahrzeug(teils) in Monaten |
color | Farbe des Fahrzeugs (rgb float) { -1, - 1, -1 } bedeutet keine Farbe |
event | Abzuspielende 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 ) |
lastevent | Vorheriges event wenn bekannt |
opennum | Nur bei close events, die letzten zwei Ziffern des open events oder nicht vorhanden |
loop | Animation unendlich abspielen |
logo | String "" für nicht gesetzt. Logo auf dem Fahrzeug ggf. ändern |
3 Weiterführende Informationen
CommonAPI in der Webdisk
CommonAPI Forum Beitrag