// Project Lab - NHTV Igad

#pragma once

#include "MenuItemBase.h"
#include "SplashScreenItem.generated.h"

/**
 * 
 */
UCLASS()
class UNREALPROJECT_API USplashScreenItem : public UMenuItemBase
{
	GENERATED_BODY()

public:
	USplashScreenItem(const FObjectInitializer& init);

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

	UFUNCTION(BlueprintNativeEvent, Category = "SplashItem")
	void OnStarted();
	UFUNCTION(BlueprintNativeEvent, Category = "SplashItem")
	void OnEnd();
	UFUNCTION(BlueprintCallable, Category = "SplashItem")
	void Skip();

	void Start();
	void End();

	UFUNCTION(BlueprintCallable, Category="Media")
	FVector2D GetMediaSize(class UMediaTexture* mediaTexture) const;

	UFUNCTION(BlueprintCallable, Category="SplashItem")
	float GetFade() const;
	UFUNCTION(BlueprintCallable, Category = "SplashItem")
	float GetFadeOut() const;
	UFUNCTION(BlueprintCallable, Category="SplashItem")
	float GetRate() const;

	UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "SplashItem")
	float fadeDuration;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="SplashItem")
	float duration;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "SplashItem")
	bool fadeEnabled;

private:
	bool m_started;
	float m_lifetime;
};
