İlk yürütme

This commit is contained in:
2026-08-02 22:34:52 +03:00
commit 26bde15faa
601 changed files with 4420 additions and 0 deletions
@@ -0,0 +1,55 @@
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "ShooterWeaponHolder.generated.h"
class AShooterWeapon;
class UAnimMontage;
// This class does not need to be modified.
UINTERFACE(MinimalAPI)
class UShooterWeaponHolder : public UInterface
{
GENERATED_BODY()
};
/**
* Common interface for Shooter Game weapon holder classes
*/
class FIRST_API IShooterWeaponHolder
{
GENERATED_BODY()
public:
/** Attaches a weapon's meshes to the owner */
virtual void AttachWeaponMeshes(AShooterWeapon* Weapon) = 0;
/** Plays the firing montage for the weapon */
virtual void PlayFiringMontage(UAnimMontage* Montage) = 0;
/** Applies weapon recoil to the owner */
virtual void AddWeaponRecoil(float Recoil) = 0;
/** Updates the weapon's HUD with the current ammo count */
virtual void UpdateWeaponHUD(int32 CurrentAmmo, int32 MagazineSize) = 0;
/** Calculates and returns the aim location for the weapon */
virtual FVector GetWeaponTargetLocation() = 0;
/** Gives a weapon of this class to the owner */
virtual void AddWeaponClass(const TSubclassOf<AShooterWeapon>& WeaponClass) = 0;
/** Activates the passed weapon */
virtual void OnWeaponActivated(AShooterWeapon* Weapon) = 0;
/** Deactivates the passed weapon */
virtual void OnWeaponDeactivated(AShooterWeapon* Weapon) = 0;
/** Notifies the owner that the weapon cooldown has expired and it's ready to shoot again */
virtual void OnSemiWeaponRefire() = 0;
};