45 lines
1.4 KiB
C++
45 lines
1.4 KiB
C++
// Project Lab - NHTV Igad
|
|
|
|
#pragma once
|
|
|
|
#include "GameFramework/Actor.h"
|
|
#include "ItemBase.generated.h"
|
|
|
|
UENUM(BlueprintType)
|
|
enum class EItemTypeEnum : uint8
|
|
{
|
|
Hat UMETA(DisplayName = "Hat") ,
|
|
MainWeapon UMETA(DisplayName = "Main Weapon") ,
|
|
OffWeapon UMETA(DisplayName = "Off Weapon") ,
|
|
Chest UMETA(DisplayName = "Chest"),
|
|
Ammo UMETA(DisplayName = "Ammo"),
|
|
Feet UMETA(DisplayName = "Feet"),
|
|
};
|
|
|
|
UCLASS()
|
|
class UNREALPROJECT_API AItemBase : public AActor
|
|
{
|
|
GENERATED_BODY()
|
|
friend class ACharacterBase;
|
|
public:
|
|
AItemBase();
|
|
// Creating an item using a Skill Object's data.
|
|
static void CreateItemsFromSkill(UWorld* world, class UBaseSkillObject* skillObject, class ACharacterBase* character);
|
|
|
|
// Returns the item currently equiped in a given slot
|
|
static AItemBase* CheckSlotOccupied(EItemTypeEnum slotType, class ACharacterBase* character);
|
|
|
|
virtual void Destroyed() override;
|
|
|
|
void SetMesh(class USkeletalMesh* newMesh);
|
|
// Attaches this item to a character.
|
|
bool AttachItemToCharacter(class ACharacterBase* networkCharacter);
|
|
|
|
// Type of the item. This variable also correlates to the socket the item attaches to.
|
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Item)
|
|
EItemTypeEnum type;
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Components)
|
|
class USkeletalMeshComponent* Mesh;
|
|
class UBaseSkillObject* skillObject;
|
|
};
|