71 lines
2.4 KiB
C
71 lines
2.4 KiB
C
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "CoreMinimal.h"
|
||
|
#include "Components/ActorComponent.h"
|
||
|
#include "GameplayTagContainer.h"
|
||
|
#include "LyraContextEffectsInterface.h"
|
||
|
#include "UObject/SoftObjectPtr.h"
|
||
|
#include "LyraContextEffectComponent.generated.h"
|
||
|
|
||
|
class ULyraContextEffectsLibrary;
|
||
|
class UNiagaraComponent;
|
||
|
class UAudioComponent;
|
||
|
|
||
|
UCLASS( ClassGroup=(Custom), hidecategories = (Variable, Tags, ComponentTick, ComponentReplication, Activation, Cooking, AssetUserData, Collision), CollapseCategories, meta=(BlueprintSpawnableComponent) )
|
||
|
class LYRAGAME_API ULyraContextEffectComponent : public UActorComponent, public ILyraContextEffectsInterface
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
|
||
|
public:
|
||
|
// Sets default values for this component's properties
|
||
|
ULyraContextEffectComponent();
|
||
|
|
||
|
protected:
|
||
|
// Called when the game starts
|
||
|
virtual void BeginPlay() override;
|
||
|
|
||
|
// Called when the game ends
|
||
|
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
|
||
|
|
||
|
public:
|
||
|
// AnimMotionEffect Implementation
|
||
|
UFUNCTION(BlueprintCallable)
|
||
|
virtual void AnimMotionEffect_Implementation(const FName Bone, const FGameplayTag MotionEffect, USceneComponent* StaticMeshComponent,
|
||
|
const FVector LocationOffset, const FRotator RotationOffset, const UAnimSequenceBase* AnimationSequence,
|
||
|
const bool bHitSuccess, const FHitResult HitResult, FGameplayTagContainer Contexts,
|
||
|
FVector VFXScale = FVector(1), float AudioVolume = 1, float AudioPitch = 1) override;
|
||
|
|
||
|
// Auto-Convert Physical Surface from Trace Result to Context
|
||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly)
|
||
|
bool bConvertPhysicalSurfaceToContext = true;
|
||
|
|
||
|
// Default Contexts
|
||
|
UPROPERTY(EditAnywhere)
|
||
|
FGameplayTagContainer DefaultEffectContexts;
|
||
|
|
||
|
// Default Libraries for this Actor
|
||
|
UPROPERTY(EditAnywhere)
|
||
|
TSet<TSoftObjectPtr<ULyraContextEffectsLibrary>> DefaultContextEffectsLibraries;
|
||
|
|
||
|
UFUNCTION(BlueprintCallable)
|
||
|
void UpdateEffectContexts(FGameplayTagContainer NewEffectContexts);
|
||
|
|
||
|
UFUNCTION(BlueprintCallable)
|
||
|
void UpdateLibraries(TSet<TSoftObjectPtr<ULyraContextEffectsLibrary>> NewContextEffectsLibraries);
|
||
|
|
||
|
private:
|
||
|
UPROPERTY(Transient)
|
||
|
FGameplayTagContainer CurrentContexts;
|
||
|
|
||
|
UPROPERTY(Transient)
|
||
|
TSet<TSoftObjectPtr<ULyraContextEffectsLibrary>> CurrentContextEffectsLibraries;
|
||
|
|
||
|
UPROPERTY(Transient)
|
||
|
TArray<UAudioComponent*> ActiveAudioComponents;
|
||
|
|
||
|
UPROPERTY(Transient)
|
||
|
TArray<UNiagaraComponent*> ActiveNiagaraComponents;
|
||
|
};
|