#include "DBDBasePlayer.h"
#include "UObject/NoExportTypes.h"
#include "AnimationMontageDescriptor.h"
#include "GameplayTagContainer.h"
#include "MontagePlaybackDefinition.h"
#include "MontagePlayer.h"

class UAnimMontage;
class UBaseGroundDetectorComponent;
class UCustomizedSkeletalMesh;
class UCustomizedAudioComponent;
class UAkComponent;
class UAnimInstance;

bool ADBDBasePlayer::TeleportWithClothHandling(const FVector& location, const FRotator& rotation, bool checkCollisions)
{
	return false;
}

void ADBDBasePlayer::StopMontage()
{

}

UAnimMontage* ADBDBasePlayer::PlayMontage(FAnimationMontageDescriptor animMontageID, float playRate, bool isFollower)
{
	return NULL;
}

void ADBDBasePlayer::OnCurrentMontageComplete(UAnimMontage* MontageAsset, bool interrupted)
{

}

void ADBDBasePlayer::OnCurrentMontageBlendingOut(UAnimMontage* MontageAsset, bool interrupted)
{

}

void ADBDBasePlayer::OnAnimInstanceChanged()
{

}

void ADBDBasePlayer::Multicast_SwapCosmetics_Implementation(FName cosmeticId)
{

}

bool ADBDBasePlayer::IsPlayingMontage(FAnimationMontageDescriptor animMontageID) const
{
	return false;
}

bool ADBDBasePlayer::IsPlayingAnyMontage() const
{
	return false;
}

bool ADBDBasePlayer::GetShowBlindDebugInfo() const
{
	return false;
}

FGameplayTagContainer ADBDBasePlayer::GetSemanticTag() const
{
	return FGameplayTagContainer{};
}

UBaseGroundDetectorComponent* ADBDBasePlayer::GetRightFrontFootGroundDetector() const
{
	return NULL;
}

UBaseGroundDetectorComponent* ADBDBasePlayer::GetRightFootGroundDetector() const
{
	return NULL;
}

UMontagePlayer* ADBDBasePlayer::GetMontagePlayer() const
{
	return NULL;
}

FMontagePlaybackDefinition ADBDBasePlayer::GetMontagePlaybackDefinition(FAnimationMontageDescriptor animMontageID, float playRate, bool isFollower) const
{
	return FMontagePlaybackDefinition{};
}

float ADBDBasePlayer::GetMontageLength(FAnimationMontageDescriptor animMontageID) const
{
	return 0.0f;
}

UAnimMontage* ADBDBasePlayer::GetMontage(FAnimationMontageDescriptor animMontageID) const
{
	return NULL;
}

UBaseGroundDetectorComponent* ADBDBasePlayer::GetLeftFrontFootGroundDetector() const
{
	return NULL;
}

UBaseGroundDetectorComponent* ADBDBasePlayer::GetLeftFootGroundDetector() const
{
	return NULL;
}

UCustomizedSkeletalMesh* ADBDBasePlayer::GetCustomizedSkeletalMesh_Implementation() const
{
	return NULL;
}

UCustomizedAudioComponent* ADBDBasePlayer::GetCustomizedAudio() const
{
	return NULL;
}

FName ADBDBasePlayer::GetCharacterOverrideId() const
{
	return NAME_None;
}

FName ADBDBasePlayer::GetCharacterName() const
{
	return NAME_None;
}

int32 ADBDBasePlayer::GetCharacterIndex() const
{
	return 0;
}

UAkComponent* ADBDBasePlayer::GetAudioComponent() const
{
	return NULL;
}

void ADBDBasePlayer::GetAnimTags(TArray<FName>& outTags) const
{

}

UAnimInstance* ADBDBasePlayer::GetAnimInstance() const
{
	return NULL;
}

void ADBDBasePlayer::DBD_SwapCosmetics(FName cosmeticId)
{

}

ADBDBasePlayer::ADBDBasePlayer()
{
	this->_montagePlayer = CreateDefaultSubobject<UMontagePlayer>(TEXT("MontagePlayer"));
	this->_characterIndex = 0;
}
