From cf3cef936be7462337c1396780e19e862bdc19b3 Mon Sep 17 00:00:00 2001 From: Blyron Date: Mon, 8 Jul 2024 11:34:40 +0200 Subject: [PATCH] Add control variable --- .../Actor/ActorBlueprintFunctionLibrary.cpp | 19 +++++++++++++++++-- .../Source/Carla/Actor/PedestrianParameters.h | 3 +++ .../Carla/Source/Carla/Walker/WalkerBase.h | 3 +++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/ActorBlueprintFunctionLibrary.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/ActorBlueprintFunctionLibrary.cpp index 0876f6160..823859d4d 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/ActorBlueprintFunctionLibrary.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/ActorBlueprintFunctionLibrary.cpp @@ -1593,6 +1593,12 @@ void UActorBlueprintFunctionLibrary::MakePedestrianDefinition( EActorAttributeType::String, GetAge(Parameters.Age)}); + + Definition.Attributes.Emplace(FActorAttribute{ + TEXT("can_use_wheel_chair"), + EActorAttributeType::Bool, + Parameters.bCanUseWheelChair ? TEXT("true") : TEXT("false") }); + if (Parameters.Speed.Num() > 0) { FActorVariation Speed; @@ -1606,6 +1612,8 @@ void UActorBlueprintFunctionLibrary::MakePedestrianDefinition( Definition.Variations.Emplace(Speed); } + bool bCanUseWheelChair = Parameters.bCanUseWheelChair; + FActorVariation IsInvincible; IsInvincible.Id = TEXT("is_invincible"); IsInvincible.Type = EActorAttributeType::Bool; @@ -1616,8 +1624,15 @@ void UActorBlueprintFunctionLibrary::MakePedestrianDefinition( FActorVariation WheelChairVariation; WheelChairVariation.Id = TEXT("use_wheelchair"); WheelChairVariation.Type = EActorAttributeType::Bool; - WheelChairVariation.RecommendedValues = { TEXT("true"), TEXT("false") }; - WheelChairVariation.bRestrictToRecommended = false; + if(bCanUseWheelChair) + { + WheelChairVariation.RecommendedValues = { TEXT("true"), TEXT("false") }; + } + else + { + WheelChairVariation.RecommendedValues = { TEXT("false") }; + } + WheelChairVariation.bRestrictToRecommended = true; Definition.Variations.Emplace(WheelChairVariation); Success = CheckActorDefinition(Definition); diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/PedestrianParameters.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/PedestrianParameters.h index 86310a6d9..7572e9b3a 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/PedestrianParameters.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/PedestrianParameters.h @@ -55,4 +55,7 @@ struct CARLA_API FPedestrianParameters UPROPERTY(EditAnywhere, BlueprintReadWrite) int32 Generation = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + bool bCanUseWheelChair = false; }; diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Walker/WalkerBase.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Walker/WalkerBase.h index 676569ed4..5990bceeb 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Walker/WalkerBase.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Walker/WalkerBase.h @@ -24,6 +24,9 @@ public: UPROPERTY(Category="Walker Base", BlueprintReadWrite, EditAnywhere) float AfterLifeSpan = 10.0f; + UPROPERTY(Category="Walker Base", BlueprintReadWrite, EditAnywhere) + bool bUsesWheelChair = false; + UFUNCTION(BlueprintCallable) void StartDeathLifeSpan() {