/
GeekNerd
/
ServerModelingProject
Обзор
Документация
Войти
/
GeekNerd
/
ServerModelingProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Assets/Scripts/UI_Logic/MainMenuPart/Buttons/Controllers/CreateProjectButtonController.cs
92 строки
3 KB
Gorney-Alex
Init
30 май 2026, 19:05
30 май 2026, 19:05
3cdcc49
Код
Авторство
О чём код?
using System; using System.IO; using App; using UI_Logic.InputFields.InputFieldFormView; using UnityEngine; using Zenject; namespace UI_Logic.Buttons.Controllers { public class CreateProjectButtonController : IInitializable, IDisposable { private readonly CreateProjectButtonView _buttonView; private readonly CreateProjectFormView _formView; private readonly ProjectService _projectService; private readonly ProjectSettingsDraftService _projectSettingsDraftService; private readonly AppLauncher _appLauncher; public CreateProjectButtonController( CreateProjectButtonView buttonView, CreateProjectFormView formView, ProjectService projectService, ProjectSettingsDraftService projectSettingsDraftService, AppLauncher appLauncher) { _buttonView = buttonView; _formView = formView; _projectService = projectService; _projectSettingsDraftService = projectSettingsDraftService; _appLauncher = appLauncher; if (_buttonView == null) Debug.LogError("CreateProjectButtonController: _buttonView is null"); if (_formView == null) Debug.LogError("CreateProjectButtonController: _formView is null"); if (_projectService == null) Debug.LogError("CreateProjectButtonController: _projectService is null"); if (_appLauncher == null) Debug.LogError("CreateProjectButtonController: _appLauncher is null"); } public void Initialize() { _buttonView.GetButton().onClick.AddListener(Pressed); } public void Dispose() { if (_buttonView as UnityEngine.Object == null) return; _buttonView.GetButton().onClick.RemoveListener(Pressed); } private void Pressed() { _formView.ClearError(); string projectName = _formView.GetProjectName(); string folderPath = _formView.GetFolderPath(); if (string.IsNullOrWhiteSpace(projectName)) { _formView.ShowError("Write project name"); return; } if (string.IsNullOrWhiteSpace(folderPath)) { _formView.ShowError("Write folder path"); return; } if (!Directory.Exists(folderPath)) { _formView.ShowError("Folder path does not exist"); return; } bool success = _projectService.CreateProject(projectName, folderPath); if (!success) { _formView.ShowError("Project creation failed"); return; } bool settingsSaved = _projectSettingsDraftService.SaveAppliedSettings(); if (!settingsSaved) { _formView.ShowError("Project created, but saving settings failed"); return; } _appLauncher.StartRoomBuildingScene(); } } }