EncyclopediaController.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using Sirenix.OdinInspector;
  5. using KairoEngine.UI.InteractionHandler;
  6. [HideMonoScript]
  7. public class EncyclopediaController : MonoBehaviour, IClickHandler
  8. {
  9. [ShowInInspector, HorizontalGroup("IndexLine", 0.7f), LabelText("Index")] public int menuIndex;
  10. [ShowInInspector, HorizontalGroup("IndexLine", 0.3f), HideLabel] public int subMenuIndex;
  11. public EncyclopediaUi encyclopediaUi;
  12. public GameObject categoryButtomPrefab;
  13. public List<EncyclopediaCategory> categories = new List<EncyclopediaCategory>();
  14. [Button("Build Menu"), ButtonGroup("Buttons")]
  15. public void BuildMenu()
  16. {
  17. if(encyclopediaUi != null) encyclopediaUi.Populate();
  18. else Debug.LogError("Missing Encyclopedia UI in Encyclopedia Controller", this.gameObject);
  19. }
  20. public void OnClick(string id)
  21. {
  22. for (int i = 0; i < categories.Count; i++)
  23. {
  24. if(id == categories[i].id)
  25. {
  26. menuIndex = i;
  27. Navigate();
  28. return;
  29. }
  30. var articles = categories[i].GetArticles();
  31. for (int a = 0; a < articles.Count; a++)
  32. {
  33. if(id == articles[a].id)
  34. {
  35. menuIndex = i;
  36. subMenuIndex = a;
  37. Navigate();
  38. return;
  39. }
  40. }
  41. }
  42. }
  43. [Button("Navigate"), ButtonGroup("Buttons")]
  44. public void Navigate()
  45. {
  46. if(encyclopediaUi != null) encyclopediaUi.Navigate();
  47. }
  48. }