Files
open-conflict/Source/OpenConflict/Weapons/MagazineActor.h
2026-01-20 00:12:14 -05:00

77 lines
1.5 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MagazineActor.generated.h"
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FAMMO_REPACK);
UCLASS()
class OPENCONFLICT_API AMagazineActor : public AActor
{
GENERATED_BODY()
/*UPROPERTY and UFUNCTION declarations*/
private:
/*Properties*/
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
int MAX_COUNT;
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
int CurrentCount;
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
bool ActiveMag = false;
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
float RepackDelay = 0.5f;
/*Functions*/
protected:
/*Properties*/
/*Functions*/
public:
/*Properties*/
UPROPERTY(BlueprintAssignable)
FAMMO_REPACK AMMO_REPACK;
/*Functions*/
UFUNCTION(BlueprintImplementableEvent)
void EmptyMagEvent();
/*C++ only declarations*/
private:
/*Properties*/
/*Functions*/
void PackMag();
protected:
/*Properties*/
FTimerHandle RepackTimer;
/*Functions*/
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
/*Properties*/
bool hasReserveAmmo = true;
/*Functions*/
// Sets default values for this actor's properties
AMagazineActor();
AMagazineActor(int MaxCount);
// Called every frame
virtual void Tick(float DeltaTime) override;
void StripRound();
void SetAmmoValues(int MaxCount);
};