#pragma once

#include "CoreMinimal.h"
#include "AICharacterBehaviour.h"
#include "AITypes.h"
#include "Navigation/PathFollowingComponent.h"
#include "AICharacterHideInLockerBehaviour.generated.h"

class ADBDPlayer;
class ADBDAIPlayerController;
class UAICharacterHideInLockerBehaviourData;

UCLASS(Blueprintable)
class UAICharacterHideInLockerBehaviour : public UAICharacterBehaviour
{
	GENERATED_BODY()

private:
	UPROPERTY(BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	ADBDPlayer* _aiPlayer;

	UPROPERTY(BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	ADBDAIPlayerController* _aiPlayerController;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	UAICharacterHideInLockerBehaviourData* _characterHideInLockerData;

private:
	UFUNCTION()
	void OnMovementFinished(FAIRequestID RequestID, EPathFollowingResult::Type Result);

public:
	UAICharacterHideInLockerBehaviour();
};

FORCEINLINE uint32 GetTypeHash(const UAICharacterHideInLockerBehaviour) { return 0; }
