Пример #1
0
 private void Copy(ActionFileData data)
 {
     int max = 0;
     for (int i = 0; i < m_DataList.DataList.Count; ++i)
     {
         if (m_DataList.DataList[i].ID > max)
         {
             max = m_DataList.DataList[i].ID;
         }
     }
     ++max;
     ActionFileData elem = new ActionFileData();
     elem.ID = max;
     elem.FileName = data.FileName;
     elem.MapResName = data.MapResName;
     elem.Duration = data.Duration;
     elem.FrameDatalist = data.FrameDatalist;
     m_DataList = ActionHelper.GetActionEditFileList();
     ActionHelper.SaveActionEditFileList(m_DataList, elem);
     ActionHelper.CombineActionEditFileList(m_DataList);
     Repaint();
 }
Пример #2
0
 public void OpenWindow()
 {
     m_DataList = ActionHelper.GetActionEditFileList();
     Repaint();
 }
 private void OnSyncFile()
 {
     var option = EditorUtility.DisplayDialog("警告!!!", "同步方案将覆盖本地数据", "确定", "取消");
     if (option)
     {
         m_FileDataList = ActionHelper.GetActionEditFileList();
         if (m_FileData != null)
         {
             ActionHelper.SaveActionEditFileList(m_FileDataList, m_FileData);
         }
         ActionHelper.SyncActionEditFileList(m_FileDataList);
     }
 }
 private void OnMergeFile()
 {
     m_FileDataList = ActionHelper.GetActionEditFileList();
     if (m_FileData != null)
     {
         ActionHelper.SaveActionEditFileList(m_FileDataList, m_FileData);
     }
     Dictionary<int, ActionFileData> conflictData;
     if (ActionHelper.CombineActionEditFileList(m_FileDataList, out conflictData))
     {
         Debug.LogWarning("<color=orange> Conflict Occurred !</color>");
         ConflictSolveWindow.Instance.OpenWindow(conflictData);
     }
     else
     {
         EditorUtility.DisplayDialog("合并成功", "合并成功", "确定");
     }
 }
    private void OnSave()
    {
        //Action Data
        if (m_FileData == null)
        {
            m_FileData = new ActionFileData();
        }
        m_FileData.ID = m_CurrentEditiongMapId;
        m_FileData.Duration = (double)m_fActionDuration;
        m_FileData.MapResName = m_CurrentMapName;
        m_FileData.FileName = m_CurrentActionName;
        //m_FileData.FrameDatalist = ActionHelper.ConvertActionFrameData(m_KeyFrameData);

        m_FileDataList = ActionHelper.GetActionEditFileList();
        ActionHelper.SaveActionEditFileList(m_FileDataList, m_FileData);
        ActionHelper.CombineActionEditFileList(m_FileDataList);
        EditorUtility.DisplayDialog("保存成功", "保存成功", "确定");
    }
 private void OnReplaceFile()
 {
     var option = EditorUtility.DisplayDialog("警告!!!", "取代方案将彻底覆盖本地数据", "确定", "取消");
     if (option)
     {
         m_FileDataList = ActionHelper.GetActionEditFileList();
         ActionHelper.ReplaceEditFileList(m_FileDataList);
     }
 }
Пример #7
0
 public static ActionFileDataArray GetActionEditFileList()
 {
     ActionFileDataArray m_FileDataList = new ActionFileDataArray();
     ResourceManager.DecodePersonalDataTemplate(GetActionFileDataPath(), ref m_FileDataList);
     return m_FileDataList;
 }
 private void Init()
 {
     // Check Game Root
     GameObject RootObj = GameObject.Find("ActionEditorRoot");
     m_ObjSceneRoot = GameObject.Find("SceneRoot");
     if (null == RootObj || null == m_ObjSceneRoot)
     {
         Debug.LogError("wrong scene");
     }
     // SetUp Window
     m_MainWnd.minSize = new Vector2(WINDOW_MIN_WIDTH, WINDOW_MIN_HIEGHT);
     m_MainWnd.maxSize = new Vector2(WINDOW_MAX_WIDTH, WINDOW_MAX_HIEGHT);
     titleStyle = new GUIStyle();
     titleStyle.fontSize = WINDOW_TITLE_FONTSIZE;
     titleStyle.normal.textColor = Color.white;
     m_KeyframeTexRed = ActionHelper.LoadEditorKeyframeTexRed();
     m_KeyframeTexBlue = ActionHelper.LoadEditorKeyframeTexBlue();
     m_FileDataList = ActionHelper.GetActionEditFileList();
     // Init Frame Names
     InitFrameName();
     m_szActionFrameName = new string[m_mapActionFrameNameDict.Count];
     foreach (KeyValuePair<EActionFrameType, string> pair in m_mapActionFrameNameDict)
     {
         if (m_szActionFrameName[(int)pair.Key] == null)
         {
             m_szActionFrameName[(int)pair.Key] = pair.Value;
         }
         else
         {
             Debuger.LogError(pair.Key.ToString() + "Has Same Values !!!!");
         }
     }
     // Init Data
     m_RuntimeParam = new AERuntimeParam();
 }
