Compare commits

..

2 Commits

Author SHA1 Message Date
MostExcellent 3160d68a46 Make VRPlayerController just use UVRAbilitySystemComponent 2024-10-24 15:58:35 -07:00
MostExcellent f2d8a1a14b Add VRAbilitySystemPlayerState 2024-10-24 15:44:36 -07:00
4 changed files with 76 additions and 11 deletions

View File

@ -0,0 +1,24 @@
// Copyright
#include "Player/VRAbilitySystemPlayerState.h"
#include "AbilitySystemComponent.h"
#include "AbilitySystem/VRAbilitySystemComponent.h"
AVRAbilitySystemPlayerState::AVRAbilitySystemPlayerState(FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
{
VRAbilitySystemComponent = ObjectInitializer.CreateDefaultSubobject<UVRAbilitySystemComponent>(this, TEXT("Ability System Component"));
VRAbilitySystemComponent->SetIsReplicated(true);
VRAbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Mixed);
// Do attribute sets in derived classes
// If multiplayer, update at a relatively high frequency to update ASC appropriately
NetUpdateFrequency = 100.f; // This is the setting Lyra uses
}
UAbilitySystemComponent* AVRAbilitySystemPlayerState::GetAbilitySystemComponent() const
{
return CastChecked<UAbilitySystemComponent>(VRAbilitySystemComponent);
}

View File

@ -60,8 +60,22 @@ void AVRPlayerController::OnPossess(APawn* InPawn)
UAbilitySystemGlobals::GetAbilitySystemComponentFromActor(GetPawn())); UAbilitySystemGlobals::GetAbilitySystemComponentFromActor(GetPawn()));
} }
UAbilitySystemComponent* AVRPlayerController::GetAbilitySystemComponent() // UAbilitySystemComponent* AVRPlayerController::GetAbilitySystemComponent()
// {
// if (!CachedAbilitySystemComponent.IsValid())
// {
// CachedAbilitySystemComponent = Cast<UVRAbilitySystemComponent>(
// UAbilitySystemGlobals::GetAbilitySystemComponentFromActor(GetPawn()));
//
// if (!CachedAbilitySystemComponent.IsValid()) return nullptr;
// }
//
// return CachedAbilitySystemComponent.Get();
// }
UVRAbilitySystemComponent* AVRPlayerController::GetVRAbilitySystemComponent()
{ {
// return Cast<UVRAbilitySystemComponent>(GetAbilitySystemComponent());
if (!CachedAbilitySystemComponent.IsValid()) if (!CachedAbilitySystemComponent.IsValid())
{ {
CachedAbilitySystemComponent = Cast<UVRAbilitySystemComponent>( CachedAbilitySystemComponent = Cast<UVRAbilitySystemComponent>(
@ -73,11 +87,6 @@ UAbilitySystemComponent* AVRPlayerController::GetAbilitySystemComponent()
return CachedAbilitySystemComponent.Get(); return CachedAbilitySystemComponent.Get();
} }
UVRAbilitySystemComponent* AVRPlayerController::GetVRAbilitySystemComponent()
{
return Cast<UVRAbilitySystemComponent>(GetAbilitySystemComponent());
}
void AVRPlayerController::Input_AbilityTagPressed(FGameplayTag InTag) void AVRPlayerController::Input_AbilityTagPressed(FGameplayTag InTag)
{ {
if (!GetVRAbilitySystemComponent()) if (!GetVRAbilitySystemComponent())

View File

@ -0,0 +1,32 @@
// Copyright
#pragma once
#include "CoreMinimal.h"
#include "AbilitySystemInterface.h"
#include "GameFramework/PlayerState.h"
#include "VRAbilitySystemPlayerState.generated.h"
class UVRAbilitySystemComponent;
/**
*
*/
UCLASS()
class VRGAS_API AVRAbilitySystemPlayerState : public APlayerState, public IAbilitySystemInterface
{
GENERATED_BODY()
public:
// ReSharper disable once CppNonExplicitConvertingConstructor
AVRAbilitySystemPlayerState(FObjectInitializer& ObjectInitializer);
//~ Begin IAbilitySystemInterface
virtual UAbilitySystemComponent* GetAbilitySystemComponent() const override;
//~ End IAbilitySystemInterface
protected:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "AbilitySystem")
UVRAbilitySystemComponent* VRAbilitySystemComponent;
};

View File

@ -25,7 +25,7 @@ public:
//~ Begin APlayerController Interface //~ Begin APlayerController Interface
virtual void PostProcessInput(const float DeltaTime, const bool bGamePaused) override; virtual void PostProcessInput(const float DeltaTime, const bool bGamePaused) override;
//~ End APlayerContoller Interface //~ End APlayerController Interface
protected: protected:
// TODO: Implement controller // TODO: Implement controller
@ -42,12 +42,12 @@ protected:
#pragma region GAS #pragma region GAS
UPROPERTY() UPROPERTY()
TWeakObjectPtr<UAbilitySystemComponent> CachedAbilitySystemComponent; TWeakObjectPtr<UVRAbilitySystemComponent> CachedAbilitySystemComponent;
UFUNCTION(BlueprintPure, Category = "Ability System", meta = (HideSelfPin)) // UFUNCTION(BlueprintPure, Category = "AbilitySystem", meta = (HideSelfPin))
UAbilitySystemComponent* GetAbilitySystemComponent(); // UAbilitySystemComponent* GetAbilitySystemComponent();
UFUNCTION(BlueprintPure, Category = "Ability System", meta = (HideSelfPin)) UFUNCTION(BlueprintPure, Category = "AbilitySystem", meta = (HideSelfPin))
UVRAbilitySystemComponent* GetVRAbilitySystemComponent(); UVRAbilitySystemComponent* GetVRAbilitySystemComponent();
void Input_AbilityTagPressed(FGameplayTag InTag); void Input_AbilityTagPressed(FGameplayTag InTag);