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

216 lines
7.9 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "Engine/EngineTypes.h"
#include "Engine/NetSerialization.h"
#include "DoubleDrillDamageItem.h"
#include "DualAnimatedItem.h"
#include "EDoubleDrillState.h"
#include "RejoinListener.h"
#include "Upgradable.h"
#include "UpgradableGear.h"
#include "DoubleDrillItem.generated.h"
class AActor;
class UAnimMontage;
class UDamageClass;
class UDamageComponent;
class UDialogDataAsset;
class UDoubleDrillAggregator;
class UFSDAudioComponent;
class UFSDPhysicalMaterial;
class UFirstPersonParticleSystemComponent;
class UForceFeedbackEffect;
class UParticleSystem;
UCLASS(Blueprintable)
class ADoubleDrillItem : public ADualAnimatedItem, public IUpgradable, public IUpgradableGear, public IRejoinListener {
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UFirstPersonParticleSystemComponent* FP_Left_DrillParticles;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UFirstPersonParticleSystemComponent* FP_Right_DrillParticles;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UDamageComponent* DamageComponent;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UFSDAudioComponent* AudioComponent;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UDoubleDrillAggregator* Aggregator;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UAnimMontage* FPMineMontage;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UAnimMontage* TPMineMontage;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UAnimMontage* FPOverheat;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UAnimMontage* TPOverheat;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UAnimMontage* FPGunsling;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UAnimMontage* TPGunsling;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FName MiningSpeedAudioParamterName;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UParticleSystem* DrillParticles;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UForceFeedbackEffect* DrillRumble;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float BlockParticlesScaleFP;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float BlockParticlesScaleTP;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
EDoubleDrillState State;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MovementPenalty;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MiningRate;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float HeatReductionPerKill;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FVector CarveSize;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float CarveNoise;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float CarverRayCastLength;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float CarveTerrainDistanceCheck;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
float TimeToNextMine;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
float CurrentDrillSpeed;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float DamageDistance;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float DamageRadius;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float FriendlyDamageRadius;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float DamageRate;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float Damage;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float armorDamageMultiplier;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UDamageClass* DamageClass;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float FriendlyFireModifier;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MaxFuel;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
float Fuel;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float FuelUsePerDig;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float FuelUsePerMelee;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float SupplyStatusWeight;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UDialogDataAsset* ShoutOutOfFuel;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TArray<FHitResult> HitCache;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TArray<FDoubleDrillDamageItem> DamageCache;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float DrillParticlesDuration;
UPROPERTY(BlueprintReadWrite, EditAnywhere, ReplicatedUsing=OnRep_SimulatingMining, meta=(AllowPrivateAccess=true))
bool IsMining;
UPROPERTY(BlueprintReadWrite, EditAnywhere, ReplicatedUsing=OnRep_IsGunslinging, meta=(AllowPrivateAccess=true))
bool IsGunslinging;
ADoubleDrillItem();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
UFUNCTION(BlueprintCallable, Reliable, Server)
void Server_StopMining();
UFUNCTION(BlueprintCallable, Reliable, Server)
void Server_StartMining();
UFUNCTION(BlueprintCallable, Reliable, Server)
void Server_DoDamage(const TArray<FDoubleDrillDamageItem>& Targets);
UFUNCTION(BlueprintCallable, Reliable, Server)
void Server_DigBlock(FVector_NetQuantize Start, FVector_NetQuantize End);
UFUNCTION(BlueprintCallable)
void OnTargetKilled(AActor* Target, UFSDPhysicalMaterial* PhysMat, bool wasDirectHit);
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnStopDrilling();
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnStartDrilling();
UFUNCTION(BlueprintCallable)
void OnRep_SimulatingMining();
UFUNCTION(BlueprintCallable)
void OnRep_IsGunslinging();
UFUNCTION(BlueprintCallable)
void OnDrillParticlesTimerElapsed();
UFUNCTION(BlueprintCallable, Client, Reliable)
void Client_Resupply(float percentage);
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void BP_OnDrillDamage();
UFUNCTION(BlueprintCallable, NetMulticast, Unreliable)
void All_SimulateDigDebris(FVector_NetQuantize Position, int32 DebrisIndex);
UFUNCTION(BlueprintCallable, NetMulticast, Unreliable)
void All_SimulateDigBlock(FVector_NetQuantize Position, bool SpawnParticles, int32 Material);
UFUNCTION(BlueprintCallable, NetMulticast, Unreliable)
void All_SimulateDamage(const TArray<FDoubleDrillDamageItem>& Targets);
// Fix for true pure virtual functions not being implemented
};