Files
Infratest/Assets/Code/Infrastructure/Camera/CameraStateMachine.cs
T
ThomasCharester 5f5ace1b52 Essentials + extra crap
Loadings
Startups
Movement
Camera
2026-01-12 18:43:51 +03:00

54 lines
1.5 KiB
C#

using System.Collections.Generic;
using Code.Infrastructure.EventBus;
using Code.Infrastructure.Generators;
using Code.Infrastructure.Input;
using Reflex.Attributes;
using UnityEngine.AddressableAssets;
namespace Code.Infrastructure.Camera
{
public enum CameraMode
{
None,
FirstPerson,
Static,
Cinematic
}
[Config("Configs/Camera/CameraConfig")]
public class GameCamera
{
[ToConfig] public AssetReference Camera;
}
public interface ICameraInitializedHandle : IGlobalSubscriber
{
void CameraInitialized(CameraStateMachineContext.CameraLoadedData data);
}
public class CameraStateMachineContext
{
public class CameraLoadedData
{
public UnityEngine.Camera Camera;
public Dictionary<CameraMode, CameraSettingsConfig> SettingsConfigs;
public CameraLoadedData(UnityEngine.Camera camera, Dictionary<CameraMode, CameraSettingsConfig> settingsConfigs)
{
Camera = camera;
SettingsConfigs = settingsConfigs;
}
}
public CameraLoadedData cameraLoadedData;
[Inject] public IInputService InputService;
[Inject] public EventBus.EventBus EventBus;
}
[Generators.StateMachine(typeof(CameraStateMachineContext), typeof(CameraMode))]
public partial class CameraStateMachine
{
public UnityEngine.Camera Camera => StateMachineContext.cameraLoadedData.Camera;
}
}