LEAP Documentation 40220
Documentation for the LEAP project
WeaponInstanceStatics.h
Go to the documentation of this file.
1// Copyright Blue Isle Studios Inc 2018. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Kismet/GameplayStatics.h"
8#include "UObject/NoExportTypes.h"
9#include "WeaponInstanceStatics.generated.h"
10
11class UWidgetComponent;
13
14USTRUCT()
16{
17 GENERATED_USTRUCT_BODY()
18 FCustomTraceParams() : TraceOriginLocation(FVector::ZeroVector), TraceEndLocation(FVector::ZeroVector), CustomTraceChannel(ECC_Visibility) {}
19
20 FVector TraceOriginLocation = FVector::ZeroVector;
21 FVector TraceEndLocation = FVector::ZeroVector;
22 ECollisionChannel CustomTraceChannel = ECC_Visibility;
23
24 bool IsValid() const
25 {
26 if (TraceOriginLocation != FVector::ZeroVector && TraceEndLocation != FVector::ZeroVector)
27 {
28 return true;
29 }
30
31 return false;
32 }
33};
34
35
36UCLASS()
37class PROJECTX_API UWeaponInstanceStatics : public UGameplayStatics
38{
39 GENERATED_BODY()
40
41public:
42 static FVector CorrectedGroundDirection(const FVector& Direction, AProjectXCharacter* Character);
43
44 UFUNCTION(BlueprintCallable, Category = "WeaponInstanceStatics")
45 static AActor* GetClosestTarget(AActor* Owner, const FTransform& Origin, const float Range, TArray <TEnumAsByte<EObjectTypeQuery>> ObjectTypes);
46
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);
49
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());
53
54 UFUNCTION(BlueprintCallable)
55 static FVector GetDirectionAroundCone(FVector const& Direction, float HorizontalConeHalfAngleRad, float VerticalConeHalfAngleRad, const float Degrees);
56
57 UFUNCTION(BlueprintCallable)
58 static UTightAimWeaponBillboard* CreateTightAimBillboard(UObject* WorldContextObject, TSubclassOf<UTightAimWeaponBillboard> TightAimBillboardClass, UWeaponInstance* Weapon, const TArray<FMaterialSpriteElement>& NewElements, const FName Socket);
59};
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