// // Copyright 2025 https://yuewu.dev/en All Rights Reserved. // // #pragma once // // #include "CoreMinimal.h" // #include "GameFramework/CharacterMovementComponent.h" // #include "Locomotions/GMS_LocomotionStructLibrary.h" // #include "GMS_CharacterMovementComponent.generated.h" // // class UGMS_CharacterMovementSystemComponent; // class UGMS_CMC_MovementMode; // // UCLASS(ClassGroup=(GMS), Blueprintable) // class GENERICMOVEMENTSYSTEM_API UGMS_CharacterMovementComponent : public UCharacterMovementComponent // { // GENERATED_BODY() // // friend UGMS_CMC_MovementMode; // // public: // // Sets default values for this component's properties // UGMS_CharacterMovementComponent(const FObjectInitializer& ObjectInitializer); // // protected: // virtual void InitializeComponent() override; // virtual void SetUpdatedComponent(USceneComponent* NewUpdatedComponent) override; // virtual bool HasValidData() const override; // // virtual void TickCharacterPose(float DeltaTime) override; // virtual void PhysicsRotation(float DeltaTime) override; // // void GMS_TurnToDesiredRotation(const FRotator& CurrentRotation, FRotator DesiredRotation, FRotator DeltaRot); // // void GMS_TurnToDesiredRotationWithRotationRate(const FRotator& CurrentRotation, FRotator DesiredRotation, FRotator DeltaRot); // // // UFUNCTION(BlueprintNativeEvent, Category="GMS|Movement", meta=(DisplayName="Physics Rotation")) // void GMS_PhysicsRotation(float DeltaTime); // // UFUNCTION(BlueprintNativeEvent, Category="GMS|Movement", meta=(DisplayName="Compute Orient To Desired Movement Rotation")) // FRotator GMS_ComputeOrientToDesiredMovementRotation(const FRotator& CurrentRotation, float DeltaTime, FRotator& DeltaRotation) const; // // UFUNCTION(BlueprintNativeEvent, Category="GMS|Movement", meta=(DisplayName="Compute Orient To Desired View Rotation")) // FRotator GMS_ComputeOrientToDesiredViewRotation(const FRotator& CurrentRotation, float DeltaTime, FRotator& DeltaRotation) const; // // UFUNCTION(BlueprintNativeEvent, Category="GMS|Movement", meta=(DisplayName="Compute Orient To Desired View Rotation")) // bool HasAnimationRotationDeltaYawAngle(float DeltaTime, float& OutDeltaYawAngle) const; // // /** // * Using the default physic rotation of CMC, instead of GMS one. // */ // UPROPERTY(Category="Character Movement (Rotation Settings)", EditAnywhere, BlueprintReadWrite) // bool bUseNativeRotation{false}; // // UPROPERTY(Transient, DuplicateTransient) // TObjectPtr MovementSystem; // };