DRG-Femboy-Voice/Source/FSD/Public/Craftable.h
2025-04-15 12:39:31 -07:00

56 lines
2.4 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "CraftingCost.h"
#include "Craftable.generated.h"
class AFSDPlayerState;
class UObject;
class UPlayerCharacterID;
UINTERFACE(BlueprintType, meta=(CannotImplementInterfaceInBlueprint))
class FSD_API UCraftable : public UInterface {
GENERATED_BODY()
};
class FSD_API ICraftable : public IInterface {
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable)
virtual void PreviewItem(AFSDPlayerState* PlayerState, bool Show) const PURE_VIRTUAL(PreviewItem,);
UFUNCTION(BlueprintCallable, meta=(WorldContext="WorldContextObject"))
virtual bool IsOwned(UObject* WorldContextObject, UPlayerCharacterID* characterID) const PURE_VIRTUAL(IsOwned, return false;);
UFUNCTION(BlueprintCallable)
virtual TArray<FCraftingCost> GetResourceCost() const PURE_VIRTUAL(GetResourceCost, return TArray<FCraftingCost>(););
UFUNCTION(BlueprintCallable)
virtual int32 GetRequiredPlayerRank() const PURE_VIRTUAL(GetRequiredPlayerRank, return 0;);
UFUNCTION(BlueprintCallable)
virtual FCraftingCost GetFashioniteCost() const PURE_VIRTUAL(GetFashioniteCost, return FCraftingCost{};);
UFUNCTION(BlueprintCallable)
virtual int32 GetCraftingCreditsCost() const PURE_VIRTUAL(GetCraftingCreditsCost, return 0;);
UFUNCTION(BlueprintCallable)
virtual FText GetCraftableName() const PURE_VIRTUAL(GetCraftableName, return FText::GetEmpty(););
UFUNCTION(BlueprintCallable)
virtual FText GetCraftableDescription() const PURE_VIRTUAL(GetCraftableDescription, return FText::GetEmpty(););
UFUNCTION(BlueprintCallable, meta=(WorldContext="WorldContextObject"))
virtual void CraftItemWithFashionite(UObject* WorldContextObject, UPlayerCharacterID* characterID) const PURE_VIRTUAL(CraftItemWithFashionite,);
UFUNCTION(BlueprintCallable, meta=(WorldContext="WorldContextObject"))
virtual void CraftItem(UObject* WorldContextObject, UPlayerCharacterID* characterID) const PURE_VIRTUAL(CraftItem,);
UFUNCTION(BlueprintCallable, meta=(WorldContext="WorldContextObject"))
virtual bool CanCraftWithFashionite(UObject* WorldContextObject) const PURE_VIRTUAL(CanCraftWithFashionite, return false;);
UFUNCTION(BlueprintCallable, meta=(WorldContext="WorldContextObject"))
virtual bool CanCraft(UObject* WorldContextObject) const PURE_VIRTUAL(CanCraft, return false;);
};