RealtimeStyleTransferRuntime/Source/LyraGame/UI/Weapons/LyraReticleWidgetBase.h

49 lines
1.3 KiB
C
Raw Normal View History

2022-05-23 18:41:30 +00:00
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "CommonUserWidget.h"
#include "LyraReticleWidgetBase.generated.h"
class ULyraWeaponInstance;
class ULyraInventoryItemInstance;
UCLASS(Abstract)
class ULyraReticleWidgetBase : public UCommonUserWidget
{
GENERATED_BODY()
public:
ULyraReticleWidgetBase(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get());
UFUNCTION(BlueprintImplementableEvent)
void OnWeaponInitialized();
UFUNCTION(BlueprintCallable)
void InitializeFromWeapon(ULyraWeaponInstance* InWeapon);
/** Returns the current weapon's diametrical spread angle, in degrees */
UFUNCTION(BlueprintCallable, BlueprintPure)
float ComputeSpreadAngle() const;
/** Returns the current weapon's maximum spread radius in screenspace units (pixels) */
UFUNCTION(BlueprintCallable, BlueprintPure)
float ComputeMaxScreenspaceSpreadRadius() const;
/**
* Returns true if the current weapon is at 'first shot accuracy'
* (the weapon allows it and it is at min spread)
*/
UFUNCTION(BlueprintCallable, BlueprintPure)
bool HasFirstShotAccuracy() const;
protected:
UPROPERTY(BlueprintReadOnly)
TObjectPtr<ULyraWeaponInstance> WeaponInstance;
UPROPERTY(BlueprintReadOnly)
TObjectPtr<ULyraInventoryItemInstance> InventoryInstance;
};