FEUERWEHRAUSFAHRT-AMPEL – LS25 – VERSION 1.1.0.0

NEU: KI-VERKEHRSHALT
Bei Rot wird ein unsichtbarer LS25-Verkehrs-Haltebereich in der Fahrspur aktiv.
Die KI bremst davor ab. Beim Ausschalten bleibt die Sperre während der
Orangephase erhalten; erst bei vollständig ausgeschalteter Ampel wird sie
entfernt. Bereits hinter der Haltelinie befindliche Fahrzeuge werden nicht
zurückgesetzt. Die bisherigen Lichtphasen und die Mausbedienung bleiben erhalten.

PLATZIERUNG
Die Vorderseite ist die Seite mit den Linsen und dem Feuerwehrausfahrt-Schild.
Von dieser Seite aus gesehen gehört der Mast rechts neben die Fahrspur.
Der Haltebereich liegt links neben dem Mast: 0,30 bis 3,90 m links vom Mast,
1,275 bis 1,725 m vor der Mastebene; 3,60 m breit und 2,60 m hoch.
Er dreht und verschiebt sich zusammen mit der Ampel. Richte die Vorderseite
gegen die ankommenden Fahrzeuge aus und den Bereich über deren Fahrspur.
Für die Gegenrichtung eine zweite Ampel passend auf der anderen Seite aufstellen.
Eine Ampel weit entfernt von der Fahrspur kann den Verkehr nicht erfassen.
Auf der Karte muss KI-Straßenverkehr vorhanden und eingeschaltet sein.

INSTALLATION
LS25 vollständig schließen. FS25_Feuerwehrausfahrt_Ampel.zip ungeöffnet in den
mods-Ordner kopieren und die bisherige gleichnamige ZIP ersetzen. Keine zweite
Kopie mit (1), Versionszusatz oder anderem Namen parallel aktivieren.
Beim Spielstart Version 1.1.0.0 auswählen. Im Baumodus: Dekoration > Sonstiges.
Preis 850 Euro; kein Unterhalt. Bestehende Ampeln verwenden weiterhin dieselbe
Objekt-XML und denselben AnimatedObject-saveId. Nach dem Neustart werden ihre
Haltebereiche aus dem geladenen Lichtzustand eingerichtet.

BEDIENUNG
Zu Fuß an den Schaltkasten am Mast gehen, Baumodus verlassen, F1-Hilfe ein.
Linksklick: Aus > 3 Sekunden Orange > dauerhaft Rot.
Erneut klicken: Rot > 3 Sekunden Orange > Aus.
Ein Klick während der Übergangsphase kehrt wie bisher die Animation um.
Verwendet wird ACTIVATE_HANDTOOL; eigene Tastenumbelegungen bleiben gültig.
Die Taste am Modell muss nicht punktgenau mit der Maus getroffen werden.

TECHNIK
Eigenes Lua-Skript scripts/FireExitTraffic.lua; keine zusätzliche Mod nötig.
Es erkennt ausschließlich Ampeln aus dieser Mod. Jeder Mast besitzt einen
eigenen nativen Kinematic-Trigger mit dem LS25-Verkehrsstopp-Filterpreset.
Der Trigger ist als Verkehrsdetektor ausgelegt und keine feste Wand für deine
Einsatzfahrzeuge. Der Kartenverkehr wird weder global ausgeschaltet noch gelöscht.
Bei Aus, beim Verkauf und beim Verlassen der Karte wird der eigene Haltebereich
freigegeben. Mehrere Ampeln werden unabhängig verwaltet. Der Server schaltet
die Verkehrsdetektoren; Lichtzustände, Bedienung und Speicherung werden weiter
vom vorhandenen AnimatedObject des Grundspiels verwaltet.
Eine beim Laden bereits rückwärts laufende Orangephase wird bis Aus gesperrt.
Die neue Logmeldung beginnt mit [FeuerwehrAmpel KI] und nennt Version 1.1.0.0.

MODELL
Mast, Signalgehäuse, Linsen, Schilder, Texturen und sichtbare Geometrie wurden
nicht neu gestaltet. Ein zusätzlicher unsichtbarer Quader mit zwölf Dreiecken
bildet den Haltebereich. Alle bisherigen Node-Pfade bleiben erhalten.

PRÜFSTAND
Die beigefügten Berichte trennen die Prüfungen der Ausgangsdatei von den neuen
Lua-, XML-, Geometrie- und Zustandsprüfungen. Die nativen Physikfunktionen
werden in den Lua-Tests nachgebildet. Ein tatsächlicher LS25-, GIANTS-Editor-
und Mehrspielertest war hier nicht verfügbar. Das Abbremsen des Kartenverkehrs
und die genaue Aufstellung müssen deshalb noch direkt im Spiel bestätigt werden.
Bei Problemen aktuelle log.txt und ein Bild der Aufstellung mit Fahrspur senden.

Die Skripterweiterung richtet sich an PC/Mac. Ziel ist der normale KI-
Straßenverkehr des Grundspiels; andere Fahrsteuerungen sind gesondert zu prüfen.

ENTWICKLER
Der vollständige neue Laufzeitcode liegt unter scripts/FireExitTraffic.lua.
Eigene Regressionstests liegen unter dev/test_traffic.py und benötigen Python,
lupa und lxml. Der Laufzeit-Mod benötigt diese Python-Pakete nicht.
Die referenzierten fremden Moddateien und Spielscripte werden nicht mitgeliefert.
