5#include "CoreMinimal.h"
6#include "Kismet/GameplayStatics.h"
8#include "UObject/NoExportTypes.h"
9#include "WeaponInstanceStatics.generated.h"
11class UWidgetComponent;
17 GENERATED_USTRUCT_BODY()
18 FCustomTraceParams() : TraceOriginLocation(FVector::ZeroVector), TraceEndLocation(FVector::ZeroVector), CustomTraceChannel(ECC_Visibility) {}
20 FVector TraceOriginLocation = FVector::ZeroVector;
21 FVector TraceEndLocation = FVector::ZeroVector;
22 ECollisionChannel CustomTraceChannel = ECC_Visibility;
26 if (TraceOriginLocation != FVector::ZeroVector && TraceEndLocation != FVector::ZeroVector)
42 static FVector CorrectedGroundDirection(
const FVector& Direction,
AProjectXCharacter* Character);
44 UFUNCTION(BlueprintCallable, Category =
"WeaponInstanceStatics")
45 static AActor* GetClosestTarget(AActor* Owner,
const FTransform& Origin,
const float Range, TArray <TEnumAsByte<EObjectTypeQuery>> ObjectTypes);
47 UFUNCTION(BlueprintCallable, Category =
"WeaponInstanceStatics")
48 static AActor* GetClosestTargetInCone(AActor* Owner,
const FTransform& ViewTransform,
const FTransform& Origin,
const float Angle,
const float Range, TArray <TEnumAsByte<EObjectTypeQuery>> ObjectTypes);
50 static bool TargetIsWithinAngle(
const FTransform& Start,
const FTransform& Target,
const float MaxAngle);
51 static float GetTargetAngle(
const FTransform& Start,
const FTransform& Target);
52 static bool IsValidTarget(
const AActor* Owner,
const AActor* Target,
const FTransform& FirePoint,
bool bCheckVisibility =
true,
bool bCanHitNeutralTargets =
false,
bool bUseCustomTraceParams =
false,
const FCustomTraceParams& CustomTraceParms =
FCustomTraceParams());
54 UFUNCTION(BlueprintCallable)
55 static FVector GetDirectionAroundCone(FVector
const& Direction,
float HorizontalConeHalfAngleRad,
float VerticalConeHalfAngleRad,
const float Degrees);
57 UFUNCTION(BlueprintCallable)
58 static UTightAimWeaponBillboard* CreateTightAimBillboard(UObject* WorldContextObject, TSubclassOf<UTightAimWeaponBillboard> TightAimBillboardClass,
UWeaponInstance*
Weapon,
const TArray<FMaterialSpriteElement>& NewElements,
const FName Socket);
Definition: ProjectXCharacter.h:128
Definition: TightAimWeaponBillboard.h:13
Definition: WeaponInstance.h:220
Definition: WeaponInstanceStatics.h:38
Definition: WeaponInstanceStatics.h:16
bool IsValid() const
Definition: WeaponInstanceStatics.h:24