private void ResetLocationSection()
 {
     locationFoldouts          = new AssetFoldouts();
     locationAssetList         = null;
     locationReorderableList   = null;
     locationListSelectedIndex = -1;
 }
        private void DrawAssets <T>(string label, List <T> assets, AssetFoldouts foldouts) where T : Asset
        {
            EditorWindowTools.StartIndentedSection();
            showStateFieldAsQuest = false;
            DrawAssetSpecificFoldoutProperties <T>(assets);
            T assetToRemove = null;

            for (int index = 0; index < assets.Count; index++)
            {
                T asset = assets[index];
                EditorGUILayout.BeginHorizontal();
                if (!foldouts.properties.ContainsKey(index))
                {
                    foldouts.properties.Add(index, false);
                }
                foldouts.properties[index] = EditorGUILayout.Foldout(foldouts.properties[index], GetAssetName(asset));
                if (GUILayout.Button(new GUIContent(" ", string.Format("Delete {0}.", GetAssetName(asset))), "OL Minus", GUILayout.Width(16)))
                {
                    assetToRemove = asset;
                }
                EditorGUILayout.EndHorizontal();
                if (foldouts.properties[index])
                {
                    DrawAsset <T>(asset, index, foldouts);
                }
            }
            if (assetToRemove != null)
            {
                if (EditorUtility.DisplayDialog(string.Format("Delete '{0}'?", GetAssetName(assetToRemove)), "Are you sure you want to delete this?", "Delete", "Cancel"))
                {
                    assets.Remove(assetToRemove);
                }
            }
            EditorWindowTools.EndIndentedSection();
        }
Beispiel #3
0
 private void ResetActorSection()
 {
     actorFoldouts          = new AssetFoldouts();
     actorAssetList         = null;
     actorReorderableList   = null;
     actorListSelectedIndex = -1;
 }
Beispiel #4
0
 public void DrawAssetSpecificPropertiesSecondPart(Asset asset, int index, AssetFoldouts foldouts)
 {
     if (asset is Item)
     {
         DrawItemSpecificPropertiesSecondPart(asset as Item, index, foldouts);
     }
 }
Beispiel #5
0
 private void DrawAssetSection <T>(string label, List <T> assets, AssetFoldouts foldouts, Action menuDelegate, Action syncDatabaseDelegate, ref string filter) where T : Asset, new()
 {
     DrawFilterMenuBar(label, menuDelegate, ref filter);
     if (syncDatabaseDelegate != null)
     {
         syncDatabaseDelegate();
     }
     DrawAssets <T>(label, assets, foldouts, filter);
 }
Beispiel #6
0
 private void ResetItemSection()
 {
     itemFoldouts  = new AssetFoldouts();
     itemAssetList = null;
     UpdateTreatItemsAsQuests(template.treatItemsAsQuests);
     needToBuildLanguageListFromItems = true;
     itemReorderableList   = null;
     itemListSelectedIndex = -1;
 }
Beispiel #7
0
 private void DrawAsset <T>(T asset, int index, AssetFoldouts foldouts) where T : Asset
 {
     EditorWindowTools.StartIndentedSection();
     EditorGUILayout.BeginVertical("button");
     DrawAssetSpecificPropertiesFirstPart(asset);
     DrawFieldsFoldout <T>(asset, index, foldouts);
     DrawAssetSpecificPropertiesSecondPart(asset, index, foldouts);
     EditorGUILayout.EndVertical();
     EditorWindowTools.EndIndentedSection();
 }
 private void DrawAssetSection <T>(string label, List <T> assets, AssetFoldouts foldouts, Action menuDelegate, Action syncDatabaseDelegate) where T : Asset, new()
 {
     EditorGUILayout.BeginHorizontal();
     EditorGUILayout.LabelField(label + "s", EditorStyles.boldLabel);
     GUILayout.FlexibleSpace();
     if (menuDelegate != null)
     {
         menuDelegate();
     }
     EditorGUILayout.EndHorizontal();
     if (syncDatabaseDelegate != null)
     {
         syncDatabaseDelegate();
     }
     DrawAssets <T>(label, assets, foldouts);
 }
