OLS/Source/ols/Private/Camera/Components/OLSUICameraManagerComponent.cpp
LongLy 57b53b9c0c Implemented OLSCameraMode.
Addressed @TODOs related to custom logs and OLSCameraMode
2025-01-20 14:08:07 -07:00

70 lines
1.9 KiB
C++

// © 2024 Long Ly. All rights reserved. Any unauthorized use, reproduction, or distribution of this trademark is strictly prohibited and may result in legal action.
#include "Camera/Components/OLSUICameraManagerComponent.h"
#include "Camera/OLSPlayerCameraManager.h"
#include "GameFramework/HUD.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(OLSUICameraManagerComponent)
UOLSUICameraManagerComponent* UOLSUICameraManagerComponent::GetComponent(APlayerController* playerController)
{
if (playerController)
{
if (AOLSPlayerCameraManager* playerCamera = Cast<AOLSPlayerCameraManager>(playerController->PlayerCameraManager))
{
return playerCamera->GetUICameraComponent();
}
}
return nullptr;
}
UOLSUICameraManagerComponent::UOLSUICameraManagerComponent()
{
bWantsInitializeComponent = true;
if (!HasAnyFlags(RF_ClassDefaultObject))
{
// Register "showdebug" hook.
if (!IsRunningDedicatedServer())
{
AHUD::OnShowDebugInfo.AddUObject(this, &ThisClass::OnShowDebugInfo);
}
}
}
bool UOLSUICameraManagerComponent::IsSettingViewTarget() const
{
return bShouldUpdatingViewTarget;
}
AActor* UOLSUICameraManagerComponent::GetViewTarget() const
{
return ViewTarget;
}
void UOLSUICameraManagerComponent::SetViewTarget(AActor* viewTarget, FViewTargetTransitionParams transitionParams)
{
TGuardValue<bool> UpdatingViewTargetGuard(bShouldUpdatingViewTarget, true);
ViewTarget = viewTarget;
CastChecked<AOLSPlayerCameraManager>(GetOwner())->SetViewTarget(ViewTarget, transitionParams);
}
bool UOLSUICameraManagerComponent::NeedsToUpdateViewTarget() const
{
return false;
}
void UOLSUICameraManagerComponent::UpdateViewTarget(FTViewTarget& outVT, float deltaTime)
{
}
void UOLSUICameraManagerComponent::OnShowDebugInfo(AHUD* hud, UCanvas* canvas,
const FDebugDisplayInfo& displayInfo,
float& yl, float& yPos)
{
}