EffectsPane.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace COM3D2.MeidoPhotoStudio.Plugin
  5. {
  6. internal class EffectsPane : BasePane
  7. {
  8. private Dictionary<string, BasePane> effectPanes = new Dictionary<string, BasePane>();
  9. private SelectionGrid effectToggles;
  10. private BasePane currentEffectPane;
  11. private List<string> effectList = new List<string>();
  12. public BasePane this[string effectUI]
  13. {
  14. private get => effectPanes[effectUI];
  15. set
  16. {
  17. effectPanes[effectUI] = value;
  18. effectList.Add(effectUI);
  19. effectToggles.SetItems(Translation.GetArray("effectsPane", effectList), 0);
  20. }
  21. }
  22. public EffectsPane()
  23. {
  24. effectToggles = new SelectionGrid(new[] { "dummy" });
  25. effectToggles.ControlEvent += (s, a) => SetEffectPane(effectList[effectToggles.SelectedItemIndex]);
  26. }
  27. protected override void ReloadTranslation()
  28. {
  29. effectToggles.SetItems(Translation.GetArray("effectsPane", effectList));
  30. }
  31. private void SetEffectPane(string effectUI)
  32. {
  33. currentEffectPane = effectPanes[effectUI];
  34. currentEffectPane.UpdatePane();
  35. }
  36. public override void UpdatePane()
  37. {
  38. currentEffectPane.UpdatePane();
  39. }
  40. public override void Draw()
  41. {
  42. MiscGUI.Header("Effects");
  43. MiscGUI.WhiteLine();
  44. effectToggles.Draw();
  45. currentEffectPane.Draw();
  46. }
  47. }
  48. }