Beispiel #9
0
 public void DrawFieldsFoldout <T>(T asset, int index, AssetFoldouts foldouts) where T : Asset
 {
     EditorGUI.BeginChangeCheck();
     if (!foldouts.fields.ContainsKey(index))
     {
         foldouts.fields.Add(index, false);
     }
     EditorGUILayout.BeginHorizontal();
     foldouts.fields[index] = EditorGUILayout.Foldout(foldouts.fields[index], "All Fields");
     if (foldouts.fields[index])
     {
         GUILayout.FlexibleSpace();
         if (GUILayout.Button(new GUIContent("Template", "Add any missing fields from the template."), EditorStyles.miniButton, GUILayout.Width(60)))
         {
             ApplyTemplate(asset.fields, GetTemplateFields(asset));
         }
         if (GUILayout.Button(new GUIContent("Copy", "Copy these fields to the clipboard."), EditorStyles.miniButton, GUILayout.Width(60)))
         {
             CopyFields(asset.fields);
         }
         EditorGUI.BeginDisabledGroup(clipboardFields == null);
         if (GUILayout.Button(new GUIContent("Paste", "Paste the clipboard into these fields."), EditorStyles.miniButton, GUILayout.Width(60)))
         {
             PasteFields(asset.fields);
         }
         EditorGUI.EndDisabledGroup();
     }
     if (GUILayout.Button(new GUIContent(" ", "Add new field."), "OL Plus", GUILayout.Width(16)))
     {
         asset.fields.Add(new Field());
         foldouts.fields[index] = true;
         SetDatabaseDirty("Add Field");
     }
     EditorGUILayout.EndHorizontal();
     if (foldouts.fields[index])
     {
         DrawFieldsSection(asset.fields);
     }
     if (EditorGUI.EndChangeCheck())
     {
         if (asset is Item)
         {
             BuildLanguageListFromFields(asset.fields);
         }
     }
 }
 private void DrawVariable(Variable asset, int index, AssetFoldouts foldouts)
 {
     EditorWindowTools.StartIndentedSection();
     EditorGUILayout.BeginVertical("button");
     List<Field> fields = asset.fields;
     for (int i = 0; i < fields.Count; i++) {
         EditorGUILayout.BeginHorizontal();
         if (IsTextAreaField(fields[i])) {
             DrawTextAreaFirstPart(fields[i], false);
             DrawTextAreaSecondPart(fields[i]);
         } else {
             DrawField(fields[i], false);
         }
         EditorGUILayout.EndHorizontal();
     }
     EditorGUILayout.EndVertical();
     EditorWindowTools.EndIndentedSection();
 }
Beispiel #11
0
        private void DrawVariable(Variable asset, int index, AssetFoldouts foldouts)
        {
            EditorWindowTools.StartIndentedSection();
            EditorGUILayout.BeginVertical("button");
            List <Field> fields = asset.fields;

            for (int i = 0; i < fields.Count; i++)
            {
                EditorGUILayout.BeginHorizontal();
                if (IsTextAreaField(fields[i]))
                {
                    DrawTextAreaFirstPart(fields[i], false);
                    DrawTextAreaSecondPart(fields[i]);
                }
                else
                {
                    DrawField(fields[i], false);
                }
                EditorGUILayout.EndHorizontal();
            }
            EditorGUILayout.EndVertical();
            EditorWindowTools.EndIndentedSection();
        }
Beispiel #12
0
        private void DrawVariables()
        {
            List <Variable> assets   = database.variables;
            AssetFoldouts   foldouts = variableFoldouts;

            EditorWindowTools.StartIndentedSection();
            Variable assetToRemove = null;

            for (int index = 0; index < assets.Count; index++)
            {
                Variable asset = assets[index];
                EditorGUILayout.BeginHorizontal();
                if (!foldouts.properties.ContainsKey(index))
                {
                    foldouts.properties.Add(index, false);
                }
                foldouts.properties[index] = EditorGUILayout.Foldout(foldouts.properties[index], GetAssetName(asset));
                if (GUILayout.Button(new GUIContent(" ", string.Format("Delete {0}.", GetAssetName(asset))), "OL Minus", GUILayout.Width(16)))
                {
                    assetToRemove = asset;
                }
                EditorGUILayout.EndHorizontal();
                if (foldouts.properties[index])
                {
                    DrawVariable(asset, index, foldouts);
                }
            }
            if (assetToRemove != null)
            {
                if (EditorUtility.DisplayDialog(string.Format("Delete '{0}'?", GetAssetName(assetToRemove)), "Are you sure you want to delete this?", "Delete", "Cancel"))
                {
                    assets.Remove(assetToRemove);
                }
            }
            EditorWindowTools.EndIndentedSection();
        }
