private static void LoadJSON(string path, Action <JSONExportData> OnComplete) { JSONExportData data = new JSONExportData(); if (string.IsNullOrEmpty(path)) { return; } //string finalPath = path; //int appPathLen = Application.dataPath.Length; //finalPath = path.Substring(appPathLen - 6); Debug.Log(path); data = new JSONExportData().LoadData(path); Debug.Log(data.answerData.Length); //if (data) //{ // EditorUtility.DisplayDialog("Paradox Engine", "Language data load failed.", "Ok"); // return; //} if (LocalizationManagerWindow._window == null) { return; } OnComplete(data); }
private void ImportJSON(JSONExportData data) { JSONTextNodeData importedTNData; JSONAnswerNodeData importedTData; JSONAnswerNodeData importedANData; JSONDropdownData importedDData; ParadoxTextLocalizationData tData; ParadoxDropdownLocalizationData dData; ParadoxAnswerNodeLocalizationData aData; ParadoxTextNodeLocalizationData tnData; for (int i = 0; i < _cacheData.Count; i++) { if (_cacheData[i].filterType == ELanguageGraphFilter.Text && data.menuTextData.Any(x => new Guid(x.LocalizationID).Equals(new Guid(_cacheData[i].id)))) { importedTData = data.menuTextData.Where(x => new Guid(x.LocalizationID).Equals(_cacheData[i].id)).First(); tData = _cacheData[i] as ParadoxTextLocalizationData; tData.data = importedTData.Data; _cacheData[i] = tData; } else if (_cacheData[i].filterType == ELanguageGraphFilter.Dropdown && data.menuDropdownData.Any(x => new Guid(x.LocalizationID).Equals(new Guid(_cacheData[i].id)))) { importedDData = data.menuDropdownData.Where(x => new Guid(x.LocalizationID).Equals(new Guid(_cacheData[i].id))).First(); dData = _cacheData[i] as ParadoxDropdownLocalizationData; dData.data = importedDData.Data; _cacheData[i] = dData; } else if (_cacheData[i].filterType == ELanguageGraphFilter.AnswerNode && data.answerData.Any(x => new Guid(x.LocalizationID).Equals(new Guid(_cacheData[i].id)))) { importedANData = data.answerData.Where(x => new Guid(x.LocalizationID).Equals(new Guid(_cacheData[i].id))).First(); aData = _cacheData[i] as ParadoxAnswerNodeLocalizationData; aData.data = importedANData.Data; _cacheData[i] = aData; } else if (_cacheData[i].filterType == ELanguageGraphFilter.TextNode && data.textData.Any(x => new Guid(x.LocalizationID).Equals(new Guid(_cacheData[i].id)))) { importedTNData = data.textData.Where(x => new Guid(x.LocalizationID).Equals(new Guid(_cacheData[i].id))).First(); tnData = _cacheData[i] as ParadoxTextNodeLocalizationData; ParadoxTextNodeData temp; for (int n = 0; n < tnData.data.Count; n++) { temp = tnData.data[n]; temp.Text = importedTNData.Data[n].Text; tnData.data[n] = temp; } _cacheData[i] = tnData; } } }
internal static void ExportJSONLanguageData(LanguageData data) { JSONExportData exportData = new JSONExportData { graphName = data.name, textData = data.textNodeData.Select(x => { return(new JSONTextNodeData { LocalizationID = new Guid(x.id).ToString(), FilterType = x.filterType, Data = x.data.Select(n => new JSONTextNodeData.SerializableTextData { Text = n.Text, CharacterName = n.IsDialogue? n.Character.name : "", }).ToArray(), }); }).ToArray(), answerData = data.answerNodeData.Select(x => { return(new JSONAnswerNodeData { LocalizationID = new Guid(x.id).ToString(), FilterType = x.filterType, Data = x.data }); }).ToArray(), menuTextData = data.textData.Select(x => { return(new JSONAnswerNodeData { LocalizationID = new Guid(x.id).ToString(), FilterType = x.filterType, Data = x.data }); }).ToArray(), menuDropdownData = data.dropdownData.Select(x => { return(new JSONDropdownData { LocalizationID = new Guid(x.id).ToString(), FilterType = x.filterType, Data = x.data }); }).ToArray() }; exportData.SaveData($"Assets/Paradox Engine/{exportData.graphName}.json", false); AssetDatabase.Refresh(); }