UI Update, volumes
This commit is contained in:
1 parent
e2d0974b3c
commit
0f0c8bab43
100 files changed
+10862
-734
No files matched your search
@@ -0,0 +1,50 @@
|
||||
using System.Collections.Generic;
|
||||
using Code.Infrastructure.EventBus;
|
||||
|
||||
namespace Code.Infrastructure.Volume
|
||||
{
|
||||
public interface IVolumeService
|
||||
{
|
||||
void TryLoadVolume(VolumeId volumeId);
|
||||
void TryRemoveVolume(VolumeId volumeId);
|
||||
}
|
||||
|
||||
public class VolumeService : IVolumeLoadedHandle, IVolumeService
|
||||
{
|
||||
private Dictionary<VolumeId, UnityEngine.Rendering.Volume> _loadedVolumes = new();
|
||||
private EventBus.EventBus _eventBus;
|
||||
private IVolumeFactory _factory;
|
||||
|
||||
public VolumeService(EventBus.EventBus eventBus, IVolumeFactory factory)
|
||||
{
|
||||
_eventBus = eventBus;
|
||||
_eventBus.Subscribe(this);
|
||||
_factory = factory;
|
||||
}
|
||||
public void TryLoadVolume(VolumeId volumeId) => _factory.LoadVolume(volumeId);
|
||||
|
||||
public void VolumeLoaded(UnityEngine.Rendering.Volume volume, VolumeId volumeId)
|
||||
{
|
||||
_loadedVolumes.Add(volumeId, volume);
|
||||
|
||||
_eventBus.RaiseEvent<IVolumeLoaded>(ui=> ui.VolumeLoaded(volumeId));
|
||||
}
|
||||
|
||||
public void TryRemoveVolume(VolumeId volumeId)
|
||||
{
|
||||
// TODO Close it
|
||||
RemoveVolume(volumeId);
|
||||
}
|
||||
|
||||
private void RemoveVolume(VolumeId volumeId)
|
||||
{
|
||||
_factory.ReleaseVolume(_loadedVolumes[volumeId]);
|
||||
_loadedVolumes.Remove(volumeId);
|
||||
}
|
||||
}
|
||||
|
||||
public interface IVolumeLoaded : IGlobalSubscriber
|
||||
{
|
||||
void VolumeLoaded(VolumeId volumeId);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user