Files
HelixJump/Assets/Scripts/UI/GameScreenController.cs
2025-12-15 21:51:34 +05:45

55 lines
1.4 KiB
C#

using System;
using Unity.VisualScripting;
using UnityEngine;
using VContainer;
using VContainer.Unity;
public class GameScreenController: IGameScreenController
{
GameScreenView gameScreenView;
[Inject] private IScoreService IscoreService;
[Inject] private IPauseScreenController IpauseScreenController;
[Inject] private IInputReader IinputReader;
[Inject] private IAudioController IaudioController;
public GameScreenController(GameScreenView _gameScreenView,IScoreService _IscoreService,IPauseScreenController _IpauseScreenController)
{
this.gameScreenView = _gameScreenView;
IscoreService = _IscoreService;
IpauseScreenController=_IpauseScreenController;
IscoreService.OnScoreChange += UpdateScore;
gameScreenView.pauseBtn.onClick.AddListener(OnPauseButtonClicked);
}
private void UpdateScore(int score)
{
Debug.Log("calling Score");
gameScreenView.UpdateScore(score);
}
public void ShowGameScreen()
{
gameScreenView.Show();
}
public void HideGameScreen()
{
gameScreenView.Hide();
}
public void OnPauseButtonClicked()
{
IaudioController.PlayBtnPressedSound();
Time.timeScale = 0f;
IinputReader.LockInput();
IpauseScreenController.ShowPauseScreen();
}
}
public interface IGameScreenController {
void ShowGameScreen();
void HideGameScreen();
}