8#include "CoreMinimal.h"
9#include "GameFramework/Character.h"
17#include "Walker.generated.h"
37 UFUNCTION(BlueprintCallable)
38 virtual void PauseWalker();
40 UFUNCTION(BlueprintCallable)
41 virtual void ResumeWalker();
43 UFUNCTION(BlueprintCallable)
44 virtual void SetIgnoreInput(
bool IgnoreInput);
53 UFUNCTION(BlueprintCallable)
56 UFUNCTION(BlueprintCallable)
59 SetWalkerParameters(newParameters);
60 OnWalkerParametersChanged.Broadcast(WalkerParameters);
63 UFUNCTION(BlueprintCallable)
64 void DebugDrawLinesBetweenPoints(
float LifeTime = 10.0f);
66 UFUNCTION(BlueprintCallable)
69 return WalkerParameters.WalkerType;
72 UFUNCTION(BlueprintPure)
75 return WalkerParameters;
78 UFUNCTION(BlueprintCallable)
79 FTransform GetStartTransform()
const
81 if (!WalkerParameters.Points.IsEmpty())
83 return WalkerParameters.
Points[0];
86 return FTransform::Identity;
89 UFUNCTION(BlueprintCallable)
90 FTransform GetEndTransform()
const
92 if (!WalkerParameters.Points.IsEmpty())
94 return WalkerParameters.Points.Last();
97 return FTransform::Identity;
100 UFUNCTION(BlueprintPure)
101 bool IsWalkerPaused()
const
103 return WalkerIsPaused;
108 return InteractableName;
113 return GetActorTransform();
129 const FString ID = IActorInformation::Execute_GetActorID(
this);
130 const FString Name = IActorInformation::Execute_GetActorName(
this);
131 const FTransform VehicleTransform = GetActorTransform();
132 const FVector Location = VehicleTransform.GetLocation();
133 const FRotator Rotation = VehicleTransform.Rotator();
134 FString Information = FString::Printf(TEXT(
"Walker: %s, Name: %s, ID: %s, Location: %s, Rotation: %s"), *
Walker, *Name, *ID, *Location.ToString(), *Rotation.ToString());
141 ActorName = NewActorName;
146 ActorName = NewActorName;
151 UPROPERTY(BlueprintAssignable)
152 FWalkerEventDelegate_ParametersChanged OnWalkerParametersChanged;
154 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Interactable")
155 FText InteractableName;
157 UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
164 virtual
void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
166 UPROPERTY(VisibleAnywhere)
169 UPROPERTY(VisibleAnywhere)
174 UPROPERTY(VisibleAnywhere, Category = "
Walker")
175 bool WalkerIsPaused = true;
177 UPROPERTY(VisibleAnywhere, Category = "
Walker")
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FWalkerEventDelegate_ParametersChanged, FWalkerParameters, NewWalkerParameters)
FString ExportToJsonFile(const FString &FileName)
virtual FString GetActorID_Implementation() const override
virtual FTransform GetInteractableWorldTransform_Implementation() const override
virtual void SetActorName_Implementation(const FString &NewActorName) override
virtual FString GetActorName_Implementation() const override
virtual void SetActorIDAndName_Implementation(const FString &NewActorName, const FString &NewID) override
virtual FString GetActorInformation_Implementation() const override
virtual FText GetInteractableName_Implementation() const override
static FString ConvertWalkerTypeToString(EWalkerType WalkerType)
TArray< FTransform > Points