// Project Lab - NHTV Igad

#pragma once

#include "MenuScreenBase.h"
#include "SplashScreen.generated.h"

/**
 * 
 */
UCLASS()
class UNREALPROJECT_API USplashScreen : public UMenuScreenBase
{
	GENERATED_BODY()

public:
	USplashScreen(const FObjectInitializer& init);

	virtual void NativeConstruct() override;
	virtual void NativeTick(const FGeometry& MyGeometry, float InDeltaTime) override;

	virtual void NativeOnMenuAction(EMenuActionBinding binding) override;

	UFUNCTION(BlueprintNativeEvent, Category = "Splash")
	void OnEnd();

	UFUNCTION(BlueprintCallable, Category="Splash")
	void Init(UWidgetSwitcher* witcher);

	UFUNCTION(BlueprintCallable, Category="Splash")
	float GetFade() const;

	UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category="Splash")
	TArray<TSubclassOf<class USplashScreenItem>> splashItems;

	DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnSplashScreenDone);
	UPROPERTY(BlueprintAssignable, Category = "Splash")
	FOnSplashScreenDone onDone;

public:
	UPROPERTY()
	TArray<class USplashScreenItem*> m_activeScreens;
	int32 m_currentItem;
	UWidgetSwitcher* m_switcher;
};
