PropsPane.cs 3.5 KB

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