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,51 @@
using System;
using _Project.Develop.Runtime.Configs.Meta;
using _Project.Develop.Runtime.Logic.Meta.Features.Wallet;
using _Project.Develop.Runtime.UI.Common;
using _Project.Develop.Runtime.UI.Core;
using _Project.Develop.Runtime.Utils.ReactiveManagement;
namespace _Project.Develop.Runtime.UI.Features.Wallet
{
public class CurrencyPresenter : IPresenter
{
private readonly IReadOnlyVariable<int> _currency;
private readonly CurrencyTypes _currencyType;
private readonly CurrencyIconsConfigSO _currencyIconsConfig;
private readonly IconTextView _view;
private IDisposable _disposable;
public CurrencyPresenter(
IReadOnlyVariable<int> currency,
CurrencyTypes currencyType,
CurrencyIconsConfigSO currencyIconsConfig,
IconTextView view)
{
_currency = currency;
_currencyType = currencyType;
_currencyIconsConfig = currencyIconsConfig;
_view = view;
}
public IconTextView View => _view;
public void Initialize()
{
UpdateValue(_currency.Value);
_view.SetIcon(_currencyIconsConfig.GetSpriteFor(_currencyType));
_disposable = _currency.Subscribe(OnCurrencyChanged);
}
public void Dispose()
{
_disposable.Dispose();
}
private void OnCurrencyChanged(int arg1, int newValue) => UpdateValue(newValue);
private void UpdateValue(int value) => _view.SetText(value.ToString());
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 969e239137404e7e9d12b4b229fe7efb
timeCreated: 1771177336

View File

@@ -0,0 +1,62 @@
using Assets._Project.Develop.Runtime.Meta.Features.Wallet;
using System.Collections.Generic;
using _Project.Develop.Runtime.Logic.Meta.Features.Wallet;
using _Project.Develop.Runtime.UI.Common;
using _Project.Develop.Runtime.UI.Core;
namespace _Project.Develop.Runtime.UI.Features.Wallet
{
public class WalletPresenter : IPresenter
{
private readonly WalletService _walletService;
private readonly ProjectPresentersFactory _presentersFactory;
private readonly ViewsFactory _viewsFactory;
private readonly IconTextListView _view;
private readonly List<CurrencyPresenter> _currencyPresenters = new();
public WalletPresenter(
WalletService walletService,
ProjectPresentersFactory presentersFactory,
ViewsFactory viewsFactory,
IconTextListView view)
{
_walletService = walletService;
_presentersFactory = presentersFactory;
_viewsFactory = viewsFactory;
_view = view;
}
public void Initialize()
{
foreach (CurrencyTypes currencyType in _walletService.AvailableCurrencies)
{
IconTextView currencyView = _viewsFactory.Create<IconTextView>();
_view.Add(currencyView);
CurrencyPresenter currencyPresenter = _presentersFactory.CreateCurrencyPresenter(
currencyView,
_walletService.GetCurrency(currencyType),
currencyType);
currencyPresenter.Initialize();
_currencyPresenters.Add(currencyPresenter);
}
}
public void Dispose()
{
foreach (CurrencyPresenter currencyPresenter in _currencyPresenters)
{
_view.Remove(currencyPresenter.View);
_viewsFactory.Release(currencyPresenter.View);
currencyPresenter.Dispose();
}
_currencyPresenters.Clear();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b59b18c1bd074e5fa613924a9bd36a54
timeCreated: 1771177336