public UniGameResources.LanguageDefine SelectCurrentLanguage(UniGameResources.LanguageDefine DefineLanguage, UniGameResources.LanguageDefine LoaclLanguage, UniGameResources.LanguageDefine SystemLanguage, Dictionary <uint, UniGameResources.LanguageDefine> LanguageDefineList) { //首先给LUA建立表 List <UniGameResources.LanguageDefine> tlist = new List <UniGameResources.LanguageDefine>(32); Dictionary <uint, UniGameResources.LanguageDefine> .Enumerator list = LanguageDefineList.GetEnumerator(); while (list.MoveNext()) { tlist.Add(list.Current.Value); } list.Dispose(); object[] parameters = new object[tlist.Count]; for (int i = 0; i < tlist.Count; i++) { parameters[i] = (object)(tlist[i].languageId); } NewLuaTable("LanguageList", parameters); uint selId = CallLuaMethod_UInt32(SelectCurrentLanguageRef, DefineLanguage.languageId, LoaclLanguage.languageId, SystemLanguage.languageId); UniGameResources.LanguageDefine ret; if (!LanguageDefineList.TryGetValue(selId, out ret)) { return(new UniGameResources.LanguageDefine()); } return(ret); }
public static void LoadGameOptionsDefaultInfo(string fileName, UniGameResources gameResources) { XmlDocument doc = gameResources.LoadResource_PublicXmlFile(fileName); XmlNode root = doc.SelectSingleNode("GameOptions"); XmlNode node = root.SelectSingleNode("GameDifficulty"); switch (node.Attribute("difficulty")) { case "Simpleness": defaultGameDifficulty = GameDifficulty.Difficulty_Simpleness; break; case "Normal": defaultGameDifficulty = GameDifficulty.Difficulty_Normal; break; case "Difficulty": defaultGameDifficulty = GameDifficulty.Difficulty_Difficulty; break; default: defaultGameDifficulty = GameDifficulty.Difficulty_Normal; break; } node = root.SelectSingleNode("Language"); if (!gameResources.FindLanguageDefine(UniGameResources.LanguageDefine.LanguageNameToLanguageId(node.Attribute("name")), out defaultGameLanguage)) { defaultGameLanguage = gameResources.GetDefineLanguage(); } node = root.SelectSingleNode("GameVolume"); defaultGameVolume = Convert.ToSingle(node.Attribute("volume")); defaultStandByMusicVolume = Convert.ToSingle(node.Attribute("standbymusicvolume")); node = root.SelectSingleNode("GameResolution"); if (node.Attribute("resolution") == GameResolution.Resolution_Default.ToString()) { defaultGameResolution = GameResolution.Resolution_Default; } else if (node.Attribute("resolution") == GameResolution.Resolution_16_9_1920_1080.ToString()) { defaultGameResolution = GameResolution.Resolution_16_9_1920_1080; } else if (node.Attribute("resolution") == GameResolution.Resolution_16_9_1600_900.ToString()) { defaultGameResolution = GameResolution.Resolution_16_9_1600_900; } else if (node.Attribute("resolution") == GameResolution.Resolution_16_9_1280_720.ToString()) { defaultGameResolution = GameResolution.Resolution_16_9_1280_720; } else { defaultGameResolution = GameResolution.Resolution_Default; } }