PropsPane.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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(
  46. Translation.GetArray("props1Dropdown", Constants.DoguList),
  47. this.doguDropdown.SelectedItemIndex
  48. );
  49. this.otherDoguDropdown.SetDropdownItems(
  50. Translation.GetArray("props2Dropdown", Constants.OtherDoguList),
  51. this.otherDoguDropdown.SelectedItemIndex
  52. );
  53. }
  54. public override void Draw(params GUILayoutOption[] layoutOptions)
  55. {
  56. float arrowButtonSize = 30;
  57. GUILayoutOption[] arrowLayoutOptions = {
  58. GUILayout.Width(arrowButtonSize),
  59. GUILayout.Height(arrowButtonSize)
  60. };
  61. float dropdownButtonHeight = arrowButtonSize;
  62. float dropdownButtonWidth = 120f;
  63. GUILayoutOption[] dropdownLayoutOptions = new GUILayoutOption[] {
  64. GUILayout.Height(dropdownButtonHeight),
  65. GUILayout.Width(dropdownButtonWidth)
  66. };
  67. MiscGUI.Header("Props 1");
  68. GUILayout.BeginHorizontal();
  69. this.doguDropdown.Draw(dropdownLayoutOptions);
  70. this.prevDoguButton.Draw(arrowLayoutOptions);
  71. this.nextDoguButton.Draw(arrowLayoutOptions);
  72. this.addDoguButton.Draw(arrowLayoutOptions);
  73. GUILayout.EndHorizontal();
  74. MiscGUI.Header("Props 2");
  75. GUILayout.BeginHorizontal();
  76. this.otherDoguDropdown.Draw(dropdownLayoutOptions);
  77. this.prevOtherDoguButton.Draw(arrowLayoutOptions);
  78. this.nextOtherDoguButton.Draw(arrowLayoutOptions);
  79. this.addOtherDoguButton.Draw(arrowLayoutOptions);
  80. GUILayout.EndHorizontal();
  81. }
  82. }
  83. }