init: add project

This commit is contained in:
Bragin Stepan
2026-02-18 23:02:28 +05:00
commit 4f01e66894
620 changed files with 52253 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
using _Project.Develop.Runtime.UI.Core;
using UnityEngine;
namespace _Project.Develop.Runtime.UI.Screens.Gameplay
{
public class GameplayPopupService : PopupService
{
private readonly GameplayUIRoot _uiRoot;
private readonly GameplayPresentersFactory _gameplayPresentersFactory;
public GameplayPopupService(
ViewsFactory viewsFactory,
ProjectPresentersFactory presentersFactory,
GameplayUIRoot uiRoot,
GameplayPresentersFactory gameplayPresentersFactory)
: base(viewsFactory, presentersFactory)
{
_uiRoot = uiRoot;
_gameplayPresentersFactory = gameplayPresentersFactory;
}
protected override Transform PopupLayer => _uiRoot.PopupsLayer;
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: fdaa21e8b819445e837fefce1642703e
timeCreated: 1771178011

View File

@@ -0,0 +1,24 @@
using Assets._Project.Develop.Runtime.Infrastructure.DI;
using Assets._Project.Develop.Runtime.Meta.Features.Wallet;
namespace _Project.Develop.Runtime.UI.Screens.Gameplay
{
public class GameplayPresentersFactory
{
private readonly DIContainer _container;
public GameplayPresentersFactory(DIContainer container)
{
_container = container;
}
public GameplayScreenPresenter CreateGameplayScreenPresenter(GameplayScreenView view)
{
return new GameplayScreenPresenter(
view,
_container.Resolve<WalletService>(),
_container.Resolve<GameplayPresentersFactory>(),
_container.Resolve<ProjectPresentersFactory>());
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2bfe1c715c56498d815f1046bd37a70d
timeCreated: 1771178011

View File

@@ -0,0 +1,59 @@
using System.Collections.Generic;
using _Project.Develop.Runtime.Logic.Meta.Features.Wallet;
using _Project.Develop.Runtime.UI.Core;
using _Project.Develop.Runtime.UI.Features.Wallet;
using Assets._Project.Develop.Runtime.Meta.Features.Wallet;
namespace _Project.Develop.Runtime.UI.Screens.Gameplay
{
public class GameplayScreenPresenter : IPresenter
{
private readonly GameplayScreenView _screen;
private readonly WalletService _walletService;
private readonly GameplayPresentersFactory _gameplayPresentersFactory;
private readonly ProjectPresentersFactory _projectPresentersFactory;
private readonly List<IPresenter> _childPresenters = new();
public GameplayScreenPresenter(
GameplayScreenView screen,
WalletService walletService,
GameplayPresentersFactory gameplayPresentersFactory,
ProjectPresentersFactory projectPresentersFactory)
{
_screen = screen;
_walletService = walletService;
_gameplayPresentersFactory = gameplayPresentersFactory;
_projectPresentersFactory = projectPresentersFactory;
}
public void Initialize()
{
CreateCoins();
foreach (IPresenter presenter in _childPresenters)
presenter.Initialize();
}
private void CreateCoins()
{
CurrencyPresenter presenter = _projectPresentersFactory.CreateCurrencyPresenter(
_screen.CoinsView,
_walletService.GetCurrency(CurrencyTypes.Gold),
CurrencyTypes.Gold);
_childPresenters.Add(presenter);
}
public void Dispose()
{
foreach (IPresenter presenter in _childPresenters)
presenter.Dispose();
_childPresenters.Clear();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 51b3b1ae0ddd46c2b3ff9bc479e049ae
timeCreated: 1771178011

View File

@@ -0,0 +1,12 @@
using _Project.Develop.Runtime.UI.Common;
using _Project.Develop.Runtime.UI.Core;
using UnityEngine;
namespace _Project.Develop.Runtime.UI.Screens.Gameplay
{
public class GameplayScreenView : MonoBehaviour, IView
{
[field: SerializeField] public IconTextView CoinsView { get; private set; }
[field: SerializeField] public IconTextListView StatsView { get; private set; }
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: eeaaaa56d8fa466ea3569279bcc1f591
timeCreated: 1771178011

View File

@@ -0,0 +1,13 @@
using UnityEngine;
using UnityEngine.UI;
namespace _Project.Develop.Runtime.UI.Screens.Gameplay
{
public class GameplayUIRoot : 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; }
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f61e203efd9e455ca1578edc51948477
timeCreated: 1771178011