Ampeln
Das ist noch nicht so fertig wie ich es mir wünsche
Mir fehlt noch eine Möglichkeit für ein optische Markierung eines einzelne Models am Ampelmast.
Nach dem die Ampelkonstruktion fertig gebaut wird,
hast du beim Konfigurationsfenster ein "Select Animation Source" Knopf
Als erstes brauch das Ampelasset eine Quelle, das machst du mit "Select animation source" und wählst die Kreuzung mit vorhandener Ampelanlage aus.
(Alternativ kann auch ein Bahnübergang herhalten...)
Jede Ampel am Asset Mast (wird von Mastfuss gezählt) kannst du dann eine UG Ampel zuweisen. "Select Traffic Light"
das kann für die Fußgängerampeln unmöglich sein, da nimmt man am besten die einzelne Fußgängerampel auf der Gegenüberliegende Straßenseite.
Wenn man fertig ist, kann per NodeEditor die UG Ampelmasten verstecken...
Zur Info der BASE_NODE_TRAFFIC_LIGHT:
Ich kenne UGs Schema nicht, wie Ampelteile und die jeweilige Animationszeit berechnet wird.
Der Inspektor kann mit CommonAPI2 euch den Inhalt eines api.type.ComponentType.BASE_NODE_TRAFFIC_LIGHT anzeigen,
das ist normalerweise nicht durch UG an LUA gebunden. Hier merkt man dann auch das die Masten an sich auch "animiert" sind.
at18 (0x18 Hex in der Struktur) hat für jedes mögliches "state" eine List mit Ampeln die Rot zeigen sollen. (Ampeln die nicht in der Liste sind, sind Grün)
edgeIdLocked hat für jeden state Wert eine Liste der Edges die "gesperrt" werden. (Debug Laneanzeige: Zwei rote Querstriche)
stateTimes = für die aktuelle Ampelphase die Animationszeiten. (Startzeit des internen Zeitgebers)
Kompliziert ist: Nicht alle Nodes liegen hintereinander. Wer eine besser Möglichkeit kennt oder mehr Infos erforschen kann, gerne.
Bitte beachtet, die Animationsanzahl der Modelle kann von UG Ampel Konfiguration zu UG Ampelkonfiguration abweichen.
UG Ampeln können Ampelphasen bei keinem Verkehrsteilnehmer überspringen, wie es das macht bzw. errechnet ist mir ein Rätsel.
Aber die Linux Binärdateien zeigen NonPauseStateCanBeSkipped & PauseCanBeSkipped im TrafficLightSystem::Update2 an.
Auch wird die transport::EdgeUseManager::GetIncomingOccupiedLength errechnet. Aber wie gesagt, das meiste bleibt für mich eine Blackbox.
Die eigentlichen Fahrzeuge kennen dann wiederum keine Regeln, sie werden nur durch gesperrte Edges von einer Weiterfahrt gehindert.
Züge nutzen ein anderes Signalsystem. Daher ist es quasi unmöglich das Eisenbahnverkehr auf Tramschienen wechseln könnten...
Zum Thema Labellist / Fonts:
Du lädst das Fontpaket herunter, aktivierst es im Spiel. Dort sind die ganzen Fonts (ttf) drin.
Wie und wo in mdl Dateien labelLists definiert werden, steht in UG Modding Anleitung > mdl > label_list. Ich kann dir leider nicht erklären wie mdl Dateien funktionieren, das würde den Rahmen sprengen.