public void OpenWindow(Dictionary <int, ActionFileData> conflictData) { // State titleStyle = new GUIStyle(); titleStyle.fontSize = 20; titleStyle.normal.textColor = Color.white; m_Instance.minSize = new Vector2(WINDOW_MIN_WIDTH, WINDOW_MIN_HIEGHT); // Remote Data m_mapRemoteData = conflictData; m_mapCheckInfo = new Dictionary <int, bool>(); foreach (int key in m_mapRemoteData.Keys) { m_mapCheckInfo.Add(key, false); } // Local Data m_mapLocalData = new Dictionary <int, ActionFileData>(); ActionFileDataArray filedatalist = ActionHelper.GetActionEditFileList(); if (filedatalist != null && filedatalist.DataList != null) { foreach (ActionFileData value in filedatalist.DataList) { if (!m_mapLocalData.ContainsKey(value.ID) && m_mapRemoteData.ContainsKey(value.ID)) { m_mapLocalData.Add(value.ID, value); } } } Repaint(); }
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); }
public static ActionFileDataArray GetActionEditFileList() { ActionFileDataArray m_FileDataList = new ActionFileDataArray(); ResourceManager.DecodePersonalDataTemplate(GetActionFileDataPath(), ref m_FileDataList); return(m_FileDataList); }
public static bool CombineActionEditFileList(ActionFileDataArray filedatalist) { Dictionary <int, ActionFileData> tmp; CombineActionEditFileList(filedatalist, out tmp); return(false); }
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); }
// 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); }
public ActionFileDataArray GetActionFileDataArray() { ActionFileDataArray config = TryGetConfig <ActionFileDataArray>(ConfigPath_ActionConfig); if (config == null || config.DataList == null) { Debuger.LogWarning("can't find Action File DataArray"); } return(config); }
private void OnReplaceFile() { var option = EditorUtility.DisplayDialog("警告!!!", "取代方案将彻底覆盖本地数据", "确定", "取消"); if (option) { m_FileDataList = ActionHelper.GetActionEditFileList(); ActionHelper.ReplaceEditFileList(m_FileDataList); } }
public static void BackupEditFileList(string path) { ActionFileDataArray filedatalist = ConfigManager.Instance.GetActionFileDataArray(); if (filedatalist != null && filedatalist.DataList != null) { filedatalist.DataList.Sort(SortFileByID); byte[] data = ThriftSerialize.Serialize(filedatalist); FileUtils.WriteByteFile(path + "actionConfig_txtpkg.bytes", data); } }
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); } }
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); } }
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 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 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("合并成功", "合并成功", "确定"); } }
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); } }
public ActionFileData GetActionFileData(int id) { ActionFileDataArray config = TryGetConfig <ActionFileDataArray>(ConfigPath_ActionConfig); if (config == null || config.DataList == null) { Debuger.LogWarning("can't find Action File DataArray"); } ActionFileData res = null; foreach (ActionFileData data in config.DataList) { if (data.ID == id) { res = data; } } if (res == null) { Debuger.LogWarning("can't find Action File"); } return(res); }
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(); }
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(); }
public void OpenWindow() { m_DataList = ActionHelper.GetActionEditFileList(); Repaint(); }