Remove() публичный статический Метод

public static Remove ( int index, AIBehaviour, list ) : AIBehaviour[],
index int
list AIBehaviour,
Результат AIBehaviour[],
Пример #1
0
        public void DrawLanguages()
        {
            GUILayout.BeginVertical();

            GUILayout.Label("Languages:");

            for (int i = 0; i < languagesTemp.Length; i++)
            {
                GUILayout.BeginHorizontal();

                languagesTemp[i].name = EditorGUILayout.TextField(languagesTemp[i].name);

                // TODO: Implements dub and sub in the Options.
                // languagesTemp[i].subtitle = GUILayout.Toggle(languagesTemp[i].subtitle, "Sub");
                // languagesTemp[i].dubbing = GUILayout.Toggle(languagesTemp[i].dubbing, "Dub");

                if (GUILayout.Button("X", GUILayout.Width(20)))
                {
                    languagesTemp = ArrayHelper.Remove(languagesTemp, languagesTemp[i]);
                }

                GUILayout.EndHorizontal();
            }

            EditorGUILayout.Separator();

            if (GUILayout.Button("Add language"))
            {
                languagesTemp = ArrayHelper.Add(languagesTemp, new Language(""));
            }

            GUILayout.EndVertical();
        }
Пример #2
0
 /// <summary>
 /// 조건 상수 삭제
 /// </summary>
 /// <param name="index"></param>
 public void RemoveNumberVariableCondition(int index)
 {
     this.numberVarKey     = ArrayHelper.Remove(index, this.numberVarKey);
     this.numberVarValue   = ArrayHelper.Remove(index, this.numberVarValue);
     this.numberCheckType  = ArrayHelper.Remove(index, this.numberCheckType);
     this.numberValueCheck = ArrayHelper.Remove(index, this.numberValueCheck);
 }
Пример #3
0
        public void DrawAttributes()
        {
            GUILayout.BeginVertical(GUILayout.Width(position.width / 2));
            GUILayout.Label("Attributes:");

            for (int i = 0; i < attributesTemp.Length; i++)
            {
                GUILayout.BeginHorizontal();
                attributesTemp[i] = EditorGUILayout.TextField(attributesTemp[i]);

                if (GUILayout.Button("X", GUILayout.Width(20)))
                {
                    attributesTemp = ArrayHelper.Remove(attributesTemp, attributesTemp[i]);
                }

                GUILayout.EndHorizontal();
            }

            EditorGUILayout.Separator();

            if (GUILayout.Button("Add attribute"))
            {
                attributesTemp = ArrayHelper.Add(attributesTemp, "");
            }

            GUILayout.EndVertical();
        }
Пример #4
0
 public override void RemoveData(int _index)
 {
     names = ArrayHelper.Remove(_index, names);
     if (names.Length == 0)
     {
         names = null;
     }
     soundClips = ArrayHelper.Remove <SoundClip>(_index, soundClips);
 }
Пример #5
0
 /// <summary>
 ///
 /// </summary>
 public override void RemoveData(int index)
 {
     this.names = ArrayHelper.Remove(index, this.names);
     if (this.names.Length == 0)
     {
         this.names = null;
     }
     this.soundClips = ArrayHelper.Remove(index, this.soundClips);
 }
Пример #6
0
    public override void RemoveData(int index)
    {
        names = ArrayHelper.Remove(index, names);
        if (names.Length == 0)
        {
            names = null;
        }

        effectClips = ArrayHelper.Remove(index, effectClips);
    }
Пример #7
0
 /// <summary>
 /// Clean the categories array removing unused categories.
 /// </summary>
 public void RemoveNotUsedCategory()
 {
     foreach (var category in categories)
     {
         var itemsWithCategory = Find.In(items).Where("category", category).Results;
         if (itemsWithCategory.Length == 0)
         {
             categories = ArrayHelper.Remove(categories, category);
         }
     }
 }
