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.UI.Features.LevelsMenuPopup; using _Project.Develop.Runtime.UI.Features.Wallet; using _Project.Develop.Runtime.Utils.ReactiveManagement; using Assets._Project.Develop.Runtime.Infrastructure.DI; using Assets._Project.Develop.Runtime.Meta.Features.Wallet; using Assets._Project.Develop.Runtime.Utilities.ConfigsManagement; using Assets._Project.Develop.Runtime.Utilities.CoroutinesManagement; using Assets._Project.Develop.Runtime.Utilities.SceneManagement; namespace _Project.Develop.Runtime.UI { public class ProjectPresentersFactory { private readonly DIContainer _container; public ProjectPresentersFactory(DIContainer container) { _container = container; } public CurrencyPresenter CreateCurrencyPresenter( IconTextView view, IReadOnlyVariable currency, CurrencyTypes currencyType) { return new CurrencyPresenter( currency, currencyType, _container.Resolve().GetConfig(), view); } public WalletPresenter CreateWalletPresenter(IconTextListView view) { return new WalletPresenter( _container.Resolve(), this, _container.Resolve(), view); } public LevelTilePresenter CreateLevelTilePresenter(LevelTileView view) { return new LevelTilePresenter( _container.Resolve(), view); } public LevelsMenuPopupPresenter CreateLevelsMenuPopupPresenter(LevelsMenuPopupView view) { return new LevelsMenuPopupPresenter( _container.Resolve(), _container.Resolve(), this, _container.Resolve(), view); } } }