Kleine Übersicht um eigene Gleismodule zu erstellen.
1 Einführung
Zwar kann in TPF2 auch wieder Gleise erstellen, aber man hat wie unter TPF1 das Problem, das diese Gleise nicht einem Bahnhof genutzt werden können.
Damit es dann nicht X unterschiedliche Bahnhofsmodifikationen gibt
Hier hilft die CommonAPI2 + CommonAPI2 Bahnhofsadapter, damit ist es möglich mehrere Gleistypen zu unterstützen, darüber hinaus kann man damit auch Oberleitungen hinzufügen via Gleismodifikation.
Warum nicht selber einen Bahnhof editieren? Ja, das könnt Ihr natürlich, aber ihr werdet dann mit Supportfragen belästigt, warum Gleis X nicht mit Gleis Y funktioniert.
Wenn Ihr das untere Beispiel zeigt, wird keine feste Abhängigkeit zur CommonAPI2 geschaffen, Ihr könnt auch andere Lösungen anbieten. Auch andere Bahnhofkonstruktionen können diesen Standard folgen. Die CommonAPI2 hat noch ne ganze Menge an Hilfsfunktionen für die Bahnhofsanpassung.
2 Codebeispiel Gleis Module
[code='gleis.module'] metadata = {
track = true,
common = {
hasCatenary = true,
isHighSpeed = false,
toggleCatenary = "station/rail/platform_eis_os_1000mm_track.module",
toggleTrack = "station/rail/platform_eis_os_750mm_track_catenary.module",
}
},
updateFn = function(result, transform, tag, slotId, addModuleFn, params)
if (result.common_trackinterface ~= nil and result.common_trackinterface.makeTrackByTrackType ~= nil) then
result.common_trackinterface.makeTrackByTrackType(result, transform, tag, slotId, addModuleFn, params, "eis_os_1000mm.lua", true)
else
-- Normal without CommonAPI2 (failback to normal track type)
trainstationutil.makeTrack(result, transform, tag, slotId, addModuleFn, params, 1)
end
end,[/code]
2.1 Erklärung
2.1.1 metadata Einträge:
In der Tabelle [tt]common[/tt] müsst Ihr für das Gleismodifkationstool Informationen bereitstellen:
[table]
[tr]
[td]hasCatenary[/td]
[td]true/false[/td]
[td]Hat das Gleismodul eine Oberleitung (wichtig wenn man das Gleismodifkationstool nutzt) Zwingend Notwendig[/td]
[/tr]
[tr]
[td]isHighSpeed[/td]
[td]true/false[/td]
[td]Ob das Gleis eine Hochgeschwindigkeitsvariante darstellt. Zwingend Notwendig[/td]
[/tr]
[tr]
[td]toggleCatenary[/td]
[td]string[/td]
[td]Angabe des Modules wenn eine Oberleitung ab oder gebaut werden muss[/td]
[/tr]
[tr]
[td][/td]
[td]string[/td]
[td]Angabe des Modules wenn der Gleistype umgeschaltet werden soll, von Normal auf Highspeed oder umgekehrt.[/td]
[/tr]
[/table]
2.1.2 updateFn
Erst mal Abfragen ob der Bahnhof das CommonAPI2 Interface unterstützt:
[tt]if (result.common_trackinterface ~= nil and result.common_trackinterface.makeTrackByTrackType ~= nil) then[/tt]
Dann können wir unseren Gleistyp bauen:
[tt]result.common_trackinterface.makeTrackByTrackType(result, transform, tag, slotId, addModuleFn, params,
, )[/tt]
[table]
[tr]
[td][/td]
[td]string[/td]
[td]Euren Gleisdatei, ggf mit Unterverzeichnis Achtet auf [b]gross & KLEINSCHREIBUNG![/b][/td]
[/tr]
[tr]
[td][/td]
[td]true/false[/td]
[td]Mit Oberleitung bauen[/td]
[/tr]
[/table]
[tt]else[/tt]
Wenn der Bahnhofsadapter und die CommonAPI2 nicht geladen wurden, oder dieser Bahnhof das Interface nicht unterstützt:
[tt}trainstationutil.makeTrack(result, transform, tag, slotId, addModuleFn, params, )[/tt]
Die UG Gleistypen sind:
[list=1][*]Normal
[*]Normal mit Oberleitung
[*]Highspeed
[*]Highspeed mit Oberleitung
[/list][tt]end[/tt]