148 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON")
151 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON")
152 static bool LoadClassDefault(
const FString& ClassName, UPARAM(ref)
FLightAssetDefault& OutDefault);
154 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON")
157 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON")
163 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON")
170 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
171 static TArray<FLightAssetSummary> ScanLightAssetsInLevel(
const UObject* WorldContextObject);
183 UFUNCTION(BlueprintCallable, BlueprintPure, Category =
"Lights|JSON")
184 static FString GetLightClassKey(
AActor* Owner,
bool& bOutIsBuildingClass);
189 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
190 static void ReapplyLightDefaultsToLevel(
const UObject* WorldContextObject);
196 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
197 static void ApplyLightDefaultToClassLive(
const UObject* WorldContextObject,
const FString& ClassName,
const FLightAssetDefault& Value);
203 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
204 static void SetClassActorsSelected(
const UObject* WorldContextObject,
const FString& ClassName,
bool bSelected);
208 UFUNCTION(BlueprintCallable, BlueprintPure, Category =
"Lights|JSON")
209 static FString GetLightGroupName(
ELightType Group);
222 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
223 static TArray<FLightAssetSummary> ScanTrafficLightAssetsInLevel(
const UObject* WorldContextObject);
233 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
234 static void ApplyTrafficLightDefaultToClassLive(
const UObject* WorldContextObject,
const FString& ClassName,
float EmissiveIntensity);
238 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
239 static void ReapplyTrafficLightDefaultsToLevel(
const UObject* WorldContextObject);
245 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
246 static void SetTrafficLightClassPreviewOn(
const UObject* WorldContextObject,
const FString& ClassName,
bool bOn);
251 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
252 static void SetTrafficLightClassActorsSelected(
const UObject* WorldContextObject,
const FString& ClassName,
bool bSelected);
281 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
282 static TArray<FLightAssetSummary> ScanProceduralBuildingsInLevel(
const UObject* WorldContextObject);
284 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
285 static void ApplyProceduralBuildingsEmissiveLive(
const UObject* WorldContextObject,
float EmissiveIntensity,
float PercentLit,
const FLinearColor& Color);
287 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
288 static void ReapplyProceduralBuildingsToLevel(
const UObject* WorldContextObject);
290 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
291 static void SetProceduralBuildingsSelected(
const UObject* WorldContextObject,
bool bSelected);
305 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
306 static TArray<FLightAssetSummary> ScanLegacyBuildingsInLevel(
const UObject* WorldContextObject);
308 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
309 static void ApplyLegacyBuildingsEmissiveLive(
const UObject* WorldContextObject,
float EmissiveIntensity,
float PercentLit,
const FLinearColor& Color);
311 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
312 static void ReapplyLegacyBuildingsToLevel(
const UObject* WorldContextObject);
314 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
315 static void SetLegacyBuildingsSelected(
const UObject* WorldContextObject,
bool bSelected);
320 static void ReapplyBuildingDefaultsToLevel(ULevel* Level);
324 static void RegisterRuntimeBuildingDefaultsHooks();
325 static void UnregisterRuntimeBuildingDefaultsHooks();
338 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
339 static TArray<FVehicleLightSummary> ScanVehicleCatalog(
const UObject* WorldContextObject);
346 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
347 static void ApplyVehicleLightsLive(
const UObject* WorldContextObject,
const FString& ClassName,
float Intensity,
const TMap<FString, float>& GroupIntensity);
354 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON")
355 static void ApplyVehicleLightsToSingleActor(
AActor* Actor,
float Intensity,
const TMap<FString, float>& GroupIntensity);
371 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON")
372 static void ApplyVehicleLightsRuntimeState(
AActor* Actor,
const TMap<FString, float>& MaterialGroupValue,
const TMap<FString, float>& RealLightGroupIntensity);
374 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON")
375 static bool SaveVehicleLightDefault(
const FString& ClassName,
float Intensity,
const TMap<FString, float>& GroupIntensity);
377 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON")
378 static bool LoadVehicleLightDefault(
const FString& ClassName, UPARAM(ref)
float& OutIntensity, UPARAM(ref) TMap<FString, float>& OutGroupIntensity);
384 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
385 static void ReapplyVehicleLightsToLevel(
const UObject* WorldContextObject);
396 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
397 static AActor* SpawnVehiclePreview(
const UObject* WorldContextObject,
const FString& ClassName);
401 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
402 static void ClearVehiclePreview(
const UObject* WorldContextObject);
407 UFUNCTION(BlueprintCallable, BlueprintPure, Category =
"Lights|JSON")
408 static TArray<FString> GetVehicleLightGroupNames();
419 UFUNCTION(BlueprintCallable, Category =
"Lights|JSON", meta = (WorldContext =
"WorldContextObject"))
420 static void PreviewVehicleBlinkers(
const UObject* WorldContextObject);
424 return FPaths::ProjectContentDir() / TEXT(
"Carla/Config/Lights/Defaults.json");
429 return FPaths::ProjectContentDir() / TEXT(
"Carla/Config/VehicleParameters.json");