#pragma once #include "CoreMinimal.h" #include "GameFramework/CharacterMovementComponent.h" #include "PlayerMovementComponent.generated.h" class AActor; class APlayerCharacter; class UCharacterStateComponent; class USoundBase; UCLASS(Blueprintable, ClassGroup=Custom, meta=(BlueprintSpawnableComponent)) class UPlayerMovementComponent : public UCharacterMovementComponent { GENERATED_BODY() public: UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) bool DebugFastMove; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) USoundBase* SlidingOnIceSound; protected: UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float LedgeClimbZVelocity; UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) float MovementPenalty; UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) APlayerCharacter* Character; UPROPERTY(BlueprintReadWrite, EditAnywhere, Export, Transient, meta=(AllowPrivateAccess=true)) TWeakObjectPtr CurrentPhysUpdateState; public: UPlayerMovementComponent(); UFUNCTION(BlueprintCallable) void RemoveGravityModifier(AActor* SourceActor); UFUNCTION(BlueprintCallable) void AddGravityModifier(AActor* SourceActor, float Effect); };