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(Lifetime.Scoped); builder.RegisterEntryPoint(Lifetime.Scoped); builder.RegisterComponent(playerAnim); builder.RegisterComponent(inputReader); builder.RegisterComponent(playerMotor); builder.RegisterComponent(TargetProvider); builder.RegisterComponent(playerConfig); builder.RegisterComponent(cameraConfig); builder.RegisterComponent(enemyConfig); builder.RegisterComponent(camService); builder.RegisterComponent(gunWeapon); builder.RegisterComponentInHierarchy(); builder.RegisterComponentInHierarchy(); builder.Register(Lifetime.Scoped); builder.Register(Lifetime.Scoped); } } }