Пример #9
0
    public static void DeleteActionEditFile(ActionFileDataArray filedatalist, ActionFileData fileData)
    {
        if (null == filedatalist)
        {
            filedatalist = new ActionFileDataArray();
        }

        if (null == filedatalist.DataList)
        {
            filedatalist.DataList = new List<ActionFileData>();
        }

        for (int i = 0; i < filedatalist.DataList.Count; ++i)
        {
            if (filedatalist.DataList[i].ID == fileData.ID)
            {
                filedatalist.DataList[i] = fileData;
                filedatalist.DataList.RemoveAt(i);
                break;
            }
        }

        byte[] data = ThriftSerialize.Serialize(filedatalist);
        FileUtils.WriteByteFile(GetActionFileDataPath(), data);
    }
Пример #10
0
 public static void ReplaceEditFileList(ActionFileDataArray filedatalist)
 {
     filedatalist = ConfigManager.Instance.GetActionFileDataArray();
     if (filedatalist != null && filedatalist.DataList != null)
     {
         Debug.LogWarning("本地所有文件被掩盖");
         filedatalist.DataList.Sort(SortFileByID);
         byte[] data = ThriftSerialize.Serialize(filedatalist);
         FileUtils.WriteByteFile(GetActionFileDataPath(), data);
     }
 }
Пример #11
0
 public static void MergeActionEditFileList(ActionFileDataArray filedatalist, Dictionary<int, ActionFileData> conflictDataMap)
 {
     // Get Local Data
     Dictionary<int, ActionFileData> localDataMap = new Dictionary<int, ActionFileData>();
     if (filedatalist != null && filedatalist.DataList != null)
     {
         foreach (ActionFileData value in filedatalist.DataList)
         {
             if (!localDataMap.ContainsKey(value.ID))
             {
                 localDataMap.Add(value.ID, value);
             }
             else
             {
                 Debug.LogWarning("本地Action ID 有冲突!");
             }
         }
     }
     // Merge Data
     if (conflictDataMap != null)
     {
         foreach (int key in conflictDataMap.Keys)
         {
             if (localDataMap.ContainsKey(key))
             {
                 localDataMap.Remove(key);
                 localDataMap.Add(key, conflictDataMap[key]);
                 Debug.LogWarning("冲突解决,本地文件 : " + key.ToString() + " 已被覆盖!");
             }
         }
     }
     // Sycn Data to Local
     if (localDataMap.Count > 0)
     {
         filedatalist = new ActionFileDataArray();
         filedatalist.DataList = new List<ActionFileData>(localDataMap.Values);
         filedatalist.DataList.Sort(SortFileByID);
         byte[] data = ThriftSerialize.Serialize(filedatalist);
         FileUtils.WriteByteFile(GetActionFileDataPath(), data);
     }
 }
