#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "DBDConnectionStatus.h"
#include "OnlineSystemHandler.generated.h"

class ULocalPlayer;
class UDBDGameInstance;
class UGameSessionDS;
class UDBDServerInstance;
class UCrossPlatformManager;

UCLASS(Blueprintable, Transient)
class DEADBYDAYLIGHT_API UOnlineSystemHandler : public UObject
{
	GENERATED_BODY()

private:
	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	ULocalPlayer* _cachedLocalPlayer;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	UDBDGameInstance* _gameInstance;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	UGameSessionDS* _gameSessionDS;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	UDBDServerInstance* _serverInstance;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FDBDConnectionStatus _connectionStatus;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	UCrossPlatformManager* _crossPlatformManager;

public:
	UOnlineSystemHandler();
};

FORCEINLINE uint32 GetTypeHash(const UOnlineSystemHandler) { return 0; }
