SaveFacePane.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using UnityEngine;
  2. namespace COM3D2.MeidoPhotoStudio.Plugin
  3. {
  4. internal class SaveFacePane : BasePane
  5. {
  6. private readonly MeidoManager meidoManager;
  7. private readonly ComboBox categoryComboBox;
  8. private readonly TextField faceNameTextField;
  9. private readonly Button saveFaceButton;
  10. private string categoryHeader;
  11. private string nameHeader;
  12. public SaveFacePane(MeidoManager meidoManager)
  13. {
  14. Constants.CustomFaceChange += (s, a) =>
  15. {
  16. categoryComboBox.SetDropdownItems(Constants.CustomFaceGroupList.ToArray());
  17. };
  18. this.meidoManager = meidoManager;
  19. categoryHeader = Translation.Get("faceSave", "categoryHeader");
  20. nameHeader = Translation.Get("faceSave", "nameHeader");
  21. saveFaceButton = new Button(Translation.Get("faceSave", "saveButton"));
  22. saveFaceButton.ControlEvent += (s, a) => SaveFace();
  23. categoryComboBox = new ComboBox(Constants.CustomFaceGroupList.ToArray());
  24. faceNameTextField = new TextField();
  25. }
  26. protected override void ReloadTranslation()
  27. {
  28. categoryHeader = Translation.Get("faceSave", "saveButton");
  29. nameHeader = Translation.Get("faceSave", "nameHeader");
  30. saveFaceButton.Label = Translation.Get("faceSave", "saveButton");
  31. }
  32. public override void Draw()
  33. {
  34. GUI.enabled = meidoManager.HasActiveMeido;
  35. MiscGUI.Header(categoryHeader);
  36. categoryComboBox.Draw(GUILayout.Width(165f));
  37. MiscGUI.Header(nameHeader);
  38. GUILayout.BeginHorizontal();
  39. faceNameTextField.Draw(GUILayout.Width(160f));
  40. saveFaceButton.Draw(GUILayout.ExpandWidth(false));
  41. GUILayout.EndHorizontal();
  42. GUI.enabled = true;
  43. }
  44. private void SaveFace()
  45. {
  46. if (!meidoManager.HasActiveMeido) return;
  47. Meido meido = meidoManager.ActiveMeido;
  48. Constants.AddFacePreset(meido.SerializeFace(), faceNameTextField.Value, categoryComboBox.Value);
  49. faceNameTextField.Value = string.Empty;
  50. }
  51. }
  52. }