using UnityEngine; namespace COM3D2.MeidoPhotoStudio.Plugin { internal class SaveHandPane : BasePane { private MeidoManager meidoManager; private ComboBox categoryComboBox; private TextField handNameTextField; private Button saveLeftHandButton; private Button saveRightHandButton; private string categoryHeader; private string nameHeader; public SaveHandPane(MeidoManager meidoManager) { Constants.customHandChange += (s, a) => { this.categoryComboBox.SetDropdownItems(Constants.CustomHandGroupList.ToArray()); }; this.meidoManager = meidoManager; this.categoryHeader = Translation.Get("handPane", "categoryHeader"); this.nameHeader = Translation.Get("handPane", "nameHeader"); this.saveLeftHandButton = new Button(Translation.Get("handPane", "saveLeftButton")); this.saveLeftHandButton.ControlEvent += (s, a) => SaveHand(right: false); this.saveRightHandButton = new Button(Translation.Get("handPane", "saveRightButton")); this.saveRightHandButton.ControlEvent += (s, a) => SaveHand(right: true); this.categoryComboBox = new ComboBox(Constants.CustomHandGroupList.ToArray()); this.handNameTextField = new TextField(); } protected override void ReloadTranslation() { this.categoryHeader = Translation.Get("handPane", "categoryHeader"); this.nameHeader = Translation.Get("handPane", "nameHeader"); this.saveLeftHandButton.Label = Translation.Get("handPane", "saveLeftButton"); this.saveRightHandButton.Label = Translation.Get("handPane", "saveRightButton"); } public override void Draw() { GUI.enabled = this.meidoManager.HasActiveMeido; MiscGUI.Header(categoryHeader); this.categoryComboBox.Draw(GUILayout.Width(165f)); MiscGUI.Header(nameHeader); this.handNameTextField.Draw(GUILayout.Width(165f)); GUILayout.BeginHorizontal(); this.saveRightHandButton.Draw(); this.saveLeftHandButton.Draw(); GUILayout.EndHorizontal(); GUI.enabled = true; } private void SaveHand(bool right) { byte[] handBinary = this.meidoManager.ActiveMeido.IKManager.SerializeHand(right); Constants.AddHand(handBinary, right, this.handNameTextField.Value, this.categoryComboBox.Value); this.handNameTextField.Value = string.Empty; } } }