5#include "CoreMinimal.h"
6#include "CollisionQueryParams.h"
8#include "WeaponInstanceTrace.generated.h"
16 GENERATED_UCLASS_BODY()
19 virtual void BeginPlay()
override;
21 virtual TSubclassOf<class UDamageType> GetDamageType()
const override;
23 virtual void PrimaryFire(uint8 RemainingBurstCount)
override;
28 virtual FCollisionQueryParams GetCollisionQueryParams()
const;
30 virtual void PerformWeaponTrace();
32 virtual void WeaponTraceSingle();
33 virtual void WeaponTraceMulti();
35 virtual bool TraceSingle(FHitResult& HitResult,
const FVector& Start, FVector& End,
const ECollisionChannel& TraceChannel,
const FCollisionQueryParams& Params);
36 virtual bool TraceMulti(TArray<FHitResult>& HitResults,
const FVector& Start, FVector& End,
const ECollisionChannel& TraceChannel,
const FCollisionQueryParams& Params);
38 virtual void SpawnTraceCosmetics(UPhysicalMaterial* PhysicalMaterial,
const FVector& ImpactNormal,
const FVector& EndLocation);
40 UFUNCTION(
Server, Reliable, WithValidation)
41 virtual
void Server_Reliabe_TraceHit(const TArray<FHitResult>& HitResults);
43 virtual
bool ValidateTrace(const FHitResult& Impact) const;
47 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Trace
Weapon")
48 float TraceRange = 20000.0f;
50 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Trace
Weapon")
51 bool bPenetratingTrace = false;
53 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Trace
Weapon")
57 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Trace
Weapon|Extent")
58 bool bExtentTrace = false;
60 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Trace
Weapon|Extent", meta = (EditCondition = "bExtentTrace"))
61 float TraceExtent = 0.f;
63 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Trace
Weapon|Extent", meta = (EditCondition = "bExtentTrace"))
64 bool bUseZeroExtentForWorldCollision = false;
67 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Trace
Weapon|Effects")
68 UParticleSystem* TraceEmitter;
70 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Trace
Weapon|Effects")
71 FName TraceEmitterSocket = "Muzzle";
73 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Trace
Weapon|Effects")
74 class UDataTable* ImpactEffectTable = NULL;
Definition: WeaponInstanceRanged.h:27
Definition: WeaponInstanceTrace.h:15
FORCEINLINE class UDataTable * GetImpactEffectTable() const
Definition: WeaponInstanceTrace.h:25