30 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using MareSynchronos.API.Data.Enum;
 | |
| using MareSynchronos.PlayerData.Handlers;
 | |
| using MareSynchronos.Services;
 | |
| using MareSynchronos.Services.Mediator;
 | |
| using Microsoft.Extensions.Logging;
 | |
| 
 | |
| namespace MareSynchronos.PlayerData.Factories;
 | |
| 
 | |
| public class GameObjectHandlerFactory
 | |
| {
 | |
|     private readonly DalamudUtilService _dalamudUtilService;
 | |
|     private readonly ILoggerFactory _loggerFactory;
 | |
|     private readonly MareMediator _mareMediator;
 | |
|     private readonly PerformanceCollectorService _performanceCollectorService;
 | |
| 
 | |
|     public GameObjectHandlerFactory(ILoggerFactory loggerFactory, PerformanceCollectorService performanceCollectorService, MareMediator mareMediator,
 | |
|         DalamudUtilService dalamudUtilService)
 | |
|     {
 | |
|         _loggerFactory = loggerFactory;
 | |
|         _performanceCollectorService = performanceCollectorService;
 | |
|         _mareMediator = mareMediator;
 | |
|         _dalamudUtilService = dalamudUtilService;
 | |
|     }
 | |
| 
 | |
|     public async Task<GameObjectHandler> Create(ObjectKind objectKind, Func<nint> getAddressFunc, bool isWatched = false)
 | |
|     {
 | |
|         return await _dalamudUtilService.RunOnFrameworkThread(() => new GameObjectHandler(_loggerFactory.CreateLogger<GameObjectHandler>(),
 | |
|             _performanceCollectorService, _mareMediator, _dalamudUtilService, objectKind, getAddressFunc, isWatched)).ConfigureAwait(false);
 | |
|     }
 | |
| } | 
