Files
MaybeThisTime/Source/MaybeThisTime/Public/ItemDefinition.h
T
2026-08-15 13:52:59 +02:00

72 lines
1.6 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Engine/DataAsset.h"
#include "GameplayTagContainer.h"
#include "GameplayEffect.h"
#include "Abilities/GameplayAbility.h"
#include "ItemDefinition.generated.h"
class AItemActor;
USTRUCT(BlueprintType)
struct FItemRegistryRow : public FTableRowBase
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadOnly) UItemDefinition* Definition = nullptr;
};
UCLASS(BlueprintType)
class MAYBETHISTIME_API UItemDefinition : public UPrimaryDataAsset
{
GENERATED_BODY()
public:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
FName ID;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
FText Name;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
FText Description ;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
FGameplayTagContainer Tags;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
int32 MaxStackSize = 1;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
float MaxDurability = 1.0f;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
float WeightPerUnit = 0.1f;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
UTexture2D* Icon;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
TArray<TSubclassOf<UGameplayEffect>> GrantedEffects;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
TArray<TSubclassOf<UGameplayAbility>> GrantedAbility;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
TObjectPtr<UStaticMesh> StaticMesh;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
TObjectPtr<USkeletalMesh> SkeletalMesh;
UPROPERTY(EditDefaultsOnly)
TSubclassOf<AItemActor> ItemActorClass;
UPROPERTY(EditAnywhere)
bool bIsBulkResource = true;
};