scene fix

This commit is contained in:
Savya Bikram Shah
2026-05-29 15:38:59 +05:45
parent b4d10f62cb
commit 6c14eaaacf
3 changed files with 13 additions and 8 deletions

View File

@@ -24,6 +24,7 @@ public class ColorbookFlowController : IAsyncStartable, IDisposable
private IDisposable _selectedSub;
private IDisposable _returnToMainMenuSubscription;
private bool _navigatingToGameplay;
public ColorbookFlowController(
IDrawingCatalogController drawingCatalog,
@@ -37,6 +38,7 @@ public class ColorbookFlowController : IAsyncStartable, IDisposable
_progression = progression;
_scenes = scenes;
_bus = bus;
_selectedSub = _bus.Subscribe<DrawingSelectedSignal>(OnDrawingSelected);
}
public async UniTask StartAsync(CancellationToken cancellation = new CancellationToken())
@@ -44,8 +46,7 @@ public class ColorbookFlowController : IAsyncStartable, IDisposable
_returnToMainMenuSubscription = _bus.Subscribe<ReturnToMainMenuSignal>(OnReturnToMainMenu);
_loadingScreen.SetProgress(1f);
await _drawingCatalog.InitializeAsync(cancellation);
_selectedSub = _bus.Subscribe<DrawingSelectedSignal>(OnDrawingSelected);
_loadingScreen.Hide();
if (!_navigatingToGameplay) _loadingScreen.Hide();
}
private void OnReturnToMainMenu(ReturnToMainMenuSignal signal)
@@ -65,6 +66,7 @@ public class ColorbookFlowController : IAsyncStartable, IDisposable
private void OnDrawingSelected(DrawingSelectedSignal signal)
{
_navigatingToGameplay = true;
HandleSelectionAsync(signal.TemplateId).Forget();
}

View File

@@ -13,6 +13,7 @@ using Darkmatter.Core.Contracts.Services.Gallery;
using Darkmatter.Core.Contracts.Services.Scenes;
using Darkmatter.Core.Data.Dynamic.Features.Progression;
using Darkmatter.Core.Data.Signals.Features.Coloring;
using Darkmatter.Core.Data.Signals.Features.Drawing;
using Darkmatter.Core.Data.Signals.Features.ShapeBuilder;
using Darkmatter.Core.Enums.Features.Progression;
using Darkmatter.Core.Enums.Services.Scenes;
@@ -109,8 +110,8 @@ namespace Darkmatter.Features.GameplayFlow.Systems
_loadingScreen.Show();
_shapeBuilder.Clear();
_coloring.Clear();
await _scenes.LoadSceneAsync(GameScene.Colorbook, progress: null, cancellationToken: ct);
await _scenes.UnloadSceneAsync(GameScene.Gameplay, progress: null, cancellationToken: ct);
await _scenes.LoadSceneAsync(nameof(GameScene.Colorbook), progress: null, cancellationToken: ct);
await _scenes.UnloadSceneAsync(nameof(GameScene.Gameplay), progress: null, cancellationToken: ct);
}
public async UniTask SaveAsync(CancellationToken ct)
@@ -131,15 +132,17 @@ namespace Darkmatter.Features.GameplayFlow.Systems
_loadingScreen.Show();
_shapeBuilder.Clear();
_coloring.Clear();
await _scenes.LoadSceneAsync(GameScene.Colorbook, progress: null, cancellationToken: default);
await _scenes.UnloadSceneAsync(GameScene.Gameplay, progress: null, cancellationToken: default);
await _scenes.LoadSceneAsync(nameof(GameScene.Colorbook), progress: null, cancellationToken: default);
await _scenes.UnloadSceneAsync(nameof(GameScene.Gameplay), progress: null, cancellationToken: default);
return;
}
await _progression.SetLastOpenedAsync(nextId);
_loadingScreen.Show();
_shapeBuilder.Clear();
_coloring.Clear();
await _scenes.LoadSceneAsync(GameScene.Gameplay, progress: null, cancellationToken: default);
await _scenes.LoadSceneAsync(nameof(GameScene.Colorbook), progress: null, cancellationToken: default);
await _scenes.UnloadSceneAsync(nameof(GameScene.Gameplay), progress: null, cancellationToken: default);
_bus.Publish(new DrawingSelectedSignal(nextId));
}
public void OnApplicationPaused()