// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "GameplayTagContainer.h" #include "Engine/DataAsset.h" #include "WeaponData.generated.h" USTRUCT(BlueprintType) struct FPlayerAnims { GENERATED_BODY() UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr IdleAnim = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr AimIdleAnim = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr CrouchIdleAnim = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr SprintAnim = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr AimOffset_Hip = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr AimOffset_Aim = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr Strafe_Standing = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr Strafe_Crouching = nullptr; }; USTRUCT(BlueprintType) struct FMontageData { GENERATED_BODY() UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr EquipMontage = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr ReloadMontage = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr FireMontage = nullptr; }; UCLASS() class FPSTEMPLATE_API UWeaponData : public UDataAsset { GENERATED_BODY() public: UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "WeaponData|FirstPerson") TMap FirstPersonAnims; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "WeaponData|ThirdPerson") TMap ThirdPersonAnims; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "WeaponData|Weapons") TMap WeaponMontages; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "WeaponData|Weapons") TMap GripPoints; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "WeaponData|FirstPerson") TMap FirstPersonMontages; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "WeaponData|ThirdPerson") TMap ThirdPersonMontages; };