38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
using Code.Infrastructure.Camera;
|
|
using Code.Infrastructure.Generators;
|
|
using Code.Infrastructure.SceneLoader;
|
|
using Cysharp.Threading.Tasks;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
namespace Code.Infrastructure.App.States
|
|
{
|
|
[State(typeof(AppStates),typeof(AppStateMachineContext))]
|
|
[StateRaisingEvent]
|
|
public partial class BootstrapState : IOnGameplaySceneLoadedHandler
|
|
{
|
|
private EventBus.EventBus _eventBus;
|
|
public BootstrapState(AppStateMachineContext context, EventBus.EventBus eventBus) : base(context,eventBus)
|
|
{
|
|
_eventBus = eventBus;
|
|
}
|
|
|
|
public override AppStates myState => AppStates.Bootstrap;
|
|
protected override void OnEnterState()
|
|
{
|
|
_eventBus.Subscribe(this);
|
|
Context.Camera.SwitchState(CameraMode.FirstPerson).AllowStateTransition(CameraMode.None);
|
|
Context.SceneLoader.LoadSceneAsync(SceneId.Gameplay, LoadSceneMode.Single).Forget();
|
|
}
|
|
|
|
protected override void OnExitState()
|
|
{
|
|
_eventBus.Unsubscribe(this);
|
|
}
|
|
|
|
public void OnGameplaySceneLoaded()
|
|
{
|
|
Debug.Log("Spermageddon");
|
|
}
|
|
}
|
|
} |