You've already forked LuckyWorld
Rename entire project to LuckyWorldV2, including uproject file, folders and so on
This commit is contained in:
139
Source/LuckyWorldV2/TP_VehicleAdvPawn.h
Normal file
139
Source/LuckyWorldV2/TP_VehicleAdvPawn.h
Normal file
@ -0,0 +1,139 @@
|
||||
// Copyright Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "WheeledVehiclePawn.h"
|
||||
#include "TP_VehicleAdvPawn.generated.h"
|
||||
|
||||
class UCameraComponent;
|
||||
class USpringArmComponent;
|
||||
class UInputAction;
|
||||
class UChaosWheeledVehicleMovementComponent;
|
||||
struct FInputActionValue;
|
||||
|
||||
DECLARE_LOG_CATEGORY_EXTERN(LogTemplateVehicle, Log, All);
|
||||
|
||||
/**
|
||||
* Vehicle Pawn class
|
||||
* Handles common functionality for all vehicle types,
|
||||
* including input handling and camera management.
|
||||
*
|
||||
* Specific vehicle configurations are handled in subclasses.
|
||||
*/
|
||||
UCLASS(abstract)
|
||||
class ATP_VehicleAdvPawn : public AWheeledVehiclePawn
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
/** Spring Arm for the front camera */
|
||||
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
|
||||
USpringArmComponent* FrontSpringArm;
|
||||
|
||||
/** Front Camera component */
|
||||
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
|
||||
UCameraComponent* FrontCamera;
|
||||
|
||||
/** Spring Arm for the back camera */
|
||||
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
|
||||
USpringArmComponent* BackSpringArm;
|
||||
|
||||
/** Back Camera component */
|
||||
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
|
||||
UCameraComponent* BackCamera;
|
||||
|
||||
/** Cast pointer to the Chaos Vehicle movement component */
|
||||
TObjectPtr<UChaosWheeledVehicleMovementComponent> ChaosVehicleMovement;
|
||||
|
||||
protected:
|
||||
|
||||
/** Steering Action */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input)
|
||||
UInputAction* SteeringAction;
|
||||
|
||||
/** Throttle Action */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input)
|
||||
UInputAction* ThrottleAction;
|
||||
|
||||
/** Brake Action */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input)
|
||||
UInputAction* BrakeAction;
|
||||
|
||||
/** Handbrake Action */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input)
|
||||
UInputAction* HandbrakeAction;
|
||||
|
||||
/** Look Around Action */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input)
|
||||
UInputAction* LookAroundAction;
|
||||
|
||||
/** Toggle Camera Action */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input)
|
||||
UInputAction* ToggleCameraAction;
|
||||
|
||||
/** Reset Vehicle Action */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input)
|
||||
UInputAction* ResetVehicleAction;
|
||||
|
||||
/** Keeps track of which camera is active */
|
||||
bool bFrontCameraActive = false;
|
||||
|
||||
public:
|
||||
ATP_VehicleAdvPawn();
|
||||
|
||||
// Begin Pawn interface
|
||||
|
||||
virtual void SetupPlayerInputComponent(UInputComponent* InputComponent) override;
|
||||
|
||||
// End Pawn interface
|
||||
|
||||
// Begin Actor interface
|
||||
|
||||
virtual void Tick(float Delta) override;
|
||||
|
||||
// End Actor interface
|
||||
|
||||
protected:
|
||||
|
||||
/** Handles steering input */
|
||||
void Steering(const FInputActionValue& Value);
|
||||
|
||||
/** Handles throttle input */
|
||||
void Throttle(const FInputActionValue& Value);
|
||||
|
||||
/** Handles brake input */
|
||||
void Brake(const FInputActionValue& Value);
|
||||
|
||||
/** Handles brake start/stop inputs */
|
||||
void StartBrake(const FInputActionValue& Value);
|
||||
void StopBrake(const FInputActionValue& Value);
|
||||
|
||||
/** Handles handbrake start/stop inputs */
|
||||
void StartHandbrake(const FInputActionValue& Value);
|
||||
void StopHandbrake(const FInputActionValue& Value);
|
||||
|
||||
/** Handles look around input */
|
||||
void LookAround(const FInputActionValue& Value);
|
||||
|
||||
/** Handles toggle camera input */
|
||||
void ToggleCamera(const FInputActionValue& Value);
|
||||
|
||||
/** Handles reset vehicle input */
|
||||
void ResetVehicle(const FInputActionValue& Value);
|
||||
|
||||
/** Called when the brake lights are turned on or off */
|
||||
UFUNCTION(BlueprintImplementableEvent, Category="Vehicle")
|
||||
void BrakeLights(bool bBraking);
|
||||
|
||||
public:
|
||||
/** Returns the front spring arm subobject */
|
||||
FORCEINLINE USpringArmComponent* GetFrontSpringArm() const { return FrontSpringArm; }
|
||||
/** Returns the front camera subobject */
|
||||
FORCEINLINE UCameraComponent* GetFollowCamera() const { return FrontCamera; }
|
||||
/** Returns the back spring arm subobject */
|
||||
FORCEINLINE USpringArmComponent* GetBackSpringArm() const { return BackSpringArm; }
|
||||
/** Returns the back camera subobject */
|
||||
FORCEINLINE UCameraComponent* GetBackCamera() const { return BackCamera; }
|
||||
/** Returns the cast Chaos Vehicle Movement subobject */
|
||||
FORCEINLINE const TObjectPtr<UChaosWheeledVehicleMovementComponent>& GetChaosVehicleMovement() const { return ChaosVehicleMovement; }
|
||||
};
|
Reference in New Issue
Block a user