SavePosePane.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using System;
  2. using UnityEngine;
  3. namespace COM3D2.MeidoPhotoStudio.Plugin
  4. {
  5. internal class SavePosePane : BasePane
  6. {
  7. private MeidoManager meidoManager;
  8. private Button savePoseButton;
  9. private Button deletePoseButton;
  10. private TextField poseNameTextField;
  11. private ComboBox categoryComboBox;
  12. private string categoryHeader;
  13. private string nameHeader;
  14. public SavePosePane(MeidoManager meidoManager)
  15. {
  16. Constants.customPoseChange += (s, a) =>
  17. {
  18. this.categoryComboBox.SetDropdownItems(Constants.CustomPoseGroupList.ToArray());
  19. };
  20. this.meidoManager = meidoManager;
  21. this.categoryHeader = Translation.Get("posePane", "categoryHeader");
  22. this.nameHeader = Translation.Get("posePane", "nameHeader");
  23. this.savePoseButton = new Button(Translation.Get("posePane", "saveButton"));
  24. this.savePoseButton.ControlEvent += OnSavePose;
  25. this.deletePoseButton = new Button(Translation.Get("posePane", "deleteButton"));
  26. this.categoryComboBox = new ComboBox(Constants.CustomPoseGroupList.ToArray());
  27. this.poseNameTextField = new TextField();
  28. this.poseNameTextField.ControlEvent += OnSavePose;
  29. }
  30. protected override void ReloadTranslation()
  31. {
  32. this.categoryHeader = Translation.Get("posePane", "categoryHeader");
  33. this.nameHeader = Translation.Get("posePane", "nameHeader");
  34. this.savePoseButton.Label = Translation.Get("posePane", "saveButton");
  35. this.deletePoseButton.Label = Translation.Get("posePane", "deleteButton");
  36. }
  37. public override void Draw()
  38. {
  39. MiscGUI.Header(categoryHeader);
  40. this.categoryComboBox.Draw();
  41. MiscGUI.Header(nameHeader);
  42. GUILayout.BeginHorizontal();
  43. this.poseNameTextField.Draw();
  44. this.savePoseButton.Draw(GUILayout.ExpandWidth(false));
  45. GUILayout.EndHorizontal();
  46. }
  47. private void OnSavePose(object sender, EventArgs args)
  48. {
  49. byte[] anmBinary = this.meidoManager.ActiveMeido.SerializePose();
  50. Constants.AddPose(anmBinary, this.poseNameTextField.Value, this.categoryComboBox.Value);
  51. this.poseNameTextField.Value = String.Empty;
  52. }
  53. }
  54. }