Jump to content

Empfohlene Beiträge

Geschrieben

Hallo, ich bin erst seit kurzem hier.
Einen schönen Gruß an alle Eisenbahnenthusiasten!

Zu meinem Problem:
Ich habe 6 Züge auf meiner Hauptstrecke, die alle darauf überprüft werden müssen, ob ihre Cockpit-Ansicht aktiviert ist.
Sollte das der Fall sein, so soll auf eine andere Kamera umgeschaltet werden.
Der nachstehende Code funktioniert, aber leider bei jedem Fahrzeug auf der Anlage, das die Cockpit-Ansicht aktiviert hat.
Das Umschalten der Kameras soll aber nur für Züge mit dem Schlagwort "Zug Hauptstrecke" erfolgen.

Fahrzeuge_Hauptstrecke = layout:getEntitiesByKeyword("Zug Hauptstrecke")

for idx, zug in ipairs(Fahrzeuge_Hauptstrecke) do
  -- $("Textfeld für Debugging").text = zug

  if not (zug.name.activeCameras == layout.activeCameras[0]) then
    layout.activeCameras[0] = $("Kamera Panorama")
  end
end

 

Geschrieben

 

vor 10 Stunden schrieb w.rost1:

zug.name.activeCameras

Hallo @w.rost1,

die Ursache steckt eventuell in der Eigenschaft name.
In der Variablen zug, die in ipairs() erzeugt, steckt ja schon der Zug. Seinen Namen benötigst du nicht.

Da es die Eigenschaft zug.name.activeCameras nicht gibt, ist der Vergleich nie wahr.
Und mit der Negierung am Anfang ist die Bedingung somit immer wahr.

Also "funktioniert" dein Code, weil immer umgeschaltet wird.

Der Vergleich muss auch etwas anders lauten, denn wenn eine Cockpitkamera aktiv ist, dann ist der Zug die Kamera.
Dieser Code funktioniert so, wie du es dir vorstellst:

local Fahrzeuge_Hauptstrecke = layout:getEntitiesByKeyword("Zug Hauptstrecke")

for idx, zug in ipairs(Fahrzeuge_Hauptstrecke) do
  if layout.activeCameras[0] == zug then
    layout.activeCameras[0] = $("Kamera Panorama")
  end
end

Viele Grüße
Götz

Geschrieben

Hallo Goetz,

ein großes Danke an Dich!

Funktioniert einwandfrei!

Zum Hintergrund: Ich habe auf meiner Anlage einen "Gebirgsteil" mit 4 Tunneln, von denen 2 durchaus in der Cockpit-Ansicht  befahren werden können/sollen.

Zwei aber nicht, diese dienen nur dem Kaschieren des plötzlichen Verschwindens der Züge, kurz bevor sie im Depot landen. Ein Befahren der Tunnel wäre also nicht wirklich sehenswert. Deswegen wird in diesen Tunneln das Befahren in der Cockpit-Ansicht durch ein Umschalten auf eine andere Kamera verhindert.

Ich habe mal "auf die Schnelle" ein "Rundflug-Video" erstellt. Die Tunnel links und rechts auf dem Gebirgsteil der Anlage, enden blind, mit jeweils einem Depot am Ende.

Hier der Link:

https://www.worotec.de/3d_modellbahn_studio/Anlage.mp4

Gruß vom gleistracker ;-)

 

Geschrieben (bearbeitet)

Hallo @gleistracker,
es freut mich, dass ich dir helfen konnte.

vor 20 Minuten schrieb gleistracker:

Ein Befahren der Tunnel wäre also nicht wirklich sehenswert. Deswegen wird in diesen Tunneln das Befahren in der Cockpit-Ansicht durch ein Umschalten auf eine andere Kamera verhindert.

Dann gäbe es noch eine bessere Alternative.
Statt in einer Schleife alle Loks abzufragen würde es genügen, diejenige Lok zu untersuchen, welche den Tunnel (bzw. vermutlich einen Kontakt am Tunneleingang) betritt.

if vehicle.variables["Zug Hauptstrecke"] == keyword and
layout.activeCameras[0] == vehicle then
  layout.activeCameras[0] = $("Kamera Panorama")
end

Viele Grüße
Götz

Bearbeitet von Goetz
Ergänzungen
Geschrieben

Hallo Goetz,

danke für die effiziente Lösung! Der PC ist ja "auch nur ein Mensch" und freut sich über weniger Arbeit ;-)

Ganz davon abgesehen, daß - je mehr "Getummel"  auf der Anlage ist - Effizienz immer wichtiger wird!

Gruß  vom gleistracker

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...