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

128 lines
4.6 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "UObject/NoExportTypes.h"
#include "UObject/NoExportTypes.h"
#include "GameFramework/Actor.h"
#include "Engine/EngineTypes.h"
#include "WeaponFireOwner.h"
#include "NeedleSprayer.generated.h"
class APlayerCharacter;
class UAnimMontage;
class UFSDAudioComponent;
class UHitscanComponent;
class UNiagaraComponent;
class UPointLightComponent;
class USceneComponent;
class USkeletalMeshComponent;
UCLASS(Blueprintable)
class ANeedleSprayer : public AActor, public IWeaponFireOwner {
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
USceneComponent* Root;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
USkeletalMeshComponent* SKMesh;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UHitscanComponent* FireComponent;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UHitscanComponent* OnSpawnedEffectComponent;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UPointLightComponent* MuzzleFlashLight;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UNiagaraComponent* MuzzleFlashParticleSys;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UNiagaraComponent* ImpactParticleComponent;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
USceneComponent* ShotOriginPivot;
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, Transient, meta=(AllowPrivateAccess=true))
UHitscanComponent* HitscanComponent;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, Transient, meta=(AllowPrivateAccess=true))
UFSDAudioComponent* SoundEnd;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UAnimMontage* ReloadAnimation;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 MaxRotations;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 LinesPerRotation;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FVector2D ShotAngleFromTop;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float DeployDelay;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float LifeTime;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float TimeBetweenRotations;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float RearmTime;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float AvoidCloseOffset;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ShotOriginOffset;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 MaxRearms;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool PlayAnimationOnBeginPlay;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool PlayAnimationOnReload;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool DrawDebugLines;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float DebugLinesDuration;
public:
ANeedleSprayer();
protected:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnSpinningChanged(bool isSpinning);
public:
UFUNCTION(BlueprintCallable)
void OnHit(const FHitResult& Result, bool IsPenetrating);
// Fix for true pure virtual functions not being implemented
UFUNCTION(BlueprintCallable)
APlayerCharacter* GetPlayerCharacter() const override PURE_VIRTUAL(GetPlayerCharacter, return NULL;);
UFUNCTION(BlueprintCallable)
FQuat GetMuzzleQuat() const override PURE_VIRTUAL(GetMuzzleQuat, return FQuat{};);
UFUNCTION(BlueprintCallable)
FVector GetMuzzleLocation() const override PURE_VIRTUAL(GetMuzzleLocation, return FVector{};);
UFUNCTION(BlueprintCallable)
bool GetIsLocallyControlled() const override PURE_VIRTUAL(GetIsLocallyControlled, return false;);
UFUNCTION(BlueprintCallable)
bool GetIsFirstPerson() const override PURE_VIRTUAL(GetIsFirstPerson, return false;);
};