9#include "Kismet/GameplayStatics.h"
31 auto LightId = CarlaLight->GetId();
33 if (
Lights.Contains(LightId))
36 UE_LOG(LogCarla, Warning, TEXT(
"Light Id overlapping"));
40 Lights.Add(LightId, CarlaLight);
53 Lights.Remove(CarlaLight->GetId());
79 std::vector<carla::rpc::LightState> result;
88 UCarlaLight* CarlaLight = Light.Value;
91 result.push_back(CarlaLight->GetLightState());
99 std::vector<carla::rpc::LightState> LightsToSet,
145 TArray<AActor*> WeatherActors;
146 UGameplayStatics::GetAllActorsOfClass(GetWorld(), AWeather::StaticClass(), WeatherActors);
148 if (WeatherActors.Num())
151 if (
AWeather* WeatherActor = Cast<AWeather>(WeatherActors[0]))
154 WeatherActor->SetDayNightCycle(active);
165 if(Client.Key != ClientThatUpdate)
FVehicleLightState LightState
UE_LOG(LogCarla, Log, TEXT("UActorDispatcher::Destroying actor: '%s' %x"), *Id, Actor)
void SetClientStatesdirty(FString ClientThatUpdate)
void Initialize(FSubsystemCollectionBase &Collection) override
TMap< int, UCarlaLight * > Lights
TMap< int, UCarlaLight * > & GetLights()
void Deinitialize() override
TMap< FString, bool > ClientStates
void SetLights(FString Client, std::vector< carla::rpc::LightState > LightsToSet, bool DiscardClient=false)
void RegisterLight(UCarlaLight *CarlaLight)
void UnregisterLight(UCarlaLight *CarlaLight)
void SetDayNightCycle(const bool active)
bool IsUpdatePending() const
UCarlaLight * GetLight(int Id)