#include "Passage.h"
#include "Engine/HitResult.h"
#include "GameplayTagContainer.h"
#include "GameEventData.h"
#include "EPassageCosmeticState.h"
#include "Components/BoxComponent.h"
#include "Components/SceneComponent.h"
#include "SpawnedActorReplicationComponent.h"

class UPrimitiveComponent;
class AActor;
class ADBDPlayer;
class APassage;

void APassage::OnEndOverlapRevealExitAuraZone(UPrimitiveComponent* hitComponent, AActor* otherActor, UPrimitiveComponent* otherComp, int32 otherBodyIndex)
{

}

void APassage::OnBeginOverlapRevealExitAuraZone(UPrimitiveComponent* hitComponent, AActor* otherActor, UPrimitiveComponent* otherComp, int32 otherBodyIndex, bool bFromSweep, const FHitResult& sweepResult)
{

}

void APassage::Local_OnPlayerLocallyObservedChanged(bool isObserved, const ADBDPlayer* player)
{

}

void APassage::Local_OnPlayerLeftGame(const FGameplayTag gameplayTag, const FGameEventData& gameEventData)
{

}

EPassageCosmeticState APassage::GetPassageCosmeticState() const
{
	return Open;
}

APassage* APassage::GetConnectedPassage() const
{
	return NULL;
}

void APassage::Cosmetic_OnPlayerInRangeChanged(const bool inRange, const ADBDPlayer* player)
{

}

APassage::APassage()
{
	this->_enterInteractionZone = CreateDefaultSubobject<UBoxComponent>(TEXT("EnterInteractionZone"));
	this->_revealExitAuraZone = CreateDefaultSubobject<UBoxComponent>(TEXT("RevealExitAuraZone"));
	this->_moveTowardsComponent = CreateDefaultSubobject<USceneComponent>(TEXT("MoveTowardsComponent"));
	this->_teleportEndPointComponent = CreateDefaultSubobject<USceneComponent>(TEXT("TeleportEndPointComponent"));
	this->_teleportToIfStuckComponent = CreateDefaultSubobject<USceneComponent>(TEXT("TeleportToIfStuckComponent"));
	this->_debugOverridePassageTag = NAME_None;
	this->_debugOverrideConnectedPassageTag = NAME_None;
	this->_passageStartingCosmeticState = Closed;
	this->_spawnedActorReplicationComponent = CreateDefaultSubobject<USpawnedActorReplicationComponent>(TEXT("SpawnedActorReplicationComponent"));
	this->_entranceRevealTime = 4.000000;
	this->_idleAudioRange = 400.000000;
	this->_duringInteractionAudioRange = 800.000000;
	this->_entranceVFXDistance = 2500.000000;
	this->_entranceVFXDistanceMaxHeightOffset = 1500.000000;
	this->_isEntryPassage = true;
	this->_isExitPassage = true;
}