Пример #8
0
 /// <summary>
 /// Remove a state from states list if the quest has not initialized.
 /// </summary>
 /// <param name="questState">The state to remove.</param>
 public void RemoveState(QuestState questState)
 {
     if (Initialized)
     {
         return;
     }
     if (ArrayHelper.Contains(questStates, questState))
     {
         questStates = ArrayHelper.Remove(questStates, questState);
     }
 }
Пример #9
0
        public void OnGUI()
        {
            GUIHelper.Init();

            scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
            GUILayout.BeginVertical(GUIHelper.windowStyle);

            if (Controller.Instance.Options.characterList.Length <= 0)
            {
                EditorGUILayout.HelpBox("No characters yet.", MessageType.Info);
            }

            for (int i = 0; i < Controller.Instance.Options.characterList.Length; i++)
            {
                var name      = Controller.Instance.Options.characterList[i];
                var character = Character.Find(Controller.Instance.Characters, name);

                if (character.SetId())
                {
                    CharactersController.Save(character, Controller.Instance.Options.jsonPrettyPrint);
                }

                GUILayout.BeginHorizontal();
                GUILayout.BeginHorizontal();

                if (EditorGUIUtility.isProSkin)
                {
                    GUIHelper.labelStyle.normal.textColor = Color.white;
                }

                GUIHelper.labelStyle.alignment = TextAnchor.MiddleLeft;
                GUILayout.Label(name, GUIHelper.labelStyle);

                GUIHelper.labelStyle.alignment = TextAnchor.MiddleRight;
                if (Controller.Instance.Options.playerCharacterName == name)
                {
                    GUILayout.Label("<b>[Player]</b>", GUIHelper.labelStyle);
                }

                GUILayout.EndHorizontal();

                GUILayout.Space(10.0f);

                GUILayout.BeginHorizontal(GUILayout.MaxWidth(position.width / 2));

                if (GUILayout.Button("Edit", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    CharacterEditor.Edit(character);
                    Close();
                }

                if (GUILayout.Button("Edit Messages", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    TalkableMessagesEditor.OpenContextMenu(character);
                    Close();
                }

                if (GUILayout.Button("Delete", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    if (EditorUtility.DisplayDialog("Are you sure?", "Do you really want to delete?\nThis data will be lost forever.", "Yes", "No"))
                    {
                        var isPlayer = false;

                        if (name == Controller.Instance.Options.playerCharacterName)
                        {
                            isPlayer = true;
                        }

                        Controller.Instance.Characters.Remove(character);
                        Controller.Instance.Options.characterList = ArrayHelper.Remove(Controller.Instance.Options.characterList, name);

                        JSONHelper.Delete(name, "Diplomata/Characters/");

                        if (isPlayer && Controller.Instance.Options.characterList.Length > 0)
                        {
                            Controller.Instance.Options.playerCharacterName = Controller.Instance.Options.characterList[0];
                        }

                        OptionsController.Save(Controller.Instance.Options, Controller.Instance.Options.jsonPrettyPrint);
                        Controller.Instance.Characters = CharactersController.GetCharacters(Controller.Instance.Options);

                        CharacterEditor.Reset(name);
                        TalkableMessagesEditor.Reset(name);
                        ContextEditor.Reset(name);
                    }
                }

                GUILayout.EndHorizontal();
                GUILayout.EndHorizontal();

                if (i < Controller.Instance.Options.characterList.Length - 1)
                {
                    GUIHelper.Separator();
                }
            }

            EditorGUILayout.Separator();

            if (GUILayout.Button("Create", GUILayout.Height(GUIHelper.BUTTON_HEIGHT)))
            {
                CharacterEditor.OpenCreate();
                Close();
            }

            GUILayout.EndVertical();
            EditorGUILayout.EndScrollView();
        }
Пример #10
0
 public void RemoveLoop(int index)
 {
     this.CheckTime = ArrayHelper.Remove(index, this.CheckTime);
     this.SetTime   = ArrayHelper.Remove(index, this.SetTime);
 }
Пример #11
0
 /// <summary>
 /// 조건 변수 삭제.
 /// </summary>
 /// <param name="index"></param>
 public void RemoveVariableCondition(int index)
 {
     this.variableKey   = ArrayHelper.Remove(index, this.variableKey);
     this.variableValue = ArrayHelper.Remove(index, this.variableValue);
     this.checkType     = ArrayHelper.Remove(index, this.checkType);
 }
Пример #12
0
 /// <summary>
 /// 조건 변수 삭제.
 /// </summary>
 /// <param name="index"></param>
 public void RemoveVariableCondition(int index)
 {
     variableKey   = ArrayHelper.Remove(index, variableKey);
     variableValue = ArrayHelper.Remove(index, variableValue);
     checkType     = ArrayHelper.Remove(index, checkType);
 }
Пример #13
0
 /// <summary>
 /// RemoveNumberVariableSet - 상수 조건 삭제.
 /// </summary>
 /// <param name="index"></param>
 public void RemoveNumberVariableSet(int index)
 {
     this.setNumberVarKey   = ArrayHelper.Remove(index, this.setNumberVarKey);
     this.setNumberVarValue = ArrayHelper.Remove(index, this.setNumberVarValue);
     this.setNumberOperator = ArrayHelper.Remove(index, this.setNumberOperator);
 }
Пример #14
0
 public void RemoveLoop(int _index)
 {
     checkTime = ArrayHelper.Remove(_index, checkTime);
     setTime   = ArrayHelper.Remove(_index, setTime);
 }
Пример #15
0
        public void OnGUI()
        {
            GUIHelper.Init();

            scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
            GUILayout.BeginVertical(GUIHelper.windowStyle);

            if (Controller.Instance.GlobalFlags.flags.Length <= 0)
            {
                EditorGUILayout.HelpBox("No flags yet.", MessageType.Info);
            }

            var width = position.width - (2 * GUIHelper.MARGIN);

            for (var i = 0; i < Controller.Instance.GlobalFlags.flags.Length; i++)
            {
                var flag = Controller.Instance.GlobalFlags.flags[i];

                GUILayout.BeginHorizontal();
                GUILayout.BeginVertical();
                GUILayout.BeginHorizontal();

                GUIHelper.labelStyle.normal.textColor = GUIHelper.grey;
                GUIHelper.labelStyle.alignment        = TextAnchor.MiddleRight;
                GUILayout.Label("flag : " + i, GUIHelper.labelStyle);
                GUIHelper.labelStyle.normal.textColor = Color.black;

                GUILayout.EndHorizontal();

                GUILayout.Space(5.0f);

                GUILayout.BeginHorizontal();

                GUIHelper.textContent.text = flag.name;

                GUIHelper.textAreaStyle.padding = GUIHelper.padding;

                var height = GUIHelper.textAreaStyle.CalcHeight(GUIHelper.textContent, width);

                flag.name = EditorGUILayout.TextArea(flag.name, GUIHelper.textAreaStyle, GUILayout.ExpandWidth(true), GUILayout.Height(height));

                GUILayout.EndHorizontal();

                GUILayout.Space(5.0f);

                GUILayout.BeginHorizontal();

                string selected = flag.value.ToString();

                EditorGUI.BeginChangeCheck();

                selected = GUIHelper.Popup("Start in ", selected, booleanArray);

                if (EditorGUI.EndChangeCheck())
                {
                    if (selected == "True")
                    {
                        flag.value = true;
                    }
                    else
                    {
                        flag.value = false;
                    }

                    GlobalFlagsController.Save(Controller.Instance.GlobalFlags, Controller.Instance.Options.jsonPrettyPrint);
                }

                if (EditorGUIUtility.isProSkin)
                {
                    GUIHelper.labelStyle.normal.textColor = Color.white;
                }

                GUILayout.Space(10.0f);

                GUILayout.Label("Move: ", GUIHelper.labelStyle);

                if (GUILayout.Button("Up", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    if (i > 0)
                    {
                        Controller.Instance.GlobalFlags.flags = ArrayHelper.Swap(Controller.Instance.GlobalFlags.flags, i, i - 1);
                        GlobalFlagsController.Save(Controller.Instance.GlobalFlags, Controller.Instance.Options.jsonPrettyPrint);
                    }
                }

                if (GUILayout.Button("Down", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    if (i < Controller.Instance.GlobalFlags.flags.Length - 1)
                    {
                        Controller.Instance.GlobalFlags.flags = ArrayHelper.Swap(Controller.Instance.GlobalFlags.flags, i, i + 1);
                        GlobalFlagsController.Save(Controller.Instance.GlobalFlags, Controller.Instance.Options.jsonPrettyPrint);
                    }
                }

                GUILayout.Space(5.0f);

                if (GUILayout.Button("Add Next", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    Controller.Instance.GlobalFlags.flags = ArrayHelper.Add(Controller.Instance.GlobalFlags.flags, new Flag("", false));

                    for (int j = 1; j < (Controller.Instance.GlobalFlags.flags.Length - 1) - i; j++)
                    {
                        Controller.Instance.GlobalFlags.flags = ArrayHelper.Swap(Controller.Instance.GlobalFlags.flags, Controller.Instance.GlobalFlags.flags.Length - 1, i + j);
                    }

                    GlobalFlagsController.Save(Controller.Instance.GlobalFlags, Controller.Instance.Options.jsonPrettyPrint);
                }

                if (GUILayout.Button("Delete", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    if (EditorUtility.DisplayDialog("Are you sure?", "Do you really want to delete?\nThis data will be lost forever.", "Yes", "No"))
                    {
                        Controller.Instance.GlobalFlags.flags = ArrayHelper.Remove(Controller.Instance.GlobalFlags.flags, flag);
                        GlobalFlagsController.Save(Controller.Instance.GlobalFlags, Controller.Instance.Options.jsonPrettyPrint);
                    }
                }

                GUILayout.EndHorizontal();
                GUILayout.EndVertical();
                GUILayout.EndHorizontal();

                if (i < Controller.Instance.GlobalFlags.flags.Length - 1)
                {
                    GUIHelper.Separator();
                }
            }

            EditorGUILayout.Separator();

            if (GUILayout.Button("Create", GUILayout.Height(GUIHelper.BUTTON_HEIGHT)))
            {
                Controller.Instance.GlobalFlags.flags = ArrayHelper.Add(Controller.Instance.GlobalFlags.flags, new Flag("", false));
                GlobalFlagsController.Save(Controller.Instance.GlobalFlags, Controller.Instance.Options.jsonPrettyPrint);
            }

            GUILayout.EndVertical();
            EditorGUILayout.EndScrollView();

            GUIHelper.labelStyle.alignment = TextAnchor.MiddleLeft;
        }
Пример #16
0
        public void OnGUI()
        {
            GUIHelper.Init();
            scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
            GUILayout.BeginVertical(GUIHelper.windowStyle);

            // If empty show this message.
            if (Controller.Instance.Quests.Length <= 0)
            {
                EditorGUILayout.HelpBox("No quests yet.", MessageType.Info);
            }

            // Quests loop to list.
            foreach (Quest quest in Controller.Instance.Quests)
            {
                GUILayout.BeginHorizontal();

                // Set label properties.
                GUILayout.BeginHorizontal();
                if (EditorGUIUtility.isProSkin)
                {
                    GUIHelper.labelStyle.normal.textColor = Color.white;
                }
                GUIHelper.labelStyle.alignment = TextAnchor.MiddleLeft;
                var questName = DictionariesHelper.ContainsKey(quest.Name, Controller.Instance.Options.currentLanguage);
                if (questName != null)
                {
                    GUILayout.Label(questName.value, GUIHelper.labelStyle);
                }
                GUILayout.EndHorizontal();

                GUILayout.Space(10.0f);

                // Setting buttons.
                GUILayout.BeginHorizontal(GUILayout.MaxWidth(position.width / 2));
                if (GUILayout.Button("Edit", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    QuestEditor.Open(quest);
                }
                if (GUILayout.Button("Delete", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    if (EditorUtility.DisplayDialog("Are you sure?", "Do you really want to delete?\nThis data will be lost forever.", "Yes", "No"))
                    {
                        QuestEditor.Init(QuestEditor.State.Close);
                        Controller.Instance.Quests = ArrayHelper.Remove(Controller.Instance.Quests, quest);
                        QuestsController.Save(Controller.Instance.Quests, Controller.Instance.Options.jsonPrettyPrint);
                    }
                }
                GUILayout.EndHorizontal();
                GUILayout.EndHorizontal();
            }

            // Add button.
            if (GUILayout.Button("Add Quest", GUILayout.Height(GUIHelper.BUTTON_HEIGHT)))
            {
                var quest = new Quest();
                Controller.Instance.Quests = ArrayHelper.Add(Controller.Instance.Quests, quest);
                quest.questStates          = ArrayHelper.Add(quest.questStates, new QuestState());

                foreach (var language in Controller.Instance.Options.languagesList)
                {
                    quest.questStates[0].ShortDescription =
                        ArrayHelper.Add(quest.questStates[0].ShortDescription, new LanguageDictionary(language, "in progress."));
                    quest.questStates[0].LongDescription =
                        ArrayHelper.Add(quest.questStates[0].LongDescription, new LanguageDictionary(language, ""));
                }

                QuestsController.Save(Controller.Instance.Quests, Controller.Instance.Options.jsonPrettyPrint);
                QuestEditor.Open(quest);
            }

            GUILayout.EndVertical();
            EditorGUILayout.EndScrollView();
        }
Пример #17
0
        public void OnGUI()
        {
            GUIHelper.Init();

            scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
            GUILayout.BeginVertical(GUIHelper.windowStyle);

            if (Controller.Instance.Inventory.items.Length <= 0)
            {
                EditorGUILayout.HelpBox("No items yet.", MessageType.Info);
            }

            foreach (var item in Controller.Instance.Inventory.items)
            {
                if (item.SetId())
                {
                    InventoryController.Save(Controller.Instance.Inventory, Controller.Instance.Options.jsonPrettyPrint);
                }

                GUILayout.BeginHorizontal();
                GUILayout.BeginHorizontal();

                var name = DictionariesHelper.ContainsKey(item.name, Controller.Instance.Options.currentLanguage);

                if (EditorGUIUtility.isProSkin)
                {
                    GUIHelper.labelStyle.normal.textColor = Color.white;
                }

                GUIHelper.labelStyle.alignment = TextAnchor.MiddleLeft;
                if (name != null)
                {
                    var nameLabel = name.value;

                    if (!string.IsNullOrEmpty(item.Category))
                    {
                        nameLabel += string.Format("   [{0}]", item.Category);
                    }

                    GUILayout.Label(nameLabel, GUIHelper.labelStyle);
                }
                else
                {
                    GUILayout.Label("(!) Name not found (!)", GUIHelper.labelStyle);
                }

                GUIHelper.labelStyle.alignment        = TextAnchor.MiddleRight;
                GUIHelper.labelStyle.normal.textColor = GUIHelper.grey;
                GUILayout.Label("id: " + item.id, GUIHelper.labelStyle);

                GUIHelper.labelStyle.normal.textColor = Color.black;

                GUILayout.EndHorizontal();

                GUILayout.BeginHorizontal(GUILayout.MaxWidth(position.width / 2));

                if (GUILayout.Button("Edit", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    ItemEditor.OpenEdit(item);
                }

                if (GUILayout.Button("Delete", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    if (EditorUtility.DisplayDialog("Are you sure?", "Do you really want to delete?\nThis data will be lost forever.", "Yes", "No"))
                    {
                        ItemEditor.Init(ItemEditor.State.Close);
                        Controller.Instance.Inventory.items = ArrayHelper.Remove(Controller.Instance.Inventory.items, item);
                        Controller.Instance.Inventory.RemoveNotUsedCategory();
                        InventoryController.Save(Controller.Instance.Inventory, Controller.Instance.Options.jsonPrettyPrint);
                    }
                }

//        if (GUILayout.Button("Duplicate", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
//        {
//          Controller.Instance.Inventory.items = ArrayHelper.Add(Controller.Instance.Inventory.items, item.Copy(Controller.Instance.Inventory.GenerateId(), Controller.Instance.Options));
//          InventoryController.Save(Controller.Instance.Inventory, Controller.Instance.Options.jsonPrettyPrint);
//        }

                GUILayout.EndHorizontal();
                GUILayout.EndHorizontal();
            }

            EditorGUILayout.Separator();

            if (GUILayout.Button("Create", GUILayout.Height(GUIHelper.BUTTON_HEIGHT)))
            {
                Controller.Instance.Inventory.items = ArrayHelper.Add(Controller.Instance.Inventory.items, new Item(Controller.Instance.Inventory.GenerateId(), Controller.Instance.Options));
                InventoryController.Save(Controller.Instance.Inventory, Controller.Instance.Options.jsonPrettyPrint);
            }

            GUILayout.EndVertical();
            EditorGUILayout.EndScrollView();
        }
Пример #18
0
        public void OnGUI()
        {
            GUIHelper.Init();
            scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
            GUILayout.BeginVertical(GUIHelper.windowStyle);

            switch (state)
            {
            case State.None:
                Init(State.Close);
                break;

            case State.CreateEdit:
                // Set quest name.
                GUILayout.Label("Name: ");

                var questName = DictionariesHelper.ContainsKey(quest.Name, Controller.Instance.Options.currentLanguage);
                if (questName == null)
                {
                    quest.Name = ArrayHelper.Add(quest.Name, new LanguageDictionary(Controller.Instance.Options.currentLanguage, ""));
                }

                GUI.SetNextControlName("name");
                DictionariesHelper.ContainsKey(quest.Name, Controller.Instance.Options.currentLanguage).value =
                    EditorGUILayout.TextField(DictionariesHelper.ContainsKey(quest.Name, Controller.Instance.Options.currentLanguage).value);
                GUIHelper.Focus("name");
                EditorGUILayout.Space();

                EditorGUILayout.SelectableLabel(string.Format("Quest Unique ID: {0}", quest.GetId()));

                // Set label properties for quest states header.
                GUILayout.BeginHorizontal();
                if (EditorGUIUtility.isProSkin)
                {
                    GUIHelper.labelStyle.normal.textColor = Color.white;
                }
                GUIHelper.labelStyle.alignment = TextAnchor.MiddleLeft;
                GUILayout.Label("Quest states:", GUIHelper.labelStyle);
                GUILayout.EndHorizontal();
                GUIHelper.Separator();

                // Loop of the quest states.
                foreach (var questState in quest.questStates)
                {
                    GUILayout.BeginHorizontal();
                    var index = ArrayHelper.GetIndex(quest.questStates, questState);
                    GUILayout.Label(string.Format("{0}.", (index + 1).ToString()), GUILayout.Width(25));

                    // Descriptions.
                    EditorGUILayout.BeginVertical();



                    EditorGUILayout.LabelField("Short description:");

                    var questStateShortDescription = DictionariesHelper.ContainsKey(questState.ShortDescription, Controller.Instance.Options.currentLanguage);
                    if (questStateShortDescription == null)
                    {
                        questState.ShortDescription = ArrayHelper.Add(questState.ShortDescription, new LanguageDictionary(Controller.Instance.Options.currentLanguage, ""));
                    }

                    DictionariesHelper.ContainsKey(questState.ShortDescription, Controller.Instance.Options.currentLanguage).value =
                        EditorGUILayout.TextArea(DictionariesHelper
                                                 .ContainsKey(questState.ShortDescription, Controller.Instance.Options.currentLanguage).value);
                    EditorGUILayout.Space();

                    EditorGUILayout.LabelField("Long description:");

                    var questStateLongDescription = DictionariesHelper.ContainsKey(questState.LongDescription, Controller.Instance.Options.currentLanguage);
                    if (questStateLongDescription == null)
                    {
                        questState.LongDescription = ArrayHelper.Add(questState.LongDescription, new LanguageDictionary(Controller.Instance.Options.currentLanguage, ""));
                    }

                    DictionariesHelper.ContainsKey(questState.LongDescription, Controller.Instance.Options.currentLanguage).value =
                        EditorGUILayout.TextArea(DictionariesHelper
                                                 .ContainsKey(questState.LongDescription, Controller.Instance.Options.currentLanguage).value);
                    EditorGUILayout.Space();

                    EditorGUILayout.SelectableLabel(string.Format("Quest State Unique ID: {0}", questState.GetId()));

                    EditorGUILayout.BeginHorizontal();
                    if (GUILayout.Button("Up", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                    {
                        if (index > 0)
                        {
                            quest.questStates = ArrayHelper.Swap(quest.questStates, index, index - 1);
                            QuestsController.Save(Controller.Instance.Quests, Controller.Instance.Options.jsonPrettyPrint);
                        }
                    }

                    if (GUILayout.Button("Down", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                    {
                        if (index < quest.questStates.Length - 1)
                        {
                            quest.questStates = ArrayHelper.Swap(quest.questStates, index, index + 1);
                            QuestsController.Save(Controller.Instance.Quests, Controller.Instance.Options.jsonPrettyPrint);
                        }
                    }

                    if (GUILayout.Button("Delete", GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                    {
                        if (EditorUtility.DisplayDialog("Are you sure?",
                                                        "Do you really want to delete?\nThis data will be lost forever.", "Yes", "No"))
                        {
                            quest.questStates = ArrayHelper.Remove(quest.questStates, questState);
                            QuestsController.Save(Controller.Instance.Quests, Controller.Instance.Options.jsonPrettyPrint);
                        }
                    }

                    EditorGUILayout.EndHorizontal();
                    EditorGUILayout.EndVertical();
                    EditorGUILayout.EndHorizontal();
                    GUIHelper.Separator();
                }

                // Buttons.
                EditorGUILayout.Space();
                GUILayout.BeginHorizontal();
                if (GUILayout.Button("Add quest state", GUILayout.Width(position.width / 2),
                                     GUILayout.Height(GUIHelper.BUTTON_HEIGHT_SMALL)))
                {
                    quest.AddState("Short description.", "Long description.");
                    Save();
                }

                GUILayout.EndHorizontal();
                EditorGUILayout.Separator();
                GUILayout.BeginHorizontal();
                if (GUILayout.Button("Save and close", GUILayout.Height(GUIHelper.BUTTON_HEIGHT)))
                {
                    Save();
                    Close();
                }

                GUILayout.EndHorizontal();

                // Save and close on press Enter.
                if (focusedWindow != null)
                {
                    if (focusedWindow.ToString() == "(Diplomata.Editor.Windows.QuestEditor)")
                    {
                        if (Event.current.keyCode == KeyCode.Return)
                        {
                            Save();
                            Close();
                        }
                    }
                }

                break;
            }

            GUILayout.EndVertical();
            EditorGUILayout.EndScrollView();
        }
Пример #19
0
 /// <summary>
 /// RemoveVariableSet - 조건 삭제.
 /// </summary>
 /// <param name="index"></param>
 public void RemoveVariableSet(int index)
 {
     this.setVariableKey   = ArrayHelper.Remove(index, this.setVariableKey);
     this.setVariableValue = ArrayHelper.Remove(index, this.setVariableValue);
 }