forked from Shardstone/trail-into-darkness
38 lines
1.5 KiB
C#
38 lines
1.5 KiB
C#
using Nox.UI;
|
|
using UnityEngine;
|
|
using UnityEngine.AddressableAssets;
|
|
|
|
namespace Nox.Core {
|
|
/// <summary>
|
|
/// This is an example for the first game state which in our case would usually contain a gdpr
|
|
/// This is an example to show how it could be initialized and also how it could boot into the next game state
|
|
/// Ideally a SceneHandler/Manager of sorts should handle loading and unloading scenes.
|
|
/// </summary>
|
|
public class SplashGameState : IGameState {
|
|
private readonly BootstrapReferences bootStrapInitializer;
|
|
private readonly GameDataState gameDataState;
|
|
public bool IsGameStateInitialized { get; set; } = true;
|
|
|
|
public SplashGameState(BootstrapReferences bootStrapInitializer, GameDataState gameDataState) {
|
|
this.bootStrapInitializer = bootStrapInitializer;
|
|
this.gameDataState = gameDataState;
|
|
}
|
|
|
|
public void EnterGameState() {
|
|
DisclaimerReference gdprReference = Addressables.InstantiateAsync(bootStrapInitializer.splashUIReference).WaitForCompletion().GetComponent<DisclaimerReference>();
|
|
gdprReference.continueButton.onClick.AddListener(() => {
|
|
gameDataState.ChangeGameState(GameState.MainMenu);
|
|
Object.Destroy(gdprReference.gameObject);
|
|
});
|
|
}
|
|
|
|
|
|
public GameState Tick() {
|
|
return GameState.BootState;
|
|
}
|
|
public void LateTick() { }
|
|
public void Dispose() { }
|
|
public void ExitGameState() { }
|
|
}
|
|
}
|