using MareSynchronos.API.Data.Enum; using MareSynchronos.Mediator; using MareSynchronos.Models; using MareSynchronos.Utils; using Microsoft.Extensions.Logging; namespace MareSynchronos.Factories; public class GameObjectHandlerFactory { private readonly ILoggerFactory _loggerFactory; private readonly MareMediator _mediator; private readonly PerformanceCollector _performanceCollector; private readonly DalamudUtil _dalamudUtil; public GameObjectHandlerFactory(ILoggerFactory loggerFactory, MareMediator mediator, PerformanceCollector performanceCollector, DalamudUtil dalamudUtil) { _loggerFactory = loggerFactory; _mediator = mediator; _performanceCollector = performanceCollector; _dalamudUtil = dalamudUtil; } public GameObjectHandler Create(ObjectKind objectKind, Func getAddress, bool isWatched) { return new GameObjectHandler(_loggerFactory.CreateLogger(), _performanceCollector, _mediator, _dalamudUtil, objectKind, getAddress, isWatched); } }