Пример #1
0
        private void BuildTree(ref TreeViewItem parentTree, IQuest parentAsset)
        {
            this.treeItems.Add(parentAsset.GetInstanceID(), parentTree);

            IQuestEditor editor = this.databaseQuestsEditor.questsEditors[parentAsset.GetInstanceID()];

            parentTree.displayName = editor.GetInternalName();
            parentTree.icon        = editor.GetIcon();

            IQuest[] childrenAssets = parentAsset.children.ToArray();
            for (int i = 0; i < childrenAssets.Length; ++i)
            {
                IQuest childAsset = childrenAssets[i];
                if (childAsset == null)
                {
                    continue;
                }

                int          childAssetID = childAsset.GetInstanceID();
                int          depth        = parentTree.depth + 1;
                TreeViewItem childTree    = new TreeViewItem(childAssetID, depth, "Loading...");

                if (!this.databaseQuestsEditor.questsEditors.ContainsKey(childAssetID))
                {
                    Debug.LogError("No IQuest Editor found with instanceID: " + childAssetID);
                    continue;
                }

                this.BuildTree(ref childTree, childAsset);
                parentTree.AddChild(childTree);
            }
        }
Пример #2
0
        // INITIALIZERS: --------------------------------------------------------------------------

        public static void Open(IQuestEditor questEditor)
        {
            if (QuestConfigWindow.Instance != null)
            {
                QuestConfigWindow.Instance.Close();
            }

            Rect windowRect = new Rect(0, 0, WINDOW_W, WINDOW_H);

            QuestConfigWindow.Instance = EditorWindow.GetWindowWithRect <QuestConfigWindow>(
                windowRect, true, questEditor.GetInternalName(), true
                );

            QuestConfigWindow.Instance.questEditor = questEditor;
            QuestConfigWindow.Instance.Show();
        }