// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Engine/DataAsset.h" #include "LyraPickupDefinition.generated.h" class ULyraInventoryItemDefinition; class UStaticMesh; class USoundBase; class UNiagaraSystem; /** * */ UCLASS(Blueprintable, BlueprintType, Const, Meta = (DisplayName = "Lyra Pickup Data", ShortTooltip = "Data asset used to configure a pickup.")) class LYRAGAME_API ULyraPickupDefinition : public UDataAsset { GENERATED_BODY() public: //Defines the pickup's actors to spawn, abilities to grant, and tags to add UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Pickup|Equipment") TSubclassOf InventoryItemDefinition; //Visual representation of the pickup UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Pickup|Mesh") UStaticMesh* DisplayMesh; //Cool down time between pickups in seconds UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Pickup") int32 SpawnCoolDownSeconds; //Sound to play when picked up UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Pickup") USoundBase* PickedUpSound; //Sound to play when pickup is respawned UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Pickup") USoundBase* RespawnedSound; //Particle FX to play when picked up UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Pickup") UNiagaraSystem* PickedUpEffect; //Particle FX to play when pickup is respawned UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Pickup") UNiagaraSystem* RespawnedEffect; }; UCLASS(Blueprintable, BlueprintType, Const, Meta = (DisplayName = "Lyra Weapon Pickup Data", ShortTooltip = "Data asset used to configure a weapon pickup.")) class LYRAGAME_API ULyraWeaponPickupDefinition : public ULyraPickupDefinition { GENERATED_BODY() public: //Sets the height of the display mesh above the Weapon spawner UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Pickup|Mesh") FVector WeaponMeshOffset; //Sets the height of the display mesh above the Weapon spawner UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Pickup|Mesh") FVector WeaponMeshScale = FVector(1.0f, 1.0f, 1.0f); };