Beispiel #13
0
        private void DrawVariablesTraditional()
        {
            List <Variable> assets   = database.variables;
            AssetFoldouts   foldouts = variableFoldouts;

            EditorWindowTools.StartIndentedSection();
            Variable assetToRemove   = null;
            int      indexToMoveUp   = -1;
            int      indexToMoveDown = -1;

            for (int index = 0; index < assets.Count; index++)
            {
                Variable asset = assets[index];
                EditorGUILayout.BeginHorizontal();
                if (!foldouts.properties.ContainsKey(index))
                {
                    foldouts.properties.Add(index, false);
                }
                foldouts.properties[index] = EditorGUILayout.Foldout(foldouts.properties[index], GetAssetName(asset));
                EditorGUI.BeginDisabledGroup(index >= (assets.Count - 1));
                if (GUILayout.Button(new GUIContent("↓", "Move down"), GUILayout.Width(16)))
                {
                    indexToMoveDown = index;
                }
                EditorGUI.EndDisabledGroup();
                EditorGUI.BeginDisabledGroup(index == 0);
                if (GUILayout.Button(new GUIContent("↑", "Move up"), GUILayout.Width(16)))
                {
                    indexToMoveUp = index;
                }
                EditorGUI.EndDisabledGroup();
                if (GUILayout.Button(new GUIContent(" ", string.Format("Delete {0}.", GetAssetName(asset))), "OL Minus", GUILayout.Width(16)))
                {
                    assetToRemove = asset;
                }
                EditorGUILayout.EndHorizontal();
                if (foldouts.properties[index])
                {
                    DrawVariable(asset, index, foldouts);
                }
            }
            if (indexToMoveDown >= 0)
            {
                Variable asset = assets[indexToMoveDown];
                assets.RemoveAt(indexToMoveDown);
                assets.Insert(indexToMoveDown + 1, asset);
                SetDatabaseDirty("Move Variable Down");
            }
            else if (indexToMoveUp >= 0)
            {
                Variable asset = assets[indexToMoveUp];
                assets.RemoveAt(indexToMoveUp);
                assets.Insert(indexToMoveUp - 1, asset);
                SetDatabaseDirty("Move Variable Up");
            }
            else if (assetToRemove != null)
            {
                if (EditorUtility.DisplayDialog(string.Format("Delete '{0}'?", GetAssetName(assetToRemove)), "Are you sure you want to delete this?", "Delete", "Cancel"))
                {
                    assets.Remove(assetToRemove);
                    SetDatabaseDirty("Delete Variable");
                }
            }
            EditorWindowTools.EndIndentedSection();
        }
 private void ResetVariableSection()
 {
     variableFoldouts = new AssetFoldouts();
 }
 //private void RemoveQuestEntryFields(Item item, int entryNumber) {
 //    item.fields.Remove(item.fields.Find(field => string.Equals(field.title, string.Format("Entry {0}", entryNumber))));
 //    string entryPrefix = string.Format("Entry {0} ", entryNumber);
 //    item.fields.RemoveAll(field => field.title.StartsWith(entryPrefix));
 //}
 private void DrawItemSpecificPropertiesSecondPart(Item item, int index, AssetFoldouts foldouts)
 {
 }
Beispiel #16
0
 private void DrawAssetSection <T>(string label, List <T> assets, AssetFoldouts foldouts, Action menuDelegate, ref string filter) where T : Asset, new()
 {
     DrawAssetSection <T>(label, assets, foldouts, menuDelegate, null, ref filter);
 }
        //private void RemoveQuestEntryFields(Item item, int entryNumber) {
        //	item.fields.Remove(item.fields.Find(field => string.Equals(field.title, string.Format("Entry {0}", entryNumber))));
        //	string entryPrefix = string.Format("Entry {0} ", entryNumber);
        //	item.fields.RemoveAll(field => field.title.StartsWith(entryPrefix));
        //}

        private void DrawItemSpecificPropertiesSecondPart(Item item, int index, AssetFoldouts foldouts)
        {
        }
Beispiel #18
0
        private void DrawAssets <T>(string label, List <T> assets, AssetFoldouts foldouts, string filter) where T : Asset
        {
            EditorWindowTools.StartIndentedSection();
            showStateFieldAsQuest = false;
            DrawAssetSpecificFoldoutProperties <T>(assets);
            T   assetToRemove   = null;
            int indexToMoveUp   = -1;
            int indexToMoveDown = -1;

            for (int index = 0; index < assets.Count; index++)
            {
                T asset = assets[index];
                if (!IsAssetInFilter(asset, filter))
                {
                    continue;
                }
                EditorGUILayout.BeginHorizontal();
                if (!foldouts.properties.ContainsKey(index))
                {
                    foldouts.properties.Add(index, false);
                }
                foldouts.properties[index] = EditorGUILayout.Foldout(foldouts.properties[index], GetAssetName(asset));
                EditorGUI.BeginDisabledGroup(index >= (assets.Count - 1));
                if (GUILayout.Button(new GUIContent("↓", "Move down"), GUILayout.Width(16)))
                {
                    indexToMoveDown = index;
                }
                EditorGUI.EndDisabledGroup();
                EditorGUI.BeginDisabledGroup(index == 0);
                if (GUILayout.Button(new GUIContent("↑", "Move up"), GUILayout.Width(16)))
                {
                    indexToMoveUp = index;
                }
                EditorGUI.EndDisabledGroup();
                if (GUILayout.Button(new GUIContent(" ", string.Format("Delete {0}.", GetAssetName(asset))), "OL Minus", GUILayout.Width(16)))
                {
                    assetToRemove = asset;
                }
                EditorGUILayout.EndHorizontal();
                if (foldouts.properties[index])
                {
                    DrawAsset <T>(asset, index, foldouts);
                }
            }
            if (indexToMoveDown >= 0)
            {
                T asset = assets[indexToMoveDown];
                assets.RemoveAt(indexToMoveDown);
                assets.Insert(indexToMoveDown + 1, asset);
                SetDatabaseDirty("Move Down");
            }
            else if (indexToMoveUp >= 0)
            {
                T asset = assets[indexToMoveUp];
                assets.RemoveAt(indexToMoveUp);
                assets.Insert(indexToMoveUp - 1, asset);
                SetDatabaseDirty("Move Up");
            }
            else if (assetToRemove != null)
            {
                if (EditorUtility.DisplayDialog(string.Format("Delete '{0}'?", GetAssetName(assetToRemove)), "Are you sure you want to delete this?", "Delete", "Cancel"))
                {
                    assets.Remove(assetToRemove);
                    SetDatabaseDirty("Delete");
                }
            }
            EditorWindowTools.EndIndentedSection();
        }
Beispiel #19
0
 private void ResetVariableSection()
 {
     variableFoldouts = new AssetFoldouts();
 }
 private void ResetActorSection()
 {
     actorFoldouts = new AssetFoldouts();
 }
 private void ResetActorSection()
 {
     actorFoldouts = new AssetFoldouts();
 }
Beispiel #22
0
 private void DrawItemSpecificPropertiesSecondPart(Item item, int index, AssetFoldouts foldouts)
 {
     // Doesn't do anything right now.
 }
 private void DrawAssetSection <T>(string label, List <T> assets, AssetFoldouts foldouts) where T : Asset, new()
 {
     DrawAssetSection <T>(label, assets, foldouts, null, null);
 }
Beispiel #24
0
 private void ResetLocationSection()
 {
     locationFoldouts = new AssetFoldouts();
 }
 private void ResetItemSection()
 {
     itemFoldouts = new AssetFoldouts();
     UpdateTreatItemsAsQuests(template.treatItemsAsQuests);
     needToBuildLanguageListFromItems = true;
 }
 private void ResetLocationSection()
 {
     locationFoldouts = new AssetFoldouts();
 }
 private void ResetItemSection()
 {
     itemFoldouts = new AssetFoldouts();
     UpdateTreatItemsAsQuests(template.treatItemsAsQuests);
     needToBuildLanguageListFromItems = true;
 }