private void MergeTerrainConfig() { TerrainEditorDataArray newList = new TerrainEditorDataArray(); newList.DataList = new List<TerrainEditorData>(); TerrainEditorDataArray remoteConfig = ConfigManager.Instance.GetTerrainEditorDataArray(); TerrainEditorDataArray localConfig = GetTerrainEditFileList(); if (null == remoteConfig || remoteConfig.DataList == null || remoteConfig.DataList.Count == 0) { return; } foreach (var elemLocal in localConfig.DataList) { //add loacl newList.DataList.Add(elemLocal); } foreach (var elemRemote in remoteConfig.DataList) { bool isExistInLocal = false; foreach (var elemLocal in localConfig.DataList) { if (elemLocal.ID == elemRemote.ID) { isExistInLocal = true; break; } } if (!isExistInLocal) { //add local newList.DataList.Add(elemRemote); } } byte[] data = ThriftSerialize.Serialize(newList); FileUtils.WriteByteFile(m_strDataPath, data); }
private void SaveData() { if (null == m_TriggerList) { EditorUtility.DisplayDialog("保存失败","!!!", "ok"); return; } if (string.IsNullOrEmpty(m_CurrentEditiongMapName) || string.IsNullOrEmpty(m_CurrentMapResPath) || m_CurrentEditiongMapId <= 0) { EditorUtility.DisplayDialog("保存失败", "地图信息不完整", "ok"); return; } if (null == m_PlayerChar) { EditorUtility.DisplayDialog("保存失败","必须编辑玩家的出生位置", "ok"); return; } m_OutputData = new TerrainEditorData(); m_OutputData.ID = m_CurrentEditiongMapId; m_OutputData.MapName = m_CurrentEditiongMapName; m_OutputData.MapResName = m_CurrentMapResPath; m_OutputData.TriggerDataList = new System.Collections.Generic.List<TerrainTriggerData>(m_TriggerList.Count); for (int i = 0; i < m_TriggerList.Count; ++i) { m_OutputData.TriggerDataList.Add(m_TriggerList[i].TriggerData); } m_OutputData.NpcDataList = new System.Collections.Generic.List<TerrainNpcData>(m_NpcList.Count); for (int i = 0; i < m_NpcList.Count; ++i) { m_OutputData.NpcDataList.Add(m_NpcList[i].m_NpcData); } m_OutputData.PlayerInitPos = new PlayerInitPosData(); m_OutputData.PlayerInitPos.Pos = new ThriftVector3(); m_OutputData.PlayerInitPos.Rot = new ThriftVector3(); m_OutputData.PlayerInitPos.Id = m_PlayerChar.GetInstanceId(); m_OutputData.PlayerInitPos.Pos.SetVector3(m_PlayerChar.GetTransformData().GetPosition()); m_OutputData.PlayerInitPos.Rot.SetVector3(m_PlayerChar.GetTransformData().GetRotation()); m_DataList = GetTerrainEditFileList(); SaveTerrainEditFileList(m_DataList, m_OutputData); }
public void SaveTerrainEditFileList(TerrainEditorDataArray filedata, TerrainEditorData editorData) { if (null == filedata) { filedata = new TerrainEditorDataArray(); filedata.DataList = new System.Collections.Generic.List<TerrainEditorData>(); } if (null != editorData) { bool bIsNeedAddNew = true; for (int i = 0; i < filedata.DataList.Count; ++i) { if (filedata.DataList[i].ID == editorData.ID) { filedata.DataList[i] = editorData; bIsNeedAddNew = false; break; } } if (bIsNeedAddNew) { filedata.DataList.Add(editorData); } } byte[] data = ThriftSerialize.Serialize(filedata); FileUtils.WriteByteFile(m_strDataPath, data); }
public void OpenWindow() { m_DataList = TerrainEditorWindow.Instance.GetTerrainEditFileList(); }