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

94 lines
3.1 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "EInputKeys.h"
#include "UsedBySignatureDelegate.h"
#include "UsableComponentBase.generated.h"
class APlayerCharacter;
class USceneComponent;
class UTexture2D;
class UUseAnimationSetting;
class UUseConditionSet;
UCLASS(Abstract, Blueprintable, ClassGroup=Custom, meta=(BlueprintSpawnableComponent))
class FSD_API UUsableComponentBase : public UActorComponent {
GENERATED_BODY()
public:
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FUsedBySignature OnClientBeginUse;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 CallbackKeys;
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float UseCooldown;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UUseAnimationSetting* AnimationSettings;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 Priority;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, Transient, meta=(AllowPrivateAccess=true))
USceneComponent* RestrictToCollider;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool UsableHidesPlaceables;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool IsRayTraceTriggered;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool ResetUsingOnCompletion;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UUseConditionSet* UseConditions;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool IsClientPredictive;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool ThirdPersonWhileUsing;
public:
UUsableComponentBase();
UFUNCTION(BlueprintCallable)
void SetUseRestrictions(UUseConditionSet* set);
UFUNCTION(BlueprintCallable)
void SetRayTraceTriggered(bool rayTraceTriggered);
UFUNCTION(BlueprintCallable)
void SetAnimationSettings(UUseAnimationSetting* Settings);
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, BlueprintPure)
FText GetUseText(APlayerCharacter* User);
UFUNCTION(BlueprintCallable, BlueprintPure)
float GetUseProgressInPercent(APlayerCharacter* User) const;
UFUNCTION(BlueprintCallable, BlueprintPure)
UTexture2D* GetUsableIcon() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
bool GetShowUsingUI() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
bool GetIsRayTraceTriggerd() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
bool GetHideProgressBar(APlayerCharacter* User) const;
UFUNCTION(BlueprintCallable, BlueprintPure)
bool GetHideActionText(APlayerCharacter* User) const;
UFUNCTION(BlueprintCallable)
void EndUse(APlayerCharacter* User);
UFUNCTION(BlueprintCallable)
void BeginUse(APlayerCharacter* User, EInputKeys Key);
};