6#include "CoreMinimal.h"
7#include "Engine/EngineTypes.h"
9#include "WeaponInstanceDesignator.generated.h"
14 GENERATED_UCLASS_BODY()
17 virtual void BeginPlay()
override;
18 virtual void EndPlay(
const EEndPlayReason::Type EndPlayReason)
override;
19 virtual void TickComponent(
float DeltaTime,
enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction)
override;
24 virtual bool UnEquip(
bool bForce =
false)
override;
25 virtual void OwnerDied()
override;
26 virtual bool Fire(uint8
Mode,
float WorldTimeOverride = -1.f)
override;
28 virtual void OnRep_WeaponState(
EWeaponState PreviousState)
override;
29 virtual void OnRep_FireCounter()
override;
30 virtual void StopAllActions()
override;
32 UFUNCTION(BlueprintCallable, Category =
"Designator Weapon")
33 FORCEINLINE
bool IsValidDesignator()
const {
return bValidDesignator; }
34 UFUNCTION(BlueprintCallable, Category =
"Designator Weapon")
35 FORCEINLINE
float GetDesignatorProgress()
const {
return ChargeValue; }
36 UFUNCTION(BlueprintPure, Category =
"Designator Weapon")
37 FORCEINLINE UParticleSystemComponent* GetTraceParticleSystem()
const {
return TraceParticleSystem; }
41 UFUNCTION(Server, Unreliable, WithValidation)
42 virtual
void Server_Unreliable_UpdateDesignation(const FVector& NewDesignatorLocation);
43 UFUNCTION(NetMulticast, Unreliable)
44 virtual
void Multicast_Unreliable_UpdateDesignation(const FVector& NewDesignatorLocation);
46 UFUNCTION(Server, Reliable, WithValidation)
47 virtual
void Server_Reliable_StartDesignation(const FVector& InitialDesignatorLocation);
49 virtual
void UpdateDesignator(
float DeltaTime = 0.f) override;
50 virtual
void CompleteDesignation();
51 virtual
bool GetTargetTransform(FTransform& Transform) const override;
52 virtual
void ToggleDesignatorMarker(
bool bEnable) override;
53 virtual
void SpawnTraceCosmetics(const FVector& EndLocation);
55 UFUNCTION(BlueprintImplementableEvent, Category = Marker)
56 void K2_OnDesignatorMarkerToggled();
60 FVector DesignatorLocation = FVector(0, 0, 0);
62 float DesignationStartTime = -1.f;
66 UPROPERTY(EditDefaultsOnly, Category = "Designator Weapon")
69 UPROPERTY(EditDefaultsOnly, Category = "Designator Weapon")
70 float DesignatorRange = 100000.f;
72 UPROPERTY(EditDefaultsOnly, Category = "Designator Weapon")
73 bool bMatchPlayerYaw = false;
75 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Designator Weapon|Effects")
76 UParticleSystem* TraceEmitter = NULL;
78 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Designator Weapon|Effects")
79 FName TraceEmitterSocket = "Muzzle";
81 UPROPERTY(EditDefaultsOnly, Category = "Designator Weapon")
84 UPROPERTY(EditDefaultsOnly, Category = "Designator Weapon")
85 bool bTestVertically = false;
87 UPROPERTY(EditDefaultsOnly, Category = "Designator Weapon")
88 float TraceHeight = 100000.0f;
90 class UParticleSystemComponent* TraceParticleSystem = NULL;
#define ECC_WorldOnly
Definition: ProjectX.h:67
EWeaponError
Definition: WeaponComponent.h:15
EWeaponState
Definition: WeaponInstance.h:132
Definition: WeaponInstanceActor.h:16
Definition: WeaponInstanceDesignator.h:13
Definition: WeaponInstance.h:220