예제 #1
0
 private void MessageBoxSaveButtonClickedEventListener(GUI_TextFieldButton obj)
 {
     if (GameManager.Instance.SaveCurrentSentences(obj))
     {
         DestroyButton(obj);
     }
 }
예제 #2
0
 private void SaveText(GUI_TextFieldButton button, GUI_TextInputField field)
 {
     if (button != null)
     {
         button.SetTexts(field.GetInputFieldText());
     }
 }
예제 #3
0
    private string SaveDataSentences(string fileContent, GUI_TextFieldButton currentButton, string sentences)
    {
        ExtensionFilter[] filter = new ExtensionFilter[]
        {
            new ExtensionFilter("Sentence", sentences),
        };

        var path = currentButton.SavePath;

        if (string.IsNullOrEmpty(path))
        {
            path = StandaloneFileBrowser.SaveFilePanel("Save Sentence", GetRootDirectory(), currentButton.GetButtonName(), filter);
        }
        else if (_showDialog)
        {
            var directory = Path.GetDirectoryName(path);
            path = StandaloneFileBrowser.SaveFilePanel("Save Sentence", directory, currentButton.GetButtonName(), filter);
        }

        if (!string.IsNullOrEmpty(path))
        {
            if (!Path.HasExtension(path) || Path.GetExtension(path) != "." + SENTENCES)
            {
                path += "." + SENTENCES;
            }
            File.WriteAllText(path, fileContent);
            _lastChoosenDirectory = Path.GetDirectoryName(path);
            currentButton.SetSavePath(path);
        }

        return(path);
    }
예제 #4
0
    private void SetCurrentSelectButton(GUI_TextFieldButton newFieldButton)
    {
        if (_currentSelectedButton != null && newFieldButton != _currentSelectedButton)
        {
            _currentSelectedButton.UnHover();
        }

        _currentSelectedButton = newFieldButton;
        _currentSelectedButton.Hover();
    }
예제 #5
0
    private void DestroyButton(GUI_TextFieldButton button)
    {
        var instance = _textPanelsInstances.Find(x => x.Button == button);

        if (instance != null)
        {
            _textPanelsInstances.Remove(instance);
            Destroy(instance.Button.gameObject);
        }

        var fieldButton = _textPanelsInstances[0];

        ButtonClickedListener(fieldButton.Button);
    }
예제 #6
0
    private void RemoveTextInstance(GUI_TextFieldButton arg0)
    {
        if (_currentSelectedButton == arg0)
        {
            SaveText(arg0, _field);
        }

        if (arg0.HasUnsavedChanges)
        {
            var messageBox = GameManager.Instance.CreateMessageBox();
            messageBox.Init($"Do you want to save the changes you made in \"{arg0.GetButtonName()}\"?");
            messageBox.OnSaveButtonClickedEvent.AddListener(() => MessageBoxSaveButtonClickedEventListener(arg0));
            messageBox.OnDontSaveButtonClickedEvent.AddListener(() => MessageBoxDontSaveButtonClickedEventListener(arg0));
        }
        else
        {
            MessageBoxDontSaveButtonClickedEventListener(arg0);
        }
    }
예제 #7
0
    public bool SaveSentences(GUI_TextFieldButton button = null)
    {
        var manager = GameManager.Instance;

        if (manager == null)
        {
            return(false);
        }

        var currentButton = button;

        if (currentButton == null)
        {
            currentButton = manager.NavigationText.GetCurrentSelectedButton();
        }

        //List<GUI_TextInputElement> list = manager.GetTextInputField().GetGuiTextElementsWithText();
        var resultSentences = "";

        foreach (var item in currentButton.GetText())
        {
            resultSentences += item;
        }

        Debug.Log(resultSentences);
        //var jsonString = JsonConvert.SerializeObject(currentButton.GetText());
        string correctData = JsonConvert.SerializeObject(currentButton.GetText(), new JsonSerializerSettings {
            NullValueHandling = NullValueHandling.Ignore
        });
        var path = SaveDataSentences(correctData, currentButton, SENTENCES);

        if (!string.IsNullOrEmpty(path))
        {
            var name = Path.GetFileNameWithoutExtension(path);
            currentButton.SetButtonName(name);
        }

        return(!string.IsNullOrEmpty(path));
    }
예제 #8
0
    private void SetCurrentInstanceText(GUI_TextFieldButton textfield)
    {
        SetCurrentSelectButton(textfield);
        _currentPageInstance.Button = textfield;
        if (_currentPageInstance.Page is GUI_TextInputField field)
        {
            List <string> text = textfield.GetText();
            CleanField(field);

            if (text.Count > 0)
            {
                field.AddNewTextToDefault(text[0]);
            }

            if (text.Count > 1)
            {
                for (int i = 1; i < text.Count; i++)
                {
                    field.AddNewSentence(text[i]);
                }
            }
        }
    }
예제 #9
0
 private void MessageBoxDontSaveButtonClickedEventListener(GUI_TextFieldButton obj)
 {
     DestroyButton(obj);
 }
예제 #10
0
 public bool SaveCurrentSentences(GUI_TextFieldButton sentenceButton)
 {
     return(_saveSentence.SaveSentences(sentenceButton));
 }