Merge remote-tracking branch 'origin/work_branch' into savya
# Conflicts: # Assets/Darkmatter/Content/Fonts/static/Fredoka-Bold SDF.asset # Assets/Darkmatter/Content/Fonts/static/Fredoka-Medium SDF.asset # Assets/Darkmatter/Content/Fonts/static/Fredoka-SemiBold SDF.asset
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
using Darkmatter.App.LifetimeScopes;
|
||||
|
||||
public class ColorBookLifetimeScope : BaseLifetimeScope
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8bbdb0f5cdf25c34086f816c59836c9d
|
||||
@@ -11,4 +11,6 @@ public interface IDrawingCatalogController
|
||||
event Action ListChanged;
|
||||
UniTask InitializeAsync(CancellationToken ct);
|
||||
void OnTemplateSelected(string id);
|
||||
void PublishBackBtnClickedSignal();
|
||||
void PublishOpenArtBookSignal();
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Darkmatter.Core
|
||||
{
|
||||
public record struct BackBtnClickedSignal;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fdd1f5bd7186d6244b2311e9f5b18a95
|
||||
@@ -0,0 +1,6 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Darkmatter.Core
|
||||
{
|
||||
public record struct OpenArtBookSignal;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf8582ced90151445a9fa7b610f59ce9
|
||||
@@ -2,6 +2,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Darkmatter.Core;
|
||||
using Darkmatter.Core.Contracts.Features.DrawingCatalog;
|
||||
using Darkmatter.Core.Contracts.Features.Progression;
|
||||
using Darkmatter.Core.Data.Signals.Features.Drawing;
|
||||
@@ -40,6 +41,14 @@ public sealed class DrawingCatalogController : IDrawingCatalogController
|
||||
{
|
||||
_bus.Publish(new DrawingSelectedSignal(id));
|
||||
}
|
||||
public void PublishBackBtnClickedSignal()
|
||||
{
|
||||
_bus.Publish(new BackBtnClickedSignal());
|
||||
}
|
||||
public void PublishOpenArtBookSignal()
|
||||
{
|
||||
_bus.Publish(new OpenArtBookSignal());
|
||||
}
|
||||
|
||||
private void Refresh()
|
||||
{
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Darkmatter.Features.DrawingCatalog;
|
||||
|
||||
public class DrawingCatalogButton : MonoBehaviour
|
||||
namespace Darkmatter.Features.DrawingCatalog
|
||||
{
|
||||
public string Id { get; private set; }
|
||||
[SerializeField] private Image thumbnail;
|
||||
[SerializeField] private Button button;
|
||||
|
||||
public void Initialize(string id,Sprite thumbnailSprite, UnityEngine.Events.UnityAction onClick)
|
||||
public class DrawingCatalogButton : MonoBehaviour
|
||||
{
|
||||
Id = id;
|
||||
thumbnail.sprite = thumbnailSprite;
|
||||
button.onClick.AddListener(onClick);
|
||||
public string Id { get; private set; }
|
||||
[SerializeField] private Image thumbnail;
|
||||
[SerializeField] private Button button;
|
||||
|
||||
public void Initialize(string id, Sprite thumbnailSprite, UnityEngine.Events.UnityAction onClick)
|
||||
{
|
||||
Id = id;
|
||||
thumbnail.sprite = thumbnailSprite;
|
||||
button.onClick.AddListener(onClick);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,9 +26,22 @@ namespace Darkmatter.Features.DrawingCatalog
|
||||
public void Start()
|
||||
{
|
||||
_view.OnItemClicked += OnItemClicked;
|
||||
_view.OnBackClicked += OnBackBtnClicked;
|
||||
_view.OnArtBookClicked += OnArtBookBtnClicked;
|
||||
|
||||
_controller.ListChanged += OnListChanged;
|
||||
}
|
||||
|
||||
private void OnArtBookBtnClicked()
|
||||
{
|
||||
_controller.PublishOpenArtBookSignal();
|
||||
}
|
||||
|
||||
private void OnBackBtnClicked()
|
||||
{
|
||||
_controller.PublishBackBtnClickedSignal();
|
||||
}
|
||||
|
||||
private void OnItemClicked(string id) =>
|
||||
_controller.OnTemplateSelected(id);
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Darkmatter.Libs.Observer;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Pool;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Darkmatter.Features.DrawingCatalog
|
||||
{
|
||||
@@ -9,9 +11,21 @@ namespace Darkmatter.Features.DrawingCatalog
|
||||
{
|
||||
[SerializeField] private RectTransform content;
|
||||
[SerializeField] private DrawingCatalogButton buttonPrefab;
|
||||
|
||||
[Header("Buttons")]
|
||||
[SerializeField] private Button backButton;
|
||||
[SerializeField] private Button artBookButton;
|
||||
private readonly List<DrawingCatalogButton> _buttons = new();
|
||||
|
||||
public event Action<string> OnItemClicked;
|
||||
public event Action OnBackClicked;
|
||||
public event Action OnArtBookClicked;
|
||||
|
||||
public void Start()
|
||||
{
|
||||
backButton.onClick.AddListener(() => OnBackClicked?.Invoke());
|
||||
artBookButton.onClick.AddListener(() => OnArtBookClicked?.Invoke());
|
||||
}
|
||||
|
||||
public void SetItems(IReadOnlyList<CatalogItemVM> items)
|
||||
{
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
"GUID:b0214a6008ed146ff8f122a6a9c2f6cc",
|
||||
"GUID:68765d262e2128e4ab49c983f3411946",
|
||||
"GUID:80ecb87cae9c44d19824e70ea7229748",
|
||||
"GUID:f51ebe6a0ceec4240a699833d6309b23"
|
||||
"GUID:f51ebe6a0ceec4240a699833d6309b23",
|
||||
"GUID:b4c9f7fbf1e144933a1797dc208ece5f"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using System;
|
||||
using Darkmatter.Core.Data.Signals.Features.AppBoot;
|
||||
using Darkmatter.Libs.Observer;
|
||||
using UnityEngine;
|
||||
using VContainer.Unity;
|
||||
|
||||
@@ -6,16 +8,26 @@ namespace Darkmatter.Features.Mainmenu
|
||||
{
|
||||
public class MainMenuPresenter : IStartable, IDisposable
|
||||
{
|
||||
private readonly IEventBus _eventBus;
|
||||
private readonly MainMenuView _view;
|
||||
|
||||
public MainMenuPresenter(MainMenuView view)
|
||||
|
||||
|
||||
public MainMenuPresenter(MainMenuView view, IEventBus eventBus)
|
||||
{
|
||||
_view = view;
|
||||
_eventBus = eventBus;
|
||||
}
|
||||
|
||||
public void Start()
|
||||
{
|
||||
_view.OnPlayBtnClickedEvent += OnPlayBtnClicked;
|
||||
_eventBus.Subscribe<IntroCompletedSignal>(OnIntroComplete);
|
||||
}
|
||||
|
||||
private void OnIntroComplete(IntroCompletedSignal signal)
|
||||
{
|
||||
_view.PlayMascotIntro();
|
||||
}
|
||||
|
||||
private void OnPlayBtnClicked()
|
||||
|
||||
@@ -10,10 +10,8 @@ namespace Darkmatter.Features.Mainmenu
|
||||
public class MainMenuView : MonoBehaviour
|
||||
{
|
||||
[Header("UI Elements")]
|
||||
[SerializeField] private Button playBtn;
|
||||
[SerializeField] private ParticleSystem playBtnParticle;
|
||||
[SerializeField] private Animator playBtnAnimator;
|
||||
|
||||
//[SerializeField] private Button playBtn;
|
||||
[SerializeField] private PlayButtonView playBtn;
|
||||
[SerializeField] private SkeletonGraphic mascotSkeletonGraphic;
|
||||
|
||||
[Header("Mascot Animations")]
|
||||
@@ -28,8 +26,7 @@ namespace Darkmatter.Features.Mainmenu
|
||||
|
||||
private void Start()
|
||||
{
|
||||
playBtn.onClick.AddListener(OnPlayBtnClicked);
|
||||
PlayMascotIntro();
|
||||
playBtn.OnPlayBtnClickedEvent += () => OnPlayBtnClickedEvent?.Invoke();
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
@@ -39,7 +36,7 @@ namespace Darkmatter.Features.Mainmenu
|
||||
helloCts = null;
|
||||
}
|
||||
|
||||
private void PlayMascotIntro()
|
||||
public void PlayMascotIntro()
|
||||
{
|
||||
var state = mascotSkeletonGraphic.AnimationState;
|
||||
state.SetAnimation(0, jumpAnimation, false);
|
||||
@@ -59,19 +56,5 @@ namespace Darkmatter.Features.Mainmenu
|
||||
state.AddAnimation(0, idleAnimation, true, 0f);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnPlayBtnClicked()
|
||||
{
|
||||
playBtn.interactable = false;
|
||||
playBtnAnimator.enabled = false;
|
||||
PlayBtnSequenceAsync(this.GetCancellationTokenOnDestroy()).Forget();
|
||||
}
|
||||
|
||||
private async UniTaskVoid PlayBtnSequenceAsync(CancellationToken token)
|
||||
{
|
||||
playBtnParticle.Play();
|
||||
await UniTask.WaitUntil(() => !playBtnParticle.IsAlive(true), cancellationToken: token);
|
||||
OnPlayBtnClickedEvent?.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Darkmatter.Features.Mainmenu
|
||||
{
|
||||
public class PlayButtonView : MonoBehaviour
|
||||
{
|
||||
private Button playBtn;
|
||||
private Animator playBtnAnimator;
|
||||
[SerializeField] private ParticleSystem playBtnParticle;
|
||||
|
||||
public event Action OnPlayBtnClickedEvent;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
playBtnAnimator = GetComponent<Animator>();
|
||||
playBtn = GetComponent<Button>();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
playBtn.onClick.AddListener(OnPlayBtnClicked);
|
||||
}
|
||||
|
||||
private void OnPlayBtnClicked()
|
||||
{
|
||||
playBtn.interactable = false;
|
||||
playBtnAnimator.enabled = false;
|
||||
PlayBtnSequenceAsync(this.GetCancellationTokenOnDestroy()).Forget();
|
||||
}
|
||||
|
||||
private async UniTaskVoid PlayBtnSequenceAsync(CancellationToken token)
|
||||
{
|
||||
playBtnParticle.Play();
|
||||
await UniTask.WaitUntil(() => !playBtnParticle.IsAlive(true), cancellationToken: token);
|
||||
OnPlayBtnClickedEvent?.Invoke();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 26f12f86a29f25046a03d5f29e123beb
|
||||
Reference in New Issue
Block a user