using Core.Annotations; using Core.Helpers; using Core.Models.Eft.Common; using Core.Models.Utils; using Core.Services; namespace Core.Controllers; [Injectable] public class PresetController { protected ISptLogger _logger; protected PresetHelper _presetHelper; protected DatabaseService _databaseService; public PresetController( ISptLogger logger, PresetHelper presetHelper, DatabaseService databaseService ) { _logger = logger; _presetHelper = presetHelper; _databaseService = databaseService; } /// /// /// public void Initialize() { var presets = _databaseService.GetGlobals().ItemPresets; var reverse = new Dictionary>(); foreach (var (id, preset) in presets) { if (id != preset.Id) { this._logger.Error( $"Preset for template tpl: '{preset.Items[0].Template} {preset.Name}' has invalid key: ({id} != {preset.Id}). Skipping" ); continue; } var tpl = preset.Items.FirstOrDefault()?.Template; if (!reverse.ContainsKey(tpl)) { reverse[tpl] = []; } reverse.TryGetValue(tpl, out var listToAddTo); listToAddTo?.Add(preset.Id); } this._presetHelper.HydratePresetStore(reverse); } }