Dwachs / simutrans-scenarios

Repository for scenario development for simutrans.
2 stars 1 forks source link

get_convoys_passed() for crossing #16

Open Andarix opened 1 year ago

Andarix commented 1 year ago

Gibt es eine Möglichkeit an die Fahrzeugzahl bei Kreuzungen zu kommen?

Dwachs commented 1 year ago

get_convoys_passed gibt dir die Anzahl fuer jeden der beiden Wege zurueck. Einen Aufruf, um alles beide Informationen direkt zu bekommen, gibt es nicht.

Vielleicht fehlt noch eine Methode, um beide Weg-Objekte zu kriegen, ohne den Typ zu raten?

Das man dann sowas machen kann:

local way0 = tile.get_way_by_idx(0)
local way0 = tile.get_way_by_idx(1)
local cnvs  = way0.get_convoys_passed() + way1.get_convoys_passed()
Andarix commented 1 year ago

Ok hatte da einen Denkfehler drin.

War mir nicht bewusst, das man beide Wege einzeln abfragen kann.

Hier geht es ums abreißen von Strecken, und da ist der betreffende Wegtyp bekannt.

Kann den Aufwand nicht abschätzen, aber vielleicht ist es sinnvoller die Kreuzungstypen zu definieren (wie bei direction). Also eine Liste mit Werten, die die Kreuzungstypen definieren.

0 = road_rail 1 = road_water 2 = rail_water ....

tile_x.find_object(mo_crossing).get_type()

Eigentlich müssten die Wegtypen ja bei den Crossing-Objekten bekannt sein, da die ja in der Dat stehen.

Dwachs commented 1 year ago

Die Kreuzungsobjekte enthalten keine sinnvollen Daten (nur Daten, um intern Kreuzungsreservierung zu machen). Alles wichtige kann ueber die Weg-Objekte abgefragt werden (max-speed, Statistiken). Ich sehe da nicht ganz den Sinn, so ein extra Objekt zu implementieren. Was fehlt, ist eine schnelle Abfrage, Weg 0 und 1 zurueckzugeben, ohne den Wegtyp vorher schon zu kennen.