Пример #12
0
 // whether have conflict
 public static bool CombineActionEditFileList(ActionFileDataArray filedatalist, out Dictionary<int, ActionFileData> conflictDataMap)
 {
     // Get Local Data
     Dictionary<int, ActionFileData> localDataMap = new Dictionary<int, ActionFileData>();
     // Conflict Value
     conflictDataMap = new Dictionary<int, ActionFileData>();
     if (filedatalist != null && filedatalist.DataList != null)
     {
         foreach (ActionFileData value in filedatalist.DataList)
         {
             if (!localDataMap.ContainsKey(value.ID))
             {
                 localDataMap.Add(value.ID, value);
             }
             else
             {
                 Debug.LogWarning("本地Action ID 有冲突!");
             }
         }
     }
     // Get Remote Data
     ActionFileDataArray downloadData = ConfigManager.Instance.GetActionFileDataArray();
     if (downloadData != null && downloadData.DataList != null)
     {
         foreach (ActionFileData value in downloadData.DataList)
         {
             if (!localDataMap.ContainsKey(value.ID))
             {
                 localDataMap.Add(value.ID, value);
             }
             else
             {
                 if (CheckConflcit(localDataMap[value.ID], value))
                 {
                     conflictDataMap.Add(value.ID, value);
                 }
             }
         }
     }
     // Sycn Data to Local
     if (localDataMap.Count > 0)
     {
         filedatalist = new ActionFileDataArray();
         filedatalist.DataList = new List<ActionFileData>(localDataMap.Values);
         filedatalist.DataList.Sort(SortFileByID);
         byte[] data = ThriftSerialize.Serialize(filedatalist);
         FileUtils.WriteByteFile(GetActionFileDataPath(), data);
     }
     // return
     if (conflictDataMap.Count > 0)
     {
         return true;
     }
     return false;
 }
Пример #13
0
 public static bool CombineActionEditFileList(ActionFileDataArray filedatalist)
 {
     Dictionary<int, ActionFileData> tmp;
     CombineActionEditFileList(filedatalist, out tmp);
     return false;
 }
Пример #14
0
 public static void SyncActionEditFileList(ActionFileDataArray filedatalist)
 {
     // Get Local Data
     Dictionary<int, ActionFileData> localDataMap = new Dictionary<int, ActionFileData>();
     if (filedatalist != null && filedatalist.DataList != null)
     {
         foreach (ActionFileData value in filedatalist.DataList)
         {
             if (!localDataMap.ContainsKey(value.ID))
             {
                 localDataMap.Add(value.ID, value);
             }
             else
             {
                 Debug.LogWarning("本地Action ID 有冲突!");
             }
         }
     }
     // Get Remote Data
     ActionFileDataArray downloadData = ConfigManager.Instance.GetActionFileDataArray();
     if (downloadData != null && downloadData.DataList != null)
     {
         foreach (ActionFileData value in downloadData.DataList)
         {
             if (!localDataMap.ContainsKey(value.ID))
             {
                 localDataMap.Add(value.ID, value);
             }
             else
             {
                 if (CheckConflcit(localDataMap[value.ID], value))
                 {
                     localDataMap.Remove(value.ID);
                     localDataMap.Add(value.ID, value);
                     Debug.LogWarning("远程的ActionFile与本地有冲突,本地文件已被覆盖!");
                 }
             }
         }
     }
     // Sycn Data to Local
     if (localDataMap.Count > 0)
     {
         filedatalist = new ActionFileDataArray();
         filedatalist.DataList = new List<ActionFileData>(localDataMap.Values);
         filedatalist.DataList.Sort(SortFileByID);
         byte[] data = ThriftSerialize.Serialize(filedatalist);
         FileUtils.WriteByteFile(GetActionFileDataPath(), data);
     }
 }
Пример #15
0
    public static void SaveActionEditFileList(ActionFileDataArray filedatalist, ActionFileData fileData)
    {
        if (null == filedatalist)
        {
            filedatalist = new ActionFileDataArray();
        }

        if (null == filedatalist.DataList)
        {
            filedatalist.DataList = new List<ActionFileData>();
        }

        fileData.TimeStamp = GetTimeStamp();
        bool bIsNeedAddNew = true;
        for (int i = 0; i < filedatalist.DataList.Count; ++i)
        {
            if (filedatalist.DataList[i].ID == fileData.ID)
            {
                filedatalist.DataList[i] = fileData;
                bIsNeedAddNew = false;
                break;
            }
        }
        if (bIsNeedAddNew)
        {
            filedatalist.DataList.Add(fileData);
        }

        byte[] data = ThriftSerialize.Serialize(filedatalist);
        FileUtils.WriteByteFile(GetActionFileDataPath(), data);
    }