7. Beacon Lights - Animierte Warnlichter
Übersicht
Mit Beacon Lights können animierte Rundumleuchten (Warnlichter) zu Produktionen hinzugefügt werden.
💡 Beispiel: Ein Fabrikgebäude zeigt ein blaues Warnlicht beim Produzieren, ein rotes bei fehlenden Inputs.
Funktionsweise
- Automatische Aktivierung: Beacon-Lichter werden basierend auf dem Produktionsstatus aktiviert
- Giants BeaconLight-System: Nutzt das offizielle BeaconLight-System von FS25
- Mehrere Lichter möglich: Pro Status können mehrere Beacon-Lichter gleichzeitig aktiv sein
- Status-gesteuert: Jedes Licht ist an einen Produktionsstatus gebunden
XML-Konfiguration
Basis-Struktur
<placeable>
<productionExtension>
<productions>
<production id="fabrik">
<statusAnimations>
<statusAnimation status="RUNNING">
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight01.xml"
speed="1.5"
intensity="1.0"/>
</statusAnimation>
</statusAnimations>
</production>
</productions>
</productionExtension>
</placeable>
Der node muss auf einen existierenden Transform-Node im i3D zeigen!
Parameter
| Parameter | Beschreibung | Pflicht | Standard |
|---|---|---|---|
node | Transform-Node für Beacon-Position | ✅ | - |
filename | Pfad zur Beacon-Light XML-Datei | ✅ | - |
speed | Rotationsgeschwindigkeit | ❌ | 1.0 |
intensity | Lichtintensität (0-1) | ❌ | 1.0 |
useRealLights | Echte Lichter verwenden | ❌ | true |
realLightRange | Reichweiten-Multiplikator | ❌ | 1.0 |
mountType | Befestigungstyp | ❌ | - |
variationName | Varianten-Name | ❌ | - |
Produktionsstatus
Beacon-Lichter können an verschiedene Status gebunden werden:
| Status | Beschreibung |
|---|---|
RUNNING | Produktion läuft normal |
MISSING_INPUTS | Fehlende Input-Materialien |
NO_OUTPUT_SPACE | Kein Platz für Output |
INACTIVE | Produktion ist gestoppt |
Beispiele
Einfaches Beacon-Licht
Blaues Licht beim Produzieren:
<statusAnimation status="RUNNING">
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight01.xml"
speed="1.5"
intensity="1.0"/>
</statusAnimation>
📷 [SCREENSHOT: Blaues Beacon-Licht auf Fabrik]
Mehrere Status-Lichter
Verschiedene Farben für verschiedene Status:
<statusAnimations>
<!-- Blau = Läuft -->
<statusAnimation status="RUNNING">
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight01.xml"
speed="1.5"
intensity="1.0"/>
</statusAnimation>
<!-- Rot = Fehlende Inputs -->
<statusAnimation status="MISSING_INPUTS">
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight02.xml"
speed="2.0"
intensity="0.8"/>
</statusAnimation>
<!-- Orange = Kein Output-Platz -->
<statusAnimation status="NO_OUTPUT_SPACE">
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight03.xml"
speed="1.0"
intensity="1.0"/>
</statusAnimation>
</statusAnimations>
Alle Beacon-Lichter nutzen denselben Node - sie werden nicht gleichzeitig aktiv!
Mehrere Lichter pro Status
Zwei Beacon-Lichter gleichzeitig:
<statusAnimation status="RUNNING">
<!-- Links -->
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight01.xml"
speed="1.5"
intensity="1.0"/>
<!-- Rechts -->
<beaconLight
node="0>5|0|1"
filename="shared/beaconLights/beaconLight01.xml"
speed="1.5"
intensity="1.0"/>
</statusAnimation>
📷 [SCREENSHOT: Zwei Beacon-Lichter auf Fabrik (links und rechts)]
Speed Parameter
Die Rotationsgeschwindigkeit steuert, wie schnell sich das Licht dreht:
<!-- Langsam -->
<beaconLight node="0>5|0|0" filename="..." speed="0.5"/>
<!-- Normal -->
<beaconLight node="0>5|0|0" filename="..." speed="1.0"/>
<!-- Schnell -->
<beaconLight node="0>5|0|0" filename="..." speed="2.0"/>
<!-- Sehr schnell -->
<beaconLight node="0>5|0|0" filename="..." speed="3.0"/>
speed="2.0" für dringende Warnungen (z.B. MISSING_INPUTS)
Intensity Parameter
Die Lichtintensität steuert die Helligkeit (0.0 - 1.0):
<!-- Dunkel -->
<beaconLight node="0>5|0|0" filename="..." intensity="0.3"/>
<!-- Mittel -->
<beaconLight node="0>5|0|0" filename="..." intensity="0.6"/>
<!-- Hell (Standard) -->
<beaconLight node="0>5|0|0" filename="..." intensity="1.0"/>
Häufige Fehler
❌ Beacon-Licht wird nicht angezeigt
Ursache 1: Node existiert nicht im i3D
<!-- FALSCH - Node "0>5|0|99" existiert nicht -->
<beaconLight node="0>5|0|99" filename="..."/>
<!-- RICHTIG - Node existiert im i3D -->
<beaconLight node="0>5|0|0" filename="..."/>
Lösung: Node-Index im i3D überprüfen!
Ursache 2: Falsche Beacon-Datei
<!-- FALSCH - Datei existiert nicht -->
<beaconLight node="0>5|0|0" filename="mods/meinMod/beacon.xml"/>
<!-- RICHTIG - Standard Beacon verwenden -->
<beaconLight node="0>5|0|0" filename="shared/beaconLights/beaconLight01.xml"/>
❌ Beacon-Licht dreht sich nicht
Ursache: speed ist 0 oder fehlt
<!-- FALSCH - keine Drehung -->
<beaconLight node="0>5|0|0" filename="..." speed="0"/>
<!-- RICHTIG - normale Drehung -->
<beaconLight node="0>5|0|0" filename="..." speed="1.5"/>
❌ Beacon-Licht ist zu dunkel
Ursache: intensity ist zu niedrig
<!-- FALSCH - fast unsichtbar -->
<beaconLight node="0>5|0|0" filename="..." intensity="0.1"/>
<!-- RICHTIG - gut sichtbar -->
<beaconLight node="0>5|0|0" filename="..." intensity="1.0"/>
Praktische Beispiele
Fabrik mit Status-Anzeige
<production id="fabrik">
<statusAnimations>
<!-- Produktion läuft = Blaues Licht -->
<statusAnimation status="RUNNING">
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight01.xml"
speed="1.0"
intensity="1.0"
realLightRange="1.5"/>
</statusAnimation>
<!-- Fehlende Inputs = Rotes Licht (schnell) -->
<statusAnimation status="MISSING_INPUTS">
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight02.xml"
speed="2.5"
intensity="1.0"
realLightRange="1.2"/>
</statusAnimation>
<!-- Output voll = Oranges Licht -->
<statusAnimation status="NO_OUTPUT_SPACE">
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight03.xml"
speed="1.5"
intensity="0.8"
realLightRange="1.0"/>
</statusAnimation>
</statusAnimations>
</production>
📷 [SCREENSHOT: Fabrik mit verschiedenen Status-Lichtern]
Große Anlage mit mehreren Lichtern
<production id="anlage">
<statusAnimations>
<statusAnimation status="RUNNING">
<!-- Beacon-Licht vorne links -->
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight01.xml"
speed="1.5"
intensity="1.0"/>
<!-- Beacon-Licht vorne rechts -->
<beaconLight
node="0>5|0|1"
filename="shared/beaconLights/beaconLight01.xml"
speed="1.5"
intensity="1.0"/>
<!-- Beacon-Licht hinten links -->
<beaconLight
node="0>5|0|2"
filename="shared/beaconLights/beaconLight01.xml"
speed="1.5"
intensity="0.7"/>
<!-- Beacon-Licht hinten rechts -->
<beaconLight
node="0>5|0|3"
filename="shared/beaconLights/beaconLight01.xml"
speed="1.5"
intensity="0.7"/>
</statusAnimation>
</statusAnimations>
</production>
📷 [SCREENSHOT: Große Anlage mit 4 Beacon-Lichtern]
Vollständiges Beispiel
<productionExtension>
<productions>
<production id="fabrik" name="Fabrik" cyclesPerHour="2" costsPerActiveHour="50">
<inputs>
<input fillType="WHEAT" amount="1000"/>
</inputs>
<outputs>
<output fillType="FLOUR" amount="800"/>
</outputs>
<statusAnimations>
<!-- Status: RUNNING -->
<statusAnimation status="RUNNING">
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight01.xml"
speed="1.5"
intensity="1.0"
useRealLights="true"
realLightRange="1.5"/>
</statusAnimation>
<!-- Status: MISSING_INPUTS -->
<statusAnimation status="MISSING_INPUTS">
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight02.xml"
speed="2.5"
intensity="1.0"
useRealLights="true"
realLightRange="1.2"/>
</statusAnimation>
<!-- Status: NO_OUTPUT_SPACE -->
<statusAnimation status="NO_OUTPUT_SPACE">
<beaconLight
node="0>5|0|0"
filename="shared/beaconLights/beaconLight03.xml"
speed="1.5"
intensity="0.8"
useRealLights="true"
realLightRange="1.0"/>
</statusAnimation>
</statusAnimations>
</production>
</productions>
</productionExtension>
📷 [SCREENSHOT: Vollständiges Fabrik-Setup mit Beacon-Lichtern]
Node-Pfade verstehen
Der node Parameter verwendet die Giants-Node-Syntax:
0>5|0|0
│ │ │ │
│ │ │ └─ Index 0 (erstes Kind)
│ │ └─── Ebene Separator
│ └───── Node-Index 5
└─────── Root (0)
Beispiele:
0>5|0|0= Root → Node 5 → erstes Kind → erstes Kind0>5|0|1= Root → Node 5 → erstes Kind → zweites Kind0>5|1|0= Root → Node 5 → zweites Kind → erstes Kind
Node-Pfade im Giants Editor unter "Scenegraph" ablesen!
Kombination mit anderen Features
Mit Status Lights
<statusAnimations>
<statusAnimation status="RUNNING">
<!-- Beacon-Licht -->
<beaconLight node="0>5|0|0" filename="..."/>
<!-- Status-Licht -->
<visibilityNode node="0>6|0" visible="true"/>
</statusAnimation>
</statusAnimations>
Siehe auch: Status Lights
Beispieldatei
Siehe: examples/09_BeaconLights.xml
Verwandte Features
- Status Lights - Einfache Status-Lichter
- Production Visuals - Visuelle Animationen
Zusammenfassung
✅ Animierte Rundumleuchten für Produktionen ✅ Status-basierte Aktivierung ✅ Giants BeaconLight-System ✅ Mehrere Lichter pro Status möglich ✅ Konfigurierbare Geschwindigkeit & Intensität ✅ Multiplayer-kompatibel