Files
SPT-Server-Build/Core/Controllers/PresetController.cs
T
2025-01-18 11:49:21 +00:00

58 lines
1.5 KiB
C#

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<PresetController> _logger;
protected PresetHelper _presetHelper;
protected DatabaseService _databaseService;
public PresetController(
ISptLogger<PresetController> logger,
PresetHelper presetHelper,
DatabaseService databaseService
)
{
_logger = logger;
_presetHelper = presetHelper;
_databaseService = databaseService;
}
/// <summary>
///
/// </summary>
public void Initialize()
{
var presets = _databaseService.GetGlobals().ItemPresets;
var reverse = new Dictionary<string, List<string>>();
foreach (var (key, preset) in presets)
{
if (key != preset.Id)
{
this._logger.Error(
$"Preset for template tpl: '{preset.Items[0].Template} {preset.Name}' has invalid key: ({key} != {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);
}
}