Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 

61 wiersze
1.3 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using CIG.Extensions;
  4. using Engine.DependencyTree;
  5. using SUISS.Core;
  6. using UnityEngine;
  7. using UnityEngine.UI;
  8. public abstract class QuestTabContentView : MonoBehaviour
  9. {
  10. protected void OnDestroy()
  11. {
  12. this.DeinitView();
  13. }
  14. public void InitView()
  15. {
  16. this.DeinitView();
  17. SingletonMonobehaviour<DependencyTree>.Instance.DependencyActiveChangedEvent += this.OnDependencyActiveChanged;
  18. this.RefreshQuests();
  19. this._scrollRect.normalizedPosition = Vector2.zero;
  20. this.InvokeNextFrame(delegate
  21. {
  22. this._scrollRect.normalizedPosition = Vector2.zero;
  23. });
  24. }
  25. public void DeinitView()
  26. {
  27. if (SingletonMonobehaviour<DependencyTree>.IsAvailable)
  28. {
  29. SingletonMonobehaviour<DependencyTree>.Instance.DependencyActiveChangedEvent -= this.OnDependencyActiveChanged;
  30. }
  31. this.OnDeinit();
  32. }
  33. protected bool HasQuest(Dependency dependency)
  34. {
  35. return this._quests != null && this._quests.Contains(dependency);
  36. }
  37. protected abstract void RefreshQuests();
  38. protected virtual void OnDeinit()
  39. {
  40. }
  41. private void OnDependencyActiveChanged(Dependency dependency, bool active)
  42. {
  43. if (this.HasQuest(dependency))
  44. {
  45. this.RefreshQuests();
  46. }
  47. }
  48. [SerializeField]
  49. private ScrollRect _scrollRect;
  50. protected List<Dependency> _quests = new List<Dependency>();
  51. }