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

264 lines
9.5 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "UObject/NoExportTypes.h"
#include "Engine/NetSerialization.h"
#include "AnimatedItem.h"
#include "CharacterChangedDelegateDelegate.h"
#include "EExtractorState.h"
#include "FloatDelegateDelegate.h"
#include "Throwable.h"
#include "ExtractorItem.generated.h"
class AResourceChunk;
class UAnimMontage;
class UBoxComponent;
class UDialogDataAsset;
class UFSDAudioComponent;
class UFirstPersonParticleSystemComponent;
class UForceFeedbackEffect;
class UParticleSystem;
class UParticleSystemComponent;
class UPointLightComponent;
class UResourceData;
class USkeletalMeshComponent;
class USoundCue;
UCLASS(Blueprintable)
class FSD_API AExtractorItem : public AAnimatedItem, public IThrowable {
GENERATED_BODY()
public:
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FFloatDelegate OnCurrentLoadChangedEvent;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FCharacterChangedDelegate OnCharacterEquipChange;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UBoxComponent* DroppedCollider;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
USkeletalMeshComponent* DroppedMesh;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UFirstPersonParticleSystemComponent* FP_DrillParticles;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UFSDAudioComponent* AudioComponent;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UPointLightComponent* SurfaceLight;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UParticleSystemComponent* MeltingParticles;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UParticleSystemComponent* InvalidSurfaceParticles;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UParticleSystemComponent* FPMuzzleParticles;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UParticleSystemComponent* FPMuzzleInvalidParticles;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UParticleSystemComponent* TPMuzzleParticles;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UParticleSystemComponent* TPMuzzleInvalidParticles;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UAnimMontage* FPMineMontage;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UAnimMontage* TPMineMontage;
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))
EExtractorState State;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MovementPenalty;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float CarverRayCastLength;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float CarveTerrainDistanceCheck;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
float CurrentDrillSpeed;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float DrillParticlesDuration;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UResourceData* ExtractetMaterial;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float TimeBeforeInvalidShout;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UDialogDataAsset* InvalidSurfaceShout;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UDialogDataAsset* ShoutFull;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
USoundCue* DigSound;
UPROPERTY(BlueprintReadWrite, EditAnywhere, ReplicatedUsing=OnRep_SimulatingMining, meta=(AllowPrivateAccess=true))
bool IsMining;
UPROPERTY(BlueprintReadWrite, EditAnywhere, ReplicatedUsing=OnRep_IsGunslinging, meta=(AllowPrivateAccess=true))
bool IsGunslinging;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true))
bool ReadyToExtract;
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UParticleSystem* VacuumEffect;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UParticleSystem* ChunkSplatEffect;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
USoundCue* ChunkSplatSound;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MaxDifference;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MeltingTime;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ChunkMultiplier;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float CollectChunkCooldown;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float CrossfadeSpeed;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float VacuumEffectOffset;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MaxCapacity;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float PlayerCountBonus;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FColor SurfaceLightInitialColor;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FColor SurfaceLightEndColor;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float SurfaceLightMinIntensity;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float SurfaceLightMaxIntensity;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, ReplicatedUsing=OnRep_CurrentLoad, meta=(AllowPrivateAccess=true))
float CurrentLoad;
public:
AExtractorItem();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
UFUNCTION(BlueprintAuthorityOnly, BlueprintCallable, BlueprintImplementableEvent)
void SetCanPickup(bool canPickup);
UFUNCTION(BlueprintCallable, Reliable, Server)
void Server_StopMining();
UFUNCTION(BlueprintCallable, Reliable, Server)
void Server_StartMining();
protected:
UFUNCTION(BlueprintCallable, Reliable, Server)
void Server_SetReadyToExtract(bool IsReady);
public:
UFUNCTION(BlueprintCallable, Reliable, Server)
void Server_DigBlock(FVector_NetQuantize Start, FVector_NetQuantize End);
UFUNCTION(BlueprintCallable, Reliable, Server)
void Server_CollectChunk(AResourceChunk* chunk);
UFUNCTION(BlueprintAuthorityOnly, BlueprintCallable)
void ResetCurrentLoad();
protected:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnValidSurfaceChanged(bool IsValid);
public:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnThrown(FVector Direction);
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnStopDrilling();
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnStartDrilling();
UFUNCTION(BlueprintCallable)
void OnRep_SimulatingMining();
UFUNCTION(BlueprintCallable)
void OnRep_IsGunslinging();
protected:
UFUNCTION(BlueprintCallable)
void OnRep_CurrentLoad();
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnCurrentLoadChanged(float load);
public:
UFUNCTION(BlueprintCallable)
void OnChunkCooldownOver();
UFUNCTION(BlueprintCallable, BlueprintPure)
bool IsFull() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
UBoxComponent* GetRootCollider() const;
UFUNCTION(BlueprintCallable, NetMulticast, Unreliable)
void All_SimulateDigBlock(FVector_NetQuantize Position, bool SpawnParticles, int32 Material);
UFUNCTION(BlueprintCallable, NetMulticast, Unreliable)
void All_ChunkSplat(AResourceChunk* chunk);
UFUNCTION(BlueprintCallable)
void AddResource(float Amount);
// Fix for true pure virtual functions not being implemented
};