/
GeekNerd
/
ServerModelingProject
Обзор
Документация
Войти
/
GeekNerd
/
ServerModelingProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Assets/Scripts/App/ProjectSettingsDraftService.cs
96 строк
4 KB
Gorney-Alex
Init
30 май 2026, 19:05
30 май 2026, 19:05
3cdcc49
Код
Авторство
О чём код?
using System; using DataClasses; using DataClasses.Algorithm; using DataClasses.Project; using UnityEngine; namespace App { public class ProjectSettingsDraftService { private const string ServerSettingsFileName = "server_settings"; private const string GeneratorsSettingsFileName = "generators_settings"; private const string RoomBuildingSettingsFileName = "room_building_settings"; private const string GaSettingsFileName = "ga_settings"; private const string ProjectSettingsFileName = "project_settings"; private readonly ProjectService _projectService; private RackData _appliedServerData; private RoomBuildingSettings _appliedRoomBuildingSettings; private GeneratorsData _appliedGeneratorsData; private GaSettings _appliedGaSettings; public bool HasAppliedServerData => _appliedServerData != null; public ProjectSettingsDraftService( ProjectService projectService, RackData defaultServerData, RoomBuildingSettings defaultRoomBuildingSettings, GeneratorsData defaultGeneratorsData, GaSettings defaultGaSettings) { _projectService = projectService; _appliedServerData = defaultServerData; _appliedRoomBuildingSettings = defaultRoomBuildingSettings; _appliedGeneratorsData = defaultGeneratorsData; _appliedGaSettings = defaultGaSettings; } public void UpdateServerData(RackData data) { if (data == null) Debug.LogWarning("[ProjectService] UpdateServerData: data is null."); _appliedServerData = data; } public void UpdateGeneratorsData(GeneratorsData data) { if (data == null) Debug.LogWarning("[ProjectService] UpdateGeneratorsData: data is null."); _appliedGeneratorsData = data; } public void UpdateRoomBuildingSettings(RoomBuildingSettings data) { if (data == null) Debug.LogWarning("[ProjectService] UpdateRoomBuildingSettings: data is null."); _appliedRoomBuildingSettings = data; } public void UpdateGaSettings(GaSettings data) { if (data == null) Debug.LogWarning("[ProjectService] UpdateGaSettings: data is null."); _appliedGaSettings = data; } public bool SaveAppliedSettings() { RackData serverData = _appliedServerData; if (serverData == null) { Debug.LogWarning("[ProjectSettingsDraftService] Server settings are missing."); return false; } RoomBuildingSettings roomSettings = _appliedRoomBuildingSettings ?? new RoomBuildingSettings(); GaSettings gaSettings = _appliedGaSettings ?? new GaSettings(); var snapshot = new ProjectSettingsSnapshot { AppliedAt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), ServerSettings = serverData, RoomBuildingSettings = roomSettings, GaSettings = gaSettings }; _projectService.SaveData(serverData, ServerSettingsFileName); _projectService.SaveData(_appliedGeneratorsData, GeneratorsSettingsFileName); _projectService.SaveData(roomSettings, RoomBuildingSettingsFileName); _projectService.SaveData(gaSettings, GaSettingsFileName); _projectService.SaveData(snapshot, ProjectSettingsFileName); return true; } } }