diff --git a/Source/ols/Private/Messages/OLSNotificationMessage.cpp b/Source/ols/Private/Messages/OLSNotificationMessage.cpp new file mode 100644 index 0000000..e9e2aa2 --- /dev/null +++ b/Source/ols/Private/Messages/OLSNotificationMessage.cpp @@ -0,0 +1,7 @@ +// © 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 "Messages/OLSNotificationMessage.h" + + +UE_DEFINE_GAMEPLAY_TAG(TAG_OLS_AddNotification_Message, "Lyra.AddNotification.Message"); \ No newline at end of file diff --git a/Source/ols/Public/Messages/OLSNotificationMessage.h b/Source/ols/Public/Messages/OLSNotificationMessage.h new file mode 100644 index 0000000..8f67122 --- /dev/null +++ b/Source/ols/Public/Messages/OLSNotificationMessage.h @@ -0,0 +1,36 @@ +// © 2024 Long Ly. All rights reserved. Any unauthorized use, reproduction, or distribution of this trademark is strictly prohibited and may result in legal action. + +#pragma once + +#include "CoreMinimal.h" +#include "NativeGameplayTags.h" +#include "OLSNotificationMessage.generated.h" + +OLS_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(TAG_OLS_AddNotification_Message); + +// A message destined for a transient log (e.g., an elimination feed or inventory pickup stream) +USTRUCT(BlueprintType) +struct OLS_API FLyraNotificationMessage +{ + GENERATED_BODY() + + // The destination channel + UPROPERTY(BlueprintReadWrite, Category=Notification) + FGameplayTag TargetChannel = FGameplayTag::EmptyTag; + + // The target player (if none is set then it will display for all local players) + UPROPERTY(BlueprintReadWrite, Category=Notification) + TObjectPtr TargetPlayer = nullptr; + + // The message to display + UPROPERTY(BlueprintReadWrite, Category=Notification) + FText PayloadMessage; + + // Extra payload specific to the target channel (e.g., a style or definition asset) + UPROPERTY(BlueprintReadWrite, Category=Notification) + FGameplayTag PayloadTag = FGameplayTag::EmptyTag; + + // Extra payload specific to the target channel (e.g., a style or definition asset) + UPROPERTY(BlueprintReadWrite, Category=Notification) + TObjectPtr PayloadObject = nullptr; +};