// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/CharacterMovementComponent.h"
#include "customCharacterMovementComponent.generated.h"

/**
 * 
 */
UCLASS()
class LOST_PLANET_API UCustomCharacterMovementComponent : public UCharacterMovementComponent
{
	GENERATED_BODY()
	
public:
    // Constructor
    UCustomCharacterMovementComponent();

protected:
    // Override PhysCustom to handle custom movement mode behaviors
    virtual void PhysCustom(float DeltaTime, int32 Iterations) override;
	void PhysClimbing(float DeltaTime, int32 Iterations);
	virtual void OnMovementModeChanged(EMovementMode PreviousMovementMode, uint8 PreviousCustomMode) override;
	static bool SweepForwardForWall(const ACharacter* Character, FHitResult& OutHit, float SweepDistance = 100.f);
};
