// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Blueprint/UserWidget.h" #include "Components/CanvasPanelSlot.h" #include "WBP_PlayerUI.generated.h" /** * */ enum class EAmmoType: uint8; class UUWBP_Buf; UCLASS() class UWBP_PlayerUI : public UUserWidget { GENERATED_BODY() public: void SetHp(float hp,float hpMax); void SetAmmoType(EAmmoType ammoType); void SetAmmoNumber(int ammo); UUWBP_Buf* AddBuf(UTexture2D* texture,float procent); UPROPERTY(EditAnywhere, meta = (BindWidget)) class UUWBP_RoundProgressBar* HPBar; UPROPERTY(EditAnywhere, meta = (BindWidget)) class UTextBlock* AmmoText; UPROPERTY(EditAnywhere, meta = (BindWidget)) class UImage* AmmoImage; UPROPERTY(EditAnywhere, meta = (BindWidget)) class UImage* ViewFinder; UPROPERTY(EditAnywhere, meta = (BindWidget)) class UCanvasPanel* BufPanel; UPROPERTY(EditAnywhere, meta = (BindWidget)) class UCanvasPanel* AmmoPanel; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Buf") float BufRange; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Buf") float BufAngleDiff; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Buf") TSubclassOf BufClass; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Ammo") TMap AmmoIconMap; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Display") float DisplaySpeed=1.0f; void SetVisibilityHP(bool visibility); void SetVisibilityBuf(bool visibility); void SetVisibilityAmmo(bool visibility); void SetVisibilityViewFinder(bool visibility); void SetShootingViewFinder(bool Shooting); protected: void NativeTick(const FGeometry& MyGeometry, float InDeltaTime) override; private: TArray bufsSlots; void updateBufPosition(); bool showHp = true, showBuf = true, showAmmo = true, showViewFinder = true; float opacityHp = 1.0f, opacityBuf = 1.0f, opacityAmmo = 1.0f, opacityViewFinder = 1.0f; bool shootingViewFinder = false; float shootingViewFinderPercent = 1.0f; UMaterialInstanceDynamic* DynamicViewFinderMaterial = nullptr; };