47 lines
1.8 KiB
C#
47 lines
1.8 KiB
C#
using VContainer;
|
|
using VContainer.Unity;
|
|
using UnityEngine;
|
|
using Darkmatter.Core;
|
|
using Darkmatter.Presentation;
|
|
using Darkmatter.Domain;
|
|
|
|
namespace Darkmatter.App
|
|
{
|
|
public class GameLifetimeScope : LifetimeScope
|
|
{
|
|
|
|
[SerializeField] private InputReaderSO inputReader;
|
|
[SerializeField] private PlayerMotor playerMotor;
|
|
[SerializeField] private PlayerAnimController playerAnim;
|
|
[SerializeField] private PlayerConfigSO playerConfig;
|
|
[SerializeField] private EnemyConfigSO enemyConfig;
|
|
[SerializeField] private CameraConfigSO cameraConfig;
|
|
[SerializeField] private CameraService camService;
|
|
[SerializeField] private GunWeapon gunWeapon;
|
|
[SerializeField] private PlayerAimTargetProvider TargetProvider;
|
|
protected override void Configure(IContainerBuilder builder)
|
|
{
|
|
builder.RegisterEntryPoint<PlayerController>(Lifetime.Scoped);
|
|
builder.RegisterEntryPoint<EnemyController>(Lifetime.Scoped);
|
|
|
|
builder.RegisterComponent<IPlayerAnim>(playerAnim);
|
|
builder.RegisterComponent<IInputReader>(inputReader);
|
|
builder.RegisterComponent<IPlayerPawn>(playerMotor);
|
|
builder.RegisterComponent<ITargetProvider>(TargetProvider);
|
|
builder.RegisterComponent(playerConfig);
|
|
builder.RegisterComponent(cameraConfig);
|
|
builder.RegisterComponent(enemyConfig);
|
|
builder.RegisterComponent<ICameraService>(camService);
|
|
builder.RegisterComponent<IReloadableWeapon>(gunWeapon);
|
|
|
|
builder.RegisterComponentInHierarchy<IEnemyAnimController>();
|
|
builder.RegisterComponentInHierarchy<IEnemyPawn>();
|
|
|
|
builder.Register<PlayerStateMachine>(Lifetime.Scoped);
|
|
builder.Register<EnemyStateMachine>(Lifetime.Scoped);
|
|
|
|
|
|
}
|
|
}
|
|
}
|