using Services.Interfaces; using UnityEngine; using VContainer.Unity; namespace Services { public class LevelEntryPoint : IStartable { private readonly IGameBoardService gameBoardService; private readonly IInputService inputService; public LevelEntryPoint(IGameBoardService gameBoardService, IInputService inputService) { this.gameBoardService = gameBoardService; this.inputService = inputService; } public void Start() { this.gameBoardService.Setup(); this.inputService.OnSwapRequested += HandleSwapRequest; this.inputService.OnSwitchRequested += HandleSwitchRequest; } private void HandleSwapRequest(Vector2Int from, Vector2Int to) { this.gameBoardService.TrySwap(from, to); } private void HandleSwitchRequest(Vector2Int position) { this.gameBoardService.TrySwitch(position); } } }