public bool Write() { if (!DateFile.instance) { return(false); } foreach (Relation relation in DateFileHelper.relations) { foreach (var socialId in to_leave_social[relation.key]) { DateFileHelper.LeaveActorLifeDate(socialId, actorId, relation.key); } foreach (var socialId in to_enter_social[relation.key]) { DateFileHelper.EnterActorLifeDate(socialId, actorId, relation.key); } foreach (var act in to_add_social[relation.key]) { DateFileHelper.AddActorSocial(actorId, act, relation.key); } } Read(); return(true); }
public bool Read() { if (!DateFile.instance) { return(false); } ClearBuffer(); lifeData = new Dictionary <int, List <int> > [DateFileHelper.relations.Length]; for (int i = 0; i < DateFileHelper.relations.Length; ++i) { int key = DateFileHelper.relations[i].key; lifeData[i] = DateFileHelper.getSpecifiedLifeData(actorId, key); Main.Debug(key + " " + lifeData[i].Count); } return(true); }
/// <summary> /// 获取当前缓存区的 to_add_social 对应的列表文本 /// </summary> /// <returns></returns> public string getToAddSocials() { Main.Logger.Log("debug point 1"); string text = ""; string names; foreach (int key in to_add_social.Keys) { names = ""; foreach (int id in to_add_social[key]) { names += String.Format("<{0}, {1}> ", id, DateFile.instance.GetActorName(id)); } if (to_add_social[key].Count > 0) { text += String.Format("[{0} : {1}] ", DateFileHelper.GetRelationByKey(key).text, names); } } Main.Logger.Log("debug point 2"); return(text); }
public static void OnGUI(UnityModManager.ModEntry modEntry) { if (!Main.enabled) { GUILayout.Label("游戏尚未开始,请开始后再打开页面"); return; } GUILayout.BeginVertical("Box"); GUILayout.BeginHorizontal("Box"); GUILayout.Label("角色ID:"); inputs[0] = GUILayout.TextField(inputs[0], 6); string titleName = "Not Found"; if (int.TryParse(inputs[0], out int act0) && DateFileHelper.isValidID(act0)) { titleName = DateFile.instance.GetActorName(act0); } else { } GUILayout.Label(titleName); if (GUILayout.Button("读取关系") && DateFileHelper.isValidID(act0)) { cache = new Cache(act0); cache.Read(); } if (GUILayout.Button("写入关系")) { if (cache != null && DateFileHelper.isValidID(act0)) { cache.Write(); } } GUILayout.EndHorizontal(); if (cache != null) { GUILayout.BeginHorizontal("Box"); GUILayout.Label(String.Format("{0} {1} 的关系如下:", cache.actorId, DateFile.instance.GetActorName(cache.actorId))); GUILayout.EndHorizontal(); foreach (Relation relation in DateFileHelper.relations) { GUILayout.BeginHorizontal("Box"); GUILayout.Label(String.Format("<color={0}>{1}</color>: {2}", "#E4504DFF", relation.text, cache.getSocialList(relation.key))); GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal("Box"); GUILayout.Label(String.Format("要删去的关系:{0}", cache.getToLeaveSocials())); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("Box"); GUILayout.Label(String.Format("要删去的关系ID:")); inputs[1] = GUILayout.TextField(inputs[1]); string output1 = "Not Found"; if (int.TryParse(inputs[1], out int soc1) && cache.HasLifeDate(soc1)) { output1 = cache.Social2Str(soc1); } GUILayout.Label(output1); if (GUILayout.Button("确认")) { inputs[1] = ""; cache.LeaveSocial(soc1); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("Box"); GUILayout.Label("关系类型设置"); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("Box"); for (int i = 0; i < DateFileHelper.relations.Length; ++i) { if (GUILayout.Toggle(selectAddType == i, DateFileHelper.relations[i].text)) { selectAddType = i; } if ((i + 1) % 6 == 0) { GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("Box"); } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("Box"); GUILayout.Label(String.Format("要进入的关系:{0}", cache.getToEnterSocials())); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("Box"); GUILayout.Label(String.Format("要进入的关系ID:")); inputs[2] = GUILayout.TextField(inputs[2]); string output2 = "Not Found or Not Support Enter"; if (int.TryParse(inputs[2], out int soc2) && DateFile.instance.actorSocialDate.ContainsKey(soc2) && DateFileHelper.relations[selectAddType].enterable) { output2 = cache.Social2Str(soc2, inside: false); } GUILayout.Label(output2); if (GUILayout.Button("确认")) { inputs[2] = ""; if (DateFile.instance.actorSocialDate.ContainsKey(soc2) && DateFileHelper.relations[selectAddType].enterable) { cache.EnterSocial(soc2, DateFileHelper.relationId2Key[selectAddType]); } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("Box"); GUILayout.Label(String.Format("要新增的关系:{0}", cache.getToAddSocials())); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("Box"); GUILayout.Label(String.Format("对方人物ID:")); inputs[3] = GUILayout.TextField(inputs[3]); string output3 = "Not Found or Not Support Construct"; if (int.TryParse(inputs[3], out int act3) && GameData.Characters.HasChar(act3) && DateFileHelper.relations[selectAddType].addable) { output3 = DateFile.instance.GetActorName(act3); } GUILayout.Label(output3); if (GUILayout.Button("确认")) { inputs[3] = ""; if (GameData.Characters.HasChar(act3) && DateFileHelper.relations[selectAddType].addable) { cache.AddSocial(act3, DateFileHelper.relationId2Key[selectAddType]); } } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); }