Skip to content

Commit 4d31485

Browse files
genegEvgenyGir
andauthored
feat: Scene Switching and preloader fix (MAPCO-8897) (#38)
* add min/max progress * Fix null ref bug (#36) * add app modes and preloader * fix * format code * format code * test Install .NET SDK * Revert "test Install .NET SDK" This reverts commit 03e2ae5. * reinstall r3 * change com.unity.dt.app-ui to 1.3.2 --------- Co-authored-by: Evgeny <evgenygi@rafael.co.il>
1 parent 87e9b0f commit 4d31485

24 files changed

+276
-42
lines changed

Assets/AddressableAssetsData/Windows.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Scenes/MainAppScene.unity

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -464,19 +464,19 @@ PrefabInstance:
464464
objectReference: {fileID: 0}
465465
- target: {fileID: 6106143874565215203, guid: c6e6123243f885144bd66074063abc03, type: 3}
466466
propertyPath: m_LocalRotation.y
467-
value: 7.230792e-18
467+
value: 7.260869e-18
468468
objectReference: {fileID: 0}
469469
- target: {fileID: 6106143874565215203, guid: c6e6123243f885144bd66074063abc03, type: 3}
470470
propertyPath: m_LocalRotation.z
471-
value: 9.279935e-19
471+
value: 9.02991e-19
472472
objectReference: {fileID: 0}
473473
- target: {fileID: 7591503138926735995, guid: c6e6123243f885144bd66074063abc03, type: 3}
474474
propertyPath: m_Name
475475
value: CesiumGeoreference
476476
objectReference: {fileID: 0}
477477
- target: {fileID: 8800104130311657506, guid: c6e6123243f885144bd66074063abc03, type: 3}
478478
propertyPath: _localToGlobeFixedMatrix.c0.z
479-
value: -9.934400909822153e-18
479+
value: -0.000000000000000010012625101410276
480480
objectReference: {fileID: 0}
481481
m_RemovedComponents: []
482482
m_RemovedGameObjects: []
File renamed without changes.

Assets/StreamingAssets/offline_config.json.meta renamed to Assets/StreamingAssets/DataManagement/offline_config.json.meta

File renamed without changes.

Assets/com.mapcolonies.core/BaseMvvmView.cs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using R3;
12
using UnityEngine;
23
using UnityEngine.UIElements;
34
using VContainer;
@@ -7,7 +8,17 @@ namespace com.mapcolonies.core
78
[RequireComponent(typeof(UIDocument))]
89
public abstract class BaseMvvmView<T> : MonoBehaviour where T : class
910
{
10-
private T _viewModel;
11+
protected CompositeDisposable Disposables
12+
{
13+
get;
14+
} = new CompositeDisposable();
15+
16+
protected T ViewModel
17+
{
18+
get;
19+
private set;
20+
}
21+
1122
[SerializeField] private UIDocument _uiDocument;
1223

1324
protected VisualElement RootVisualElement
@@ -20,15 +31,20 @@ protected VisualElement RootVisualElement
2031
public void Construct(T viewModel)
2132
{
2233
Debug.Log($"Construct view for {typeof(T)}");
23-
_viewModel = viewModel;
34+
ViewModel = viewModel;
2435
}
2536

2637
private void OnEnable()
2738
{
28-
if (_viewModel == null) return;
39+
if (ViewModel == null) return;
2940

3041
RootVisualElement = _uiDocument.rootVisualElement;
31-
RootVisualElement.dataSource = _viewModel;
42+
RootVisualElement.dataSource = ViewModel;
43+
}
44+
45+
private void OnDestroy()
46+
{
47+
Disposables.Dispose();
3248
}
3349
}
3450
}

Assets/com.mapcolonies.yahalom/AppMode.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using Cysharp.Threading.Tasks;
2+
using VContainer;
3+
4+
namespace com.mapcolonies.yahalom.AppMode
5+
{
6+
public class AppModeSwitcher
7+
{
8+
private IAppMode _currentAppMode;
9+
private IObjectResolver _resolver;
10+
11+
public void RegisterChildScope(IObjectResolver resolver)
12+
{
13+
_resolver = resolver;
14+
}
15+
16+
public async UniTask SetInitialMode<T>() where T : IAppMode
17+
{
18+
_currentAppMode = _resolver.Resolve<T>();
19+
await _currentAppMode.EnterMode();
20+
}
21+
22+
public async UniTask ChangeMode<T>() where T : IAppMode
23+
{
24+
if (_currentAppMode == (IAppMode)_resolver.Resolve<T>())
25+
return;
26+
27+
await _currentAppMode.ExitMode();
28+
_currentAppMode = _resolver.Resolve<T>();
29+
await _currentAppMode.EnterMode();
30+
}
31+
}
32+
}

Assets/com.mapcolonies.yahalom/AppMode/AppModeSwitcher.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using Cysharp.Threading.Tasks;
2+
3+
namespace com.mapcolonies.yahalom.AppMode
4+
{
5+
public interface IAppMode
6+
{
7+
UniTask EnterMode();
8+
UniTask ExitMode();
9+
}
10+
}

Assets/com.mapcolonies.yahalom/AppMode/IAppMode.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)