// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/PlayerController.h"
// #include "ShootHouse/ShootHouseStore.h"
#include "DDIPlayerController.generated.h"

// class UDDIWeaponUI;
class UInputMappingContext;

/**
 * 
 */
UCLASS(abstract)
class OPENCONFLICT_API ADDIPlayerController : public APlayerController
{
	GENERATED_BODY()
	/*UPROPERTY and UFUNCTION declarations*/
private:
	/*Properties*/

	/*Functions*/

protected:
	/*Properties*/
	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Shooter", meta = (AllowPrivateAccess = "true"))
	TArray<UInputMappingContext*> DefaultMappingContexts;

	// UPROPERTY(EditAnywhere, Category="Shooter")
	// TSubclassOf<UDDIWeaponUI> WeaponUIClass;

	UPROPERTY(EditAnywhere, Category="Shooter")
	FName PlayerPawnTag = FName("Player");
	

	/*Functions*/
	// UFUNCTION()
	// void OnBulletCountUpdated(int MagSize, int MagCount);

public:
	/*Properties*/
	// UPROPERTY(EditAnywhere, Category="Shooter")
	// TSubclassOf<UShootHouseStore> StoreUIClass;
	// UPROPERTY(EditAnywhere,BlueprintReadWrite, Category="Shooter")
	// TObjectPtr<UShootHouseStore> StoreUI;

	/*Functions*/

	/*C++ only declarations*/
private:
	/*Properties*/

	/*Functions*/

protected:
	/*Properties*/
	// TObjectPtr<UDDIWeaponUI> WeaponUI;

	/*Functions*/
	virtual void SetupInputComponent() override;
	virtual void BeginPlay() override;
	virtual void OnPossess(APawn *InPawn) override;

public:
	/*Properties*/

	/*Functions*/
	ADDIPlayerController();

};
