47 void OnPossess(
APawn *aPawn)
override;
49 void OnUnPossess()
override;
51 void Tick(
float DeltaTime)
override;
61 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
62 bool IsPossessingAVehicle()
const
67 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
84 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
85 void SetStickyControl(
bool bEnabled)
87 bControlIsSticky = bEnabled;
103 UFUNCTION(Category =
"Road Map", BlueprintCallable)
117 UFUNCTION(Category =
"Random Engine", BlueprintCallable)
120 check(RandomEngine !=
nullptr);
132 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
133 bool IsAutopilotEnabled()
const
135 return bAutopilotEnabled;
138 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
139 void SetAutopilot(
bool Enable,
bool KeepState = false)
141 if (IsAutopilotEnabled() != Enable)
143 ConfigureAutopilot(Enable, KeepState);
147 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
148 void ToggleAutopilot()
150 ConfigureAutopilot(!bAutopilotEnabled);
155 void ConfigureAutopilot(
const bool Enable,
const bool KeepState =
false);
166 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
167 float GetSpeedLimit()
const
173 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
174 void SetSpeedLimit(
float InSpeedLimit)
176 SpeedLimit = InSpeedLimit;
180 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
183 return TrafficLightState;
187 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
190 TrafficLightState = InTrafficLightState;
194 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
201 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
208 UFUNCTION(Category =
"Wheeled Vehicle Controller", BlueprintCallable)
209 void SetFixedRoute(
const TArray<FVector> &Locations,
bool bOverwriteCurrent =
true);
224 UPROPERTY(VisibleAnywhere)
225 bool bAutopilotEnabled = false;
227 UPROPERTY(VisibleAnywhere)
228 bool bControlIsSticky = true;
230 UPROPERTY(VisibleAnywhere)
231 float SpeedLimit = 30.0f;
233 UPROPERTY(VisibleAnywhere)
236 UPROPERTY(VisibleAnywhere)
237 float MaximumSteerAngle = -1.0f;
242 std::queue<FVector> TargetLocations;