BG2WindowPane.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using UnityEngine;
  2. namespace MeidoPhotoStudio.Plugin;
  3. public class BG2WindowPane : BaseMainWindowPane
  4. {
  5. private static readonly string[] TabNames = { "props", "myRoom", "mod" };
  6. private readonly MeidoManager meidoManager;
  7. private readonly PropManager propManager;
  8. private readonly AttachPropPane attachPropPane;
  9. private readonly PropManagerPane propManagerPane;
  10. private readonly SelectionGrid propTabs;
  11. private BasePane currentPropsPane;
  12. public BG2WindowPane(MeidoManager meidoManager, PropManager propManager)
  13. {
  14. this.meidoManager = meidoManager;
  15. this.propManager = propManager;
  16. this.propManager.FromPropSelect += (_, _) =>
  17. propTabs.SelectedItemIndex = 0;
  18. // should be added in this order
  19. AddPane(new PropsPane(propManager));
  20. AddPane(new MyRoomPropsPane(propManager));
  21. AddPane(new ModPropsPane(propManager));
  22. attachPropPane = AddPane(new AttachPropPane(this.meidoManager, propManager));
  23. propManagerPane = AddPane(new PropManagerPane(propManager));
  24. propTabs = new(Translation.GetArray("propsPaneTabs", TabNames));
  25. propTabs.ControlEvent += (_, _) =>
  26. currentPropsPane = Panes[propTabs.SelectedItemIndex];
  27. currentPropsPane = Panes[0];
  28. }
  29. public override void Draw()
  30. {
  31. tabsPane.Draw();
  32. propTabs.Draw();
  33. MpsGui.WhiteLine();
  34. currentPropsPane.Draw();
  35. if (propTabs.SelectedItemIndex is not 0)
  36. return;
  37. propManagerPane.Draw();
  38. scrollPos = GUILayout.BeginScrollView(scrollPos);
  39. attachPropPane.Draw();
  40. GUILayout.EndScrollView();
  41. }
  42. public override void UpdatePanes()
  43. {
  44. if (ActiveWindow)
  45. base.UpdatePanes();
  46. }
  47. protected override void ReloadTranslation() =>
  48. propTabs.SetItems(Translation.GetArray("propsPaneTabs", TabNames));
  49. }