private void LoadEndingData() { _endingDatas = new List <EndingData>(); TextAsset csv = Resources.Load("ending") as TextAsset; using (var streamReader = new StreamReader(new MemoryStream(csv.bytes))) { using (var reader = new Mono.Csv.CsvFileReader(streamReader)) { var stringArray = new List <List <string> >(); reader.ReadAll(stringArray); stringArray.RemoveAt(0); //Index 0: 현재 투표 인덱스 //Index 1: 날짜 //Index 2: 질문 //Index 4: 제목 //Index 9: 설명 //Index 12: 힌트 foreach (List <string> column in stringArray) { EndingData data = new EndingData(); data.endingQuestion = column[2]; data.endingHint = column[12]; data.endingDescription = column[9]; data.endingTitle = column[4]; _endingDatas.Add(data); } } } }
private void Awake() { if (instance == null) { DontDestroyOnLoad(gameObject); instance = this; } else { Destroy(gameObject); } #region populate all arrays/lists using our .json files _questionJson = Application.streamingAssetsPath + "/Text/AllQuestions.json"; //find location of AllQuestions.json string allQuestionText = File.ReadAllText(_questionJson); //read all the text in that .json file questionData = QuestionData.CreatFromJson(allQuestionText); //convert text in that .json file into something that Unity can read //(in this case, an object containing a List of strings) questionPool = questionData.questionPool.questions; //initialize our List variable as the List of strings in our .json file _answerJson = Application.streamingAssetsPath + "/Text/AllAnswers.json"; //find location of AllAnswers.json string allAnswerText = File.ReadAllText(_answerJson); //read all the text in that .json file characterData = CharacterData.CreateFromJson(allAnswerText); //convert text in that .json file into something that Unity can read //(in this case, an array of objects, each containing a string name, and a List of string answers) _endingJson = Application.streamingAssetsPath + "/Text/AllEndings.json"; //find location of AllEndings.json string allEndingText = File.ReadAllText(_endingJson); //read all the text in that .json file endingData = EndingData.CreateFromJson(allEndingText); //convert text in that .json file into something that Unity can read //(in this case, an array of objects, each containing a string name, and an array of string parings) #endregion }
public static void Postfix(GameMain __instance) { try { String filePath = FindOverridenFile("Ending"); if (filePath is null) { Log.Warning($"[{nameof(GameMain_ReadCSVData_EndingData)}] File not found: Ending.json"); return; } Int32 language = StWorkProxy.CurrentLanguage; EndingData[] engings = __instance.endingData; foreach (Reference <TransifexEntry> item in PrepareTexts(filePath).Enumerate()) { EndingDataId reference = EndingDataId.Parse(item.Key); EndingData info = engings[reference.Id]; Int32 sceneIndex = reference.Scene - 1; String valueText = item.Value.Text; switch (language) { case 1: info.endingText_En[0, sceneIndex] = valueText; break; case 2: info.endingText_Ch[0, sceneIndex] = valueText; break; case 3: info.endingText_Ko[0, sceneIndex] = valueText; break; default: info.endingText_Jp[0, sceneIndex] = valueText; break; } } Log.Message($"[{nameof(GameMain_ReadCSVData_EndingData)}] Loaded: Ending.json"); } catch (Exception ex) { Log.Error(ex, $"[{nameof(GameMain_ReadCSVData_EndingData)}] Failed to load Ending.json"); } }
public void SetPanel(EndingData endingData, bool isUnlock, Action <long> callBack) { _buttonPanel.onClick.RemoveAllListeners(); if (isUnlock) { var backGroundData = ResourceManager.Instance.LoadMasterData <BackGroundData, BackGroundDataObjectList>(endingData.BackGroundId); _image.sprite = backGroundData.Sprites[0]; _textTitle.text = $"End{endingData.EndingNumber}:{endingData.Memo}"; _textDescription.text = endingData.Description; _buttonPanel.onClick.AddListener(delegate { callBack?.Invoke(endingData.Id); }); } else { _textTitle.text = $"End{endingData.EndingNumber}:???????"; _textDescription.text = string.Empty; } }
public IEnumerator LoadingData(Slider loadingSlider, float WaitTime) { if (LoadingDataXmlList.Count <= 0) { LoadingDataXmlList.Add(new KeyValuePair <string, string>("Door", "Doors")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("Note", "Notes")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("CommonData", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("Localize", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("Item", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("Skill", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("Character", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("Background", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("Ending", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("EndingGroup", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("CharSkinSlotLevel", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("BGSkinSlotLevel", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("DoorSkinSlotLevel", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("CharMsg", "Datas")); LoadingDataXmlList.Add(new KeyValuePair <string, string>("ItemLevelUpCost", "Datas")); } for (int i = 0; i < LoadingDataXmlList.Count; i++) { string xmlName = LoadingDataXmlList[i].Key; XmlNodeList list = GetXmlNodeList(LoadingDataXmlList[i].Key, LoadingDataXmlList[i].Value); if (xmlName == "Door") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new DoorData(child); DoorDataDic.Add(data.id, data); } } } else if (xmlName == "Note") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new NoteData(child); NoteDataDic.Add(data.id, data); } } } else if (xmlName == "CommonData") { foreach (XmlNode node in list) { ConfigData.Instance.Initialize(node.ChildNodes); } } else if (xmlName == "Localize") { foreach (XmlNode node in list) { LocalizeData.Instance.Initialize(node.ChildNodes); } } else if (xmlName == "Item") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new ItemData(child); ItemDataDic.Add(data.id, data); } } } else if (xmlName == "Skill") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new SkillData(child); SkillDataList.Add(data.name, data); } } } else if (xmlName == "Character") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new CharData(child); CharDataDic.Add(data.id, data); } } } else if (xmlName == "Background") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new BackgroundData(child); BackGroundDataDic.Add(data.id, data); } } } else if (xmlName == "Ending") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new EndingData(child); EndingDataList.Add(data.id, data); } } } else if (xmlName == "EndingGroup") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new EndingGroupData(child); EndingGroupDataList.Add(data.id, data); } } } else if (xmlName == "CharSkinSlotLevel") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new SkinSlotLevelData(child); if (SkinSlotLevelDataList.ContainsKey(CommonData.SKIN_TYPE.CHAR) == false) { SkinSlotLevelDataList.Add(CommonData.SKIN_TYPE.CHAR, new List <SkinSlotLevelData>()); } SkinSlotLevelDataList[CommonData.SKIN_TYPE.CHAR].Add(data); } } SkinSlotLevelDataList[CommonData.SKIN_TYPE.CHAR].Sort(delegate(SkinSlotLevelData A, SkinSlotLevelData B) { if (A.level > B.level) { return(1); } else { return(-1); } }); } else if (xmlName == "BGSkinSlotLevel") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new SkinSlotLevelData(child); if (SkinSlotLevelDataList.ContainsKey(CommonData.SKIN_TYPE.BACKGROUND) == false) { SkinSlotLevelDataList.Add(CommonData.SKIN_TYPE.BACKGROUND, new List <SkinSlotLevelData>()); } SkinSlotLevelDataList[CommonData.SKIN_TYPE.BACKGROUND].Add(data); } } SkinSlotLevelDataList[CommonData.SKIN_TYPE.BACKGROUND].Sort(delegate(SkinSlotLevelData A, SkinSlotLevelData B) { if (A.level > B.level) { return(1); } else { return(-1); } }); } else if (xmlName == "DoorSkinSlotLevel") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new SkinSlotLevelData(child); if (SkinSlotLevelDataList.ContainsKey(CommonData.SKIN_TYPE.DOOR) == false) { SkinSlotLevelDataList.Add(CommonData.SKIN_TYPE.DOOR, new List <SkinSlotLevelData>()); } SkinSlotLevelDataList[CommonData.SKIN_TYPE.DOOR].Add(data); } } SkinSlotLevelDataList[CommonData.SKIN_TYPE.DOOR].Sort(delegate(SkinSlotLevelData A, SkinSlotLevelData B) { if (A.level > B.level) { return(1); } else { return(-1); } }); } else if (xmlName == "CharMsg") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new CharMsgData(child); CharMsgDataList.Add(data.id, data); } } } else if (xmlName == "ItemLevelUpCost") { foreach (XmlNode node in list) { foreach (XmlNode child in node.ChildNodes) { var data = new ItemLevelUpCostData(child); ItemLevelUpCostDataList.Add(data.name, data); } } } loadingSlider.value = (i + 1) / (float)LoadingDataXmlList.Count; yield return(null); } yield return(new WaitForSeconds(WaitTime)); }