Hey @eis_os,
Ich bastel aktuell ein wenig mit deiner commonAPI herum. Damit das ganze einfacher mit meinen Scripts harmoniert, habe ich mir einen weiteren repo Typen für Verkehrswege definiert, der mir alle Straßen und Gleise zurückliefert.
Ich dachte mir vielleicht gibt es hier in der Community noch andere die gerne nicht strikt zwischen Gleis und Straße unterscheiden wollen es ist dann manchmal einfacher in einer Mod Straßen und Gleise auszutauschen.
Dieses route repo liefert mir als Ergebnis so etwas:
data: {
string name -- you should know this one
string desc -- same here
number yearFrom -- same here
number yearTo -- dito
number width -- the total width of this route
number height -- the total height blocked by this route
number distance -- the distance to the center of the next route of the same type. in case of streets this is just the same as width
number cost -- you should know this guy
table lanes = { -- information about the provided lanes
{
table location = {
number, -- y position relative to the center of the route
number -- z Position relative to the center of the route
},
number speed, -- the speed of this lane
callable table transportModes={ -- a list of transportModes. In case of streets this data is taken from the transporModesStreet and transportModesSidewalk, in case of tracks it's simply {'TRAIN'}. The "real" transportModes of the lane depend on the tramTrackType or the catenary attribute so you can call this table and pass routeParams to it. It will again return a new callable transportModes table considering these params
string, -- a valid transport mode
...
}
},
...
}
}
Alles anzeigen
Die routeParams sind einfach sowas:
routeParams: {
boolean catenary -- does this route have a catenary? In case of tracks this works a expected, in case of streets this defines if the tram tracks do have a catenary or not.
boolean tramTracks -- does this route have tramTracks? Ignored in case of tracks, obvious in case of streets.
}
getEntries, getEntriesFiltered haben im repoentry zusätzlich noch einen type mit drin, um die ID zusammen mit dem type eindeutig zu halten und getById und getByName nehmen entsprechend als 2. Parameter den type entgegen, alternativ kommt getByName auch damit klar, wenn man als Pfad z.B. 'track/standard.lua' übergibt (war das standard Vorgehen in meinem Script)
Ich weiß nicht ob das etwas für die commonAPI ist, aber ich finde es in eingigen Situationen deutlich praktischer nur auf die zur Verfügung gestellten Lanes und die Maße des Verkehrswegs zu sehen, als mir die Lanes erst selbst zusammensuchen zu müssen.
Die API ist eher als Vorschlag zu sehen, da kann man bestimmt noch etwas dran herum schrauben, sollte es für die commonAPI interessant sein.