/
puma
/
ppa
Обзор
Документация
Войти
/
puma
/
ppa
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Core/ProxySettings.cs
73 строки
2 KB
Margarita
new
29 май 2026, 17:05
29 май 2026, 17:05
cc969a9
Код
Авторство
О чём код?
using System; using System.IO; using System.Text.Json; public class ObserverSettings { private static readonly string ConfigFilePath = Path.Combine(AppContext.BaseDirectory, "observerconfig.json"); public bool EnableDamageLogging { get; set; } = false; public bool EnableDeathBeep { get; set; } = false; private static ObserverSettings? _current; // Синглтон для доступа к текущим настройкам наблюдателя public static ObserverSettings Current { get { if (_current == null) { LoadFromFile(); } return _current!; } } /// <summary> /// Загрузить настройки из файла конфига /// </summary> private static void LoadFromFile() { try { if (File.Exists(ConfigFilePath)) { string json = File.ReadAllText(ConfigFilePath); _current = JsonSerializer.Deserialize<ObserverSettings>(json); } } catch { } _current ??= new ObserverSettings(); } /// <summary> /// Подписать наблюдателей на юнита согласно текущим настройкам /// </summary> public void ApplyObservers(IUnit unit) { if (EnableDamageLogging) unit.Subscribe(new DamageLoggerObserver()); if (EnableDeathBeep) unit.Subscribe(new DeathBeepObserver()); } /// <summary> /// Сохранить настройки в файл конфига /// </summary> public void SaveToFile() { try { Directory.CreateDirectory(AppContext.BaseDirectory); string json = JsonSerializer.Serialize(this, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllText(ConfigFilePath, json); } catch { } } }