PropsPane.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using UnityEngine;
  2. namespace COM3D2.MeidoPhotoStudio.Plugin
  3. {
  4. class PropsPane : BasePane
  5. {
  6. private EnvironmentManager environmentManager;
  7. private PropManager propManager;
  8. private Dropdown otherDoguDropdown;
  9. private Dropdown doguDropdown;
  10. private Button addDoguButton;
  11. private Button addOtherDoguButton;
  12. private Button nextDoguButton;
  13. private Button prevDoguButton;
  14. private Button nextOtherDoguButton;
  15. private Button prevOtherDoguButton;
  16. public PropsPane(EnvironmentManager environmentManager)
  17. {
  18. this.environmentManager = environmentManager;
  19. this.propManager = this.environmentManager.PropManager;
  20. this.doguDropdown = new Dropdown(Translation.GetArray("props1Dropdown", Constants.DoguList));
  21. this.otherDoguDropdown = new Dropdown(Translation.GetArray("props2Dropdown", Constants.OtherDoguList));
  22. this.addOtherDoguButton = new Button("+");
  23. this.addOtherDoguButton.ControlEvent += (s, a) =>
  24. {
  25. string assetName = Constants.OtherDoguList[this.otherDoguDropdown.SelectedItemIndex];
  26. this.propManager.SpawnObject(assetName);
  27. };
  28. this.addDoguButton = new Button("+");
  29. this.addDoguButton.ControlEvent += (s, a) =>
  30. {
  31. string assetName = Constants.DoguList[this.doguDropdown.SelectedItemIndex];
  32. this.propManager.SpawnObject(assetName);
  33. };
  34. this.nextDoguButton = new Button(">");
  35. this.nextDoguButton.ControlEvent += (s, a) => this.doguDropdown.Step(1);
  36. this.prevDoguButton = new Button("<");
  37. this.prevDoguButton.ControlEvent += (s, a) => this.doguDropdown.Step(-1);
  38. this.nextOtherDoguButton = new Button(">");
  39. this.nextOtherDoguButton.ControlEvent += (s, a) => this.otherDoguDropdown.Step(1);
  40. this.prevOtherDoguButton = new Button("<");
  41. this.prevOtherDoguButton.ControlEvent += (s, a) => this.otherDoguDropdown.Step(-1);
  42. }
  43. protected override void ReloadTranslation()
  44. {
  45. this.doguDropdown.SetDropdownItems(Translation.GetArray("props1Dropdown", Constants.DoguList));
  46. this.otherDoguDropdown.SetDropdownItems(Translation.GetArray("props2Dropdown", Constants.OtherDoguList));
  47. }
  48. public override void Draw(params GUILayoutOption[] layoutOptions)
  49. {
  50. float arrowButtonSize = 30;
  51. GUILayoutOption[] arrowLayoutOptions = {
  52. GUILayout.Width(arrowButtonSize),
  53. GUILayout.Height(arrowButtonSize)
  54. };
  55. float dropdownButtonHeight = arrowButtonSize;
  56. float dropdownButtonWidth = 120f;
  57. GUILayoutOption[] dropdownLayoutOptions = new GUILayoutOption[] {
  58. GUILayout.Height(dropdownButtonHeight),
  59. GUILayout.Width(dropdownButtonWidth)
  60. };
  61. MiscGUI.Header("Props 1");
  62. GUILayout.BeginHorizontal();
  63. this.doguDropdown.Draw(dropdownLayoutOptions);
  64. this.prevDoguButton.Draw(arrowLayoutOptions);
  65. this.nextDoguButton.Draw(arrowLayoutOptions);
  66. this.addDoguButton.Draw(arrowLayoutOptions);
  67. GUILayout.EndHorizontal();
  68. MiscGUI.Header("Props 2");
  69. GUILayout.BeginHorizontal();
  70. this.otherDoguDropdown.Draw(dropdownLayoutOptions);
  71. this.prevOtherDoguButton.Draw(arrowLayoutOptions);
  72. this.nextOtherDoguButton.Draw(arrowLayoutOptions);
  73. this.addOtherDoguButton.Draw(arrowLayoutOptions);
  74. GUILayout.EndHorizontal();
  75. }
  76. }
  77. }