mirror of
https://github.com/Bragin-Stepan/project-entity.git
synced 2026-03-05 15:51:10 +00:00
init: add project
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
using _Project.Develop.Runtime.UI.Core;
|
||||
using UnityEngine;
|
||||
|
||||
namespace _Project.Develop.Runtime.UI.Screens.MainMenu
|
||||
{
|
||||
public class MainMenuPopupService : PopupService
|
||||
{
|
||||
private readonly MainMenuUIRoot _uiRoot;
|
||||
|
||||
public MainMenuPopupService(
|
||||
ViewsFactory viewsFactory,
|
||||
ProjectPresentersFactory presentersFactory,
|
||||
MainMenuUIRoot uiRoot)
|
||||
: base(viewsFactory, presentersFactory)
|
||||
{
|
||||
_uiRoot = uiRoot;
|
||||
}
|
||||
|
||||
protected override Transform PopupLayer => _uiRoot.PopupsLayer;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b8915fbd3a06462882defa0995a7f382
|
||||
timeCreated: 1771177835
|
||||
@@ -0,0 +1,22 @@
|
||||
using Assets._Project.Develop.Runtime.Infrastructure.DI;
|
||||
|
||||
namespace _Project.Develop.Runtime.UI.Screens.MainMenu
|
||||
{
|
||||
public class MainMenuPresentersFactory
|
||||
{
|
||||
private readonly DIContainer _container;
|
||||
|
||||
public MainMenuPresentersFactory(DIContainer container)
|
||||
{
|
||||
_container = container;
|
||||
}
|
||||
|
||||
public MainMenuScreenPresenter CreateMainMenuScreen(MainMenuScreenView view)
|
||||
{
|
||||
return new MainMenuScreenPresenter(
|
||||
view,
|
||||
_container.Resolve<ProjectPresentersFactory>(),
|
||||
_container.Resolve<MainMenuPopupService>());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5db00ccae66241c39f8040ef76137734
|
||||
timeCreated: 1771177835
|
||||
@@ -0,0 +1,57 @@
|
||||
using System.Collections.Generic;
|
||||
using _Project.Develop.Runtime.UI.Core;
|
||||
using _Project.Develop.Runtime.UI.Features.Wallet;
|
||||
|
||||
namespace _Project.Develop.Runtime.UI.Screens.MainMenu
|
||||
{
|
||||
public class MainMenuScreenPresenter : IPresenter
|
||||
{
|
||||
private readonly MainMenuScreenView _screen;
|
||||
private readonly ProjectPresentersFactory _projectPresentersFactory;
|
||||
private readonly MainMenuPopupService _popupService;
|
||||
|
||||
private readonly List<IPresenter> _childPresenters = new();
|
||||
|
||||
public MainMenuScreenPresenter(
|
||||
MainMenuScreenView screen,
|
||||
ProjectPresentersFactory projectPresentersFactory,
|
||||
MainMenuPopupService popupService)
|
||||
{
|
||||
_screen = screen;
|
||||
_projectPresentersFactory = projectPresentersFactory;
|
||||
_popupService = popupService;
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
_screen.OpenLevelsMenuButtonClicked += OnOpenLevelsMenuButtonClicked;
|
||||
|
||||
CreateWallet();
|
||||
|
||||
foreach (IPresenter presenter in _childPresenters)
|
||||
presenter.Initialize();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_screen.OpenLevelsMenuButtonClicked -= OnOpenLevelsMenuButtonClicked;
|
||||
|
||||
foreach (IPresenter presenter in _childPresenters)
|
||||
presenter.Dispose();
|
||||
|
||||
_childPresenters.Clear();
|
||||
}
|
||||
|
||||
private void CreateWallet()
|
||||
{
|
||||
WalletPresenter walletPresenter = _projectPresentersFactory.CreateWalletPresenter(_screen.WalletView);
|
||||
_childPresenters.Add(walletPresenter);
|
||||
}
|
||||
|
||||
private void OnOpenLevelsMenuButtonClicked()
|
||||
{
|
||||
_popupService.OpenLevelsMenuPopup();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 95604473adb94e25b30a819cd13b7b48
|
||||
timeCreated: 1771177835
|
||||
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using _Project.Develop.Runtime.UI.Common;
|
||||
using _Project.Develop.Runtime.UI.Core;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace _Project.Develop.Runtime.UI.Screens.MainMenu
|
||||
{
|
||||
public class MainMenuScreenView : MonoBehaviour, IView
|
||||
{
|
||||
public event Action OpenLevelsMenuButtonClicked;
|
||||
public event Action ResetStatsButtonClicked;
|
||||
|
||||
[field: SerializeField] public IconTextListView WalletView { get; private set; }
|
||||
[field: SerializeField] public IconTextListView StatsView { get; private set; }
|
||||
|
||||
[SerializeField] private Button _openLevelsMenuButton;
|
||||
[SerializeField] private Button _resetStatsButton;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
_openLevelsMenuButton.onClick.AddListener(OnOpenLevelsMenuButtonClicked);
|
||||
_resetStatsButton.onClick.AddListener(OnResetStatsButtonClicked);
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
_openLevelsMenuButton.onClick.RemoveListener(OnOpenLevelsMenuButtonClicked);
|
||||
_resetStatsButton.onClick.RemoveListener(OnResetStatsButtonClicked);
|
||||
}
|
||||
|
||||
private void OnOpenLevelsMenuButtonClicked() => OpenLevelsMenuButtonClicked?.Invoke();
|
||||
private void OnResetStatsButtonClicked() => ResetStatsButtonClicked?.Invoke();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 75ddbca774384573879ac9aaa9f84738
|
||||
timeCreated: 1771177835
|
||||
@@ -0,0 +1,12 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace _Project.Develop.Runtime.UI.Screens.MainMenu
|
||||
{
|
||||
public class MainMenuUIRoot : MonoBehaviour
|
||||
{
|
||||
[field: SerializeField] public Transform HUDLayer { get; private set; }
|
||||
[field: SerializeField] public Transform PopupsLayer { get; private set; }
|
||||
[field: SerializeField] public Transform VFXUnderPopupsLayer { get; private set; }
|
||||
[field: SerializeField] public Transform VFXOverPopupsLayer { get; private set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 76e84f5cbfeb49d48f6c97834fc81f0e
|
||||
timeCreated: 1771177835
|
||||
Reference in New Issue
Block a user