void SelectLanguageGUI()
    {
        GUILayout.BeginHorizontal();
        string[] mask = s_languageList.ToArray();
        m_currentSelectIndex = EditorGUILayout.Popup("当前语言:", m_currentSelectIndex, mask);
        if (mask.Length != 0 &&
            m_currentSelectIndex >= 0 &&
            m_currentSelectIndex < mask.Length)
        {
            LoadLanguage(mask[m_currentSelectIndex]);
        }
        else
        {
            Debug.Log("m_currentSelectIndex " + m_currentSelectIndex + " mask.Length " + mask.Length);
        }

        if (!string.IsNullOrEmpty(m_currentLanguage) && GUILayout.Button("加载上一次保存"))
        {
            DataManager.CleanCache();
            LanguageManager.IsInit = false;
            DataEditorWindow.Refresh();
            ConfigManager.CleanCache();

            LoadLanguage(m_currentLanguage);
            GUI.FocusControl("");
        }
        GUILayout.EndHorizontal();
    }
示例#2
0
 public static void ShowWindow()
 {
     win = EditorWindow.GetWindow <DataEditorWindow>();
     win.autoRepaintOnSceneChange = true;
     FocusWindowIfItsOpen <DataEditorWindow>();
     win.wantsMouseMove = true;
 }
示例#3
0
    //编辑角色数据
    private void EditorPlayerDataGUI()
    {
        if (m_curPlayerIndex == 0)
        {
            return;
        }

        var fieldData = new SingleField(FieldType.String, playerId, null);

        playerId = EditorUtilGUI.FieldGUI_Type(fieldData, "角色ID");

        fieldData  = new SingleField(FieldType.String, playerName, null);
        playerName = EditorUtilGUI.FieldGUI_Type(fieldData, "角色名");

        fieldData   = new SingleField(FieldType.String, startTalkId, null);
        startTalkId = EditorUtilGUI.FieldGUI_Type(fieldData, "初始对话ID");

        if (GUILayout.Button("保存"))
        {
            playerContent["player_id"]     = playerId;
            playerContent["player_name"]   = playerName;
            playerContent["start_talk_id"] = startTalkId;

            //设置字段类型
            m_curPlayerDatas.SetFieldType("player_id", FieldType.String);
            m_curPlayerDatas.SetFieldType("player_name", FieldType.String);
            m_curPlayerDatas.SetFieldType("start_talk_id", FieldType.String);

            m_curPlayerDatas.SetData(playerContent);
            DataEditorWindow.SaveData(m_playerCfgName, m_curPlayerDatas);
        }
    }
示例#4
0
 //创建对话
 private void CreateNewTalk(string _talkId)
 {
     m_talkContent = new SingleData();
     m_talkContent.Add("talk_id", _talkId);
     if (m_playerTalkDatas.TableKeys.Count == 0)
     {
         m_playerTalkDatas.TableKeys.Add("talk_id");
     }
     m_playerTalkDatas.AddData(m_talkContent);
     DataEditorWindow.SaveData(GetTalkConfigName(), m_playerTalkDatas);
     PrepareTalk();
 }
    void SaveData()
    {
        SaveEditorConfig();
        SaveConfig();

        if (m_currentLanguage != "None")
        {
            if (m_langeuageDataDict.ContainsKey(selectEditorModuleName))
            {
                SaveData(GetLanguageSavePath(m_currentLanguage, selectEditorModuleName), m_langeuageDataDict[selectEditorModuleName]);
            }
        }
        LanguageManager.IsInit = false;
        ConfigManager.CleanCache();
        DataEditorWindow.Refresh();
    }
示例#6
0
        /// <summary>
        /// Opens the <paramref name="file"/> in it's associated editor
        /// </summary>
        /// <summary xml:lang="ru">
        /// Открывает файл <paramref name="file"/> в ассоциированным с его типом редакторе
        /// </summary>
        /// <param name="file">File to be opened</param>
        /// <param name="file" xml:lang="ru">Файл который необходимо открыть</param>
        public static void OpenFile(GameFile file)
        {
            // TODO: создать объект с расширениями файлов
            switch (file.Extension.ToLower())
            {
            case ".gxt":
                GXTEditorWindow gxtEditorWindow = new GXTEditorWindow();
                gxtEditorWindow.OpenFile(new GXTFile(file.FullPath));
                gxtEditorWindow.Show();
                break;

            case ".fxt":
                FXTEditorWindow fxtEditorWindow = new FXTEditorWindow();
                fxtEditorWindow.OpenFile(new FXTFile(file.FullPath));
                fxtEditorWindow.Show();
                break;

            case ".ide":
                TestWindow testWindow = new TestWindow();
                testWindow.OpenFile(new IDEFile(file.FullPath));
                testWindow.Show();
                break;

            case ".ipl":
            case ".dat":
            case ".txt":
            case ".log":
            case ".cfg":
            case ".ini":
            case ".zon":
                DataEditorWindow dataEditorWindow = new DataEditorWindow();
                dataEditorWindow.OpenFile(new TextFile(file.FullPath));
                dataEditorWindow.Show();
                break;

            case ".img":
                FileBrowserWindow.GetInstance().OpenArchive((ArchiveFile)file);
                break;

            default:
                MessageBox.Show("Unsupported file type.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                break;
            }
        }
示例#7
0
    private void AddPlayerGUI()
    {
        //当前没有选中角色时时,才显示
        if (m_curPlayerIndex != 0)
        {
            return;
        }

        newPlayerisFold = EditorGUILayout.Foldout(newPlayerisFold, "创建角色");
        if (newPlayerisFold)
        {
            EditorGUI.indentLevel++;

            var fieldData = new SingleField(FieldType.String, playerId, null);
            playerId = EditorUtilGUI.FieldGUI_Type(fieldData, "角色ID");

            if (string.IsNullOrEmpty(playerId))
            {
                EditorGUILayout.LabelField("输入要添加的ID(角色id从101开始)=,,=");
            }
            else if (m_curPlayerDatas.ContainsKey(playerId))
            {
                EditorGUILayout.LabelField("重复啦=..=");
            }

            EditorGUILayout.Space();

            if (!m_curPlayerDatas.ContainsKey(playerId) && !string.IsNullOrEmpty(playerId))
            {
                EditorGUILayout.Space();
                if (GUILayout.Button("创建"))
                {
                    playerContent = new SingleData();
                    playerContent.Add("player_id", playerId);
                    m_curPlayerDatas.AddData(playerContent);
                    DataEditorWindow.SaveData(m_playerCfgName, m_curPlayerDatas);
                    PreparePlayerData();
                }
                EditorGUILayout.Space();
            }

            EditorGUILayout.Space();
        }
    }
    void SaveData()
    {
        SaveEditorConfig();
        SaveConfig();

        if (m_currentLanguage != "None")
        {
            if (m_langeuageDataDict.ContainsKey(selectEditorModuleName))
            {
                SaveData(GetLanguageSavePath(m_currentLanguage, selectEditorModuleName), m_langeuageDataDict[selectEditorModuleName]);
            }
            //foreach (var item in m_langeuageDataDict)
            //{
            //    SaveData(GetLanguageSavePath(m_currentLanguage, item.Key), item.Value);
            //}
        }
        LanguageManager.IsInit = false;
        DataEditorWindow.Refresh();
        ConfigManager.CleanCache();
    }
    void Import()
    {
        string key = GetKey(m_poemType, m_defaultLevel, m_index);

        SingleData dt = new SingleData();

        dt.Add("poemName", poemName);
        dt.Add("author", author);
        dt.Add("description", description);
        dt.Add("poemID", key);

        string contentTmp = "";

        for (int i = 0; i < poemContent.Count; i++)
        {
            contentTmp += poemContent[i];

            if (i != poemContent.Count - 1)
            {
                contentTmp += "|";
            }
        }

        dt.Add("content", contentTmp);


        data.AddData(dt);

        DataEditorWindow.SaveData(c_dataName, data);

        oldContent  = content;
        content     = "";
        poemName    = "";
        author      = "";
        description = "";
        poemContent.Clear();

        GUI.FocusControl("button");
        //GUI.FocusControl("inputContent");
    }
示例#10
0
    //对话编辑和跳转
    private void EditorTalkGUI()
    {
        if (string.IsNullOrEmpty(m_talkId))
        {
            return;
        }

        //todo 向上一个跳转  如果没上一个对话,则不显示跳转按钮
        //遍历所有对话,找到

        EditorGUILayout.Space();

        EditorTalkContentGUI();

        EditorGUILayout.Space();

        if (GUILayout.Button("保存对话"))
        {
            for (var i = 0; i < m_maxTalkContentCnt; ++i)
            {
                var pTalkKey = string.Format("p_talk_text_{0}", i + 1);
                m_talkContent[pTalkKey] = m_pTalkText[i];
                m_playerTalkDatas.SetFieldType(pTalkKey, FieldType.String);

                var nTalkKey = string.Format("n_talk_text_{0}", i + 1);
                m_talkContent[nTalkKey] = m_nTalkText[i];
                m_playerTalkDatas.SetFieldType(nTalkKey, FieldType.String);

                var nextTalkIdKey = string.Format("next_talk_id_{0}", i + 1);
                m_talkContent[nextTalkIdKey] = m_nextTalkId[i];
                m_playerTalkDatas.SetFieldType(nextTalkIdKey, FieldType.String);
            }

            m_playerTalkDatas.SetData(m_talkContent);
            DataEditorWindow.SaveData(GetTalkConfigName(), m_playerTalkDatas);
        }
    }
    static void SaveDataTable()
    {
        DataTable data = new DataTable();

        data.TableKeys.Add("GuideID");

        data.TableKeys.Add(GuideSystemBase.c_guideStartPoint);
        data.SetDefault(GuideSystemBase.c_guideStartPoint, "False");
        data.SetNote(GuideSystemBase.c_guideStartPoint, "引导开始点");
        data.SetFieldType(GuideSystemBase.c_guideStartPoint, FieldType.Bool, null);

        data.TableKeys.Add(GuideSystemBase.c_guideEndPoint);
        data.SetDefault(GuideSystemBase.c_guideEndPoint, "False");
        data.SetNote(GuideSystemBase.c_guideEndPoint, "引导结束点");
        data.SetFieldType(GuideSystemBase.c_guideEndPoint, FieldType.Bool, null);

        data.TableKeys.Add(GuideSystemBase.c_guideClosePoint);
        data.SetDefault(GuideSystemBase.c_guideEndPoint, "False");
        data.SetNote(GuideSystemBase.c_guideEndPoint, "引导关闭点");
        data.SetFieldType(GuideSystemBase.c_guideClosePoint, FieldType.Bool, null);

        data.TableKeys.Add(GuideSystemBase.c_PremiseKey);
        data.SetDefault(GuideSystemBase.c_PremiseKey, "Null");
        data.SetNote(GuideSystemBase.c_PremiseKey, "前提条件");
        data.SetFieldType(GuideSystemBase.c_PremiseKey, FieldType.String, null);

        data.TableKeys.Add(GuideSystemBase.c_NextGuideNameKey);
        data.SetDefault(GuideSystemBase.c_NextGuideNameKey, "Null");
        data.SetNote(GuideSystemBase.c_NextGuideNameKey, "下一步引导,如果为空,则为下一条记录");
        data.SetFieldType(GuideSystemBase.c_NextGuideNameKey, FieldType.String, null);

        data.TableKeys.Add(GuideSystemBase.c_ClickToNextKey);
        data.SetDefault(GuideSystemBase.c_ClickToNextKey, "False");
        data.SetNote(GuideSystemBase.c_ClickToNextKey, "是否接收点击去下一步引导");
        data.SetFieldType(GuideSystemBase.c_ClickToNextKey, FieldType.Bool, null);

        data.TableKeys.Add(GuideSystemBase.c_CallToNextKey);
        data.SetDefault(GuideSystemBase.c_CallToNextKey, "False");
        data.SetNote(GuideSystemBase.c_CallToNextKey, "是否接收调用去下一步引导");
        data.SetFieldType(GuideSystemBase.c_CallToNextKey, FieldType.Bool, null);

        data.TableKeys.Add(GuideSystemBase.c_ConditionToNextKey);
        data.SetDefault(GuideSystemBase.c_ConditionToNextKey, "False");
        data.SetNote(GuideSystemBase.c_ConditionToNextKey, "是否自动判断条件去下一步引导");
        data.SetFieldType(GuideSystemBase.c_ConditionToNextKey, FieldType.Bool, null);

        data.TableKeys.Add(GuideSystemBase.c_GuideWindowNameKey);
        data.SetDefault(GuideSystemBase.c_GuideWindowNameKey, "Null");
        data.SetNote(GuideSystemBase.c_GuideWindowNameKey, "引导的界面名字");
        data.SetFieldType(GuideSystemBase.c_GuideWindowNameKey, FieldType.String, null);

        data.TableKeys.Add(GuideSystemBase.c_GuideObjectNameKey);
        data.SetDefault(GuideSystemBase.c_GuideObjectNameKey, "Null");
        data.SetNote(GuideSystemBase.c_GuideObjectNameKey, "高亮显示的对象名字");
        data.SetFieldType(GuideSystemBase.c_GuideObjectNameKey, FieldType.StringArray, null);

        data.TableKeys.Add(GuideSystemBase.c_GuideItemNameKey);
        data.SetDefault(GuideSystemBase.c_GuideItemNameKey, "Null");
        data.SetNote(GuideSystemBase.c_GuideItemNameKey, "高亮的Item名字");
        data.SetFieldType(GuideSystemBase.c_GuideItemNameKey, FieldType.StringArray, null);

        data.TableKeys.Add(GuideSystemBase.c_TipContentKey);
        data.SetDefault(GuideSystemBase.c_TipContentKey, "Null");
        data.SetNote(GuideSystemBase.c_TipContentKey, "提示文本内容");
        data.SetFieldType(GuideSystemBase.c_TipContentKey, FieldType.String, null);

        data.TableKeys.Add(GuideSystemBase.c_TipContentPosKey);
        data.SetDefault(GuideSystemBase.c_TipContentPosKey, "0,0,0");
        data.SetNote(GuideSystemBase.c_TipContentPosKey, "提示文本位置");
        data.SetFieldType(GuideSystemBase.c_TipContentPosKey, FieldType.Vector3, null);

        data.TableKeys.Add(GuideSystemBase.c_MaskAlphaKey);
        data.SetDefault(GuideSystemBase.c_MaskAlphaKey, "0.75");
        data.SetNote(GuideSystemBase.c_MaskAlphaKey, "遮罩Alpha");
        data.SetFieldType(GuideSystemBase.c_MaskAlphaKey, FieldType.Float, null);

        DataEditorWindow.SaveData(GuideSystemBase.c_guideDataName, data);
    }
    void CreateModuleByConfigData()
    {
        m_newModelName = EditorGUILayout.TextField("模块名", m_newModelName);
        tableName      = EditorDrawGUIUtil.DrawPopup("表格名", tableName, configFileNames, (value) =>
        {
            if (string.IsNullOrEmpty(value))
            {
                return;
            }
            fieldNames.Clear();
            DataTable d            = DataManager.GetData(value);
            List <string> tempList = new List <string>();
            foreach (var item in d.TableKeys)
            {
                if (d.m_tableTypes.ContainsKey(item) && d.m_tableTypes[item] == FieldType.String)
                {
                    tempList.Add(item);
                }
            }
            fieldNames.AddRange(tempList);
        });
        fieldName = EditorDrawGUIUtil.DrawPopup("字段名", fieldName, fieldNames);
        if (m_newModelName != "" && !s_languageKeyDict.ContainsKey(m_newModelName) && m_currentLanguage != "None")
        {
            if (GUILayout.Button("新增模块"))
            {
                string modulePath = m_newModelName.Replace("_", "/");

                DataTable d = DataManager.GetData(tableName);

                s_languageKeyDict.Add(m_newModelName, d.TableIDs);

                DataTable data = new DataTable();
                data.TableKeys.Add(LanguageManager.c_mainKey);
                data.TableKeys.Add(LanguageManager.c_valueKey);
                data.SetDefault(LanguageManager.c_valueKey, "NoValue");

                foreach (var item in d.TableIDs)
                {
                    object obj = null;
                    if (d[item].ContainsKey(fieldName))
                    {
                        obj = d[item][fieldName];
                    }
                    else
                    {
                        obj = d.m_defaultValue[fieldName];
                    }
                    SingleData sd = new SingleData();
                    sd.Add(LanguageManager.c_mainKey, item);
                    sd.Add(LanguageManager.c_valueKey, obj.ToString());
                    data.AddData(sd);
                    d[item][fieldName] = modulePath + "/" + item;
                }

                d.m_fieldAssetTypes[fieldName] = DataFieldAssetType.LocalizedLanguage;

                m_langeuageDataDict.Add(m_newModelName, data);
                DataEditorWindow.SaveData(tableName, d);

                SaveData();

                AssetDatabase.Refresh();
            }
            EditorGUILayout.Space();
        }
        else
        {
            if (s_languageKeyDict.ContainsKey(m_newModelName))
            {
                EditorGUILayout.LabelField("模块名重复!", EditorGUIStyleData.WarnMessageLabel);
            }
        }
    }
    static void Init()
    {
        DataEditorWindow window = (DataEditorWindow)EditorWindow.GetWindow(typeof(DataEditorWindow));

        window.Show();
    }
 private void DeleteDatabase()
 {
     item.Parent.Repository.DeleteDatabase(item.DatabaseName);
     DataEditorWindow.Refresh();
     Selection.SetActiveObjectWithContext(null, null);
 }
示例#15
0
 /// <summary>
 /// This is called when data inside the database have been
 /// modified by the custom inspector
 /// </summary>
 public void HasBeenModified()
 {
     Parent.Repository.SaveDatabase(DatabaseName, Database);
     DataEditorWindow.Refresh();
 }