Files
Hasebe/Assets/Code/Infrastructure/Volume/VolumeService.cs
T
2026-09-20 15:26:03 +03:00

32 lines
934 B
C#

using System.Collections.Generic;
using Cysharp.Threading.Tasks;
namespace Code.Infrastructure.Volume
{
public interface IVolumeService
{
UniTask LoadVolume(VolumeId volumeId);
void RemoveVolume(VolumeId volumeId);
}
public class VolumeService : IVolumeService
{
private readonly Dictionary<VolumeId, UnityEngine.Rendering.Volume> _loadedVolumes = new();
private readonly IVolumeFactory _factory;
public VolumeService(IVolumeFactory factory)
{
_factory = factory;
}
public async UniTask LoadVolume(VolumeId volumeId)
{
var volume = await _factory.LoadVolume(volumeId);
_loadedVolumes.Add(volumeId, volume);
}
public void RemoveVolume(VolumeId volumeId)
{
_factory.ReleaseVolume(_loadedVolumes[volumeId]);
_loadedVolumes.Remove(volumeId);
}
}
}