private void LoadAudioConfiguration() { // Default settings maxSoundSourceCount = 3; fadeTime = 0; fadeOn = false; if (!XmlDataParser.ExistsInResourcesXmlFile(BaseEngineConstants.AudioResConfigurationPath, BaseEngineConstants.AudioConfigurationShortFileName)) { return; } XmlDocument xmlDocument = XmlDataParser.LoadXmlDocumentFromResources(BaseEngineConstants.AudioResConfigurationPath, BaseEngineConstants.AudioConfigurationShortFileName); XmlNode rootNode = XmlDataParser.FindUniqueTag(xmlDocument, "AudioData"); if (!XmlDataParser.IsAnyTagInChildExist(rootNode, "AudioConfiguration")) { return; } XmlNode configNode = XmlDataParser.FindUniqueTagInChild(rootNode, "AudioConfiguration"); maxSoundSourceCount = int.Parse(configNode.Attributes ["SoundSourceCount"].Value); fadeTime = AEngineTool.ParseFloat(configNode.Attributes ["fade"].Value, 0f); fadeOn = bool.Parse(configNode.Attributes ["fadeOn"].Value); }
private void InitConfiguration() { if (audioData == null) { audioData = new Dictionary <string, AudioBlock> (); } else { audioData.Clear(); } if (!XmlDataParser.ExistsInProjectXmlFile(BaseEngineConstants.AudioConfigurationPath, BaseEngineConstants.AudioConfigurationShortFileName)) { CreateStandardXmlDocument(); } XmlDocument xmlDocument = XmlDataParser.LoadXmlDocumentFromProject(BaseEngineConstants.AudioConfigurationPath, BaseEngineConstants.AudioConfigurationShortFileName); XmlNode rootNode = XmlDataParser.FindUniqueTag(xmlDocument, "AudioData"); if (XmlDataParser.IsAnyTagInChildExist(rootNode, "AudioSettings")) { XmlNode defaultNode = XmlDataParser.FindUniqueTagInChild(rootNode, "AudioSettings"); defaultSetting.useMusic = bool.Parse(defaultNode.Attributes ["useMusic"].Value); defaultSetting.musicVolume = AEngineTool.ParseFloat(defaultNode.Attributes["musicVolume"].Value, 1f); defaultSetting.useSound = bool.Parse(defaultNode.Attributes ["useSound"].Value); defaultSetting.soundVolume = AEngineTool.ParseFloat(defaultNode.Attributes["soundVolume"].Value, 1f); } if (XmlDataParser.IsAnyTagInChildExist(rootNode, "AudioConfiguration")) { XmlNode configNode = XmlDataParser.FindUniqueTagInChild(rootNode, "AudioConfiguration"); soundSourceCount = int.Parse(configNode.Attributes ["SoundSourceCount"].Value); fadeTime = AEngineTool.ParseFloat(configNode.Attributes["fade"].Value, 0f); useFadeOn = bool.Parse(configNode.Attributes ["fadeOn"].Value); } if (!XmlDataParser.IsAnyTagInChildExist(rootNode, "AudioBlock")) { return; } foreach (XmlNode item in XmlDataParser.FindAllTagsInChild(rootNode, "AudioBlock")) { string key = item.Attributes ["Name"].Value; if (!audioData.ContainsKey(key)) { audioData.Add(key, new AudioBlock()); audioData [key].LoadFromXml(item); } else { Debug.LogError("Some equals audio blocks name"); } } }
public void LoadFromXml(XmlNode target) { name = target.Attributes ["Name"].Value; if (music == null) { music = new MusicTrackList(); } if (sound == null) { sound = new SoundTrackList(); } music.Clear(); sound.Clear(); if (XmlDataParser.IsAnyTagInChildExist(target, "Music")) { XmlNode musicNode = XmlDataParser.FindUniqueTagInChild(target, "Music"); if (XmlDataParser.IsAnyTagInChildExist(musicNode, "Track")) { if (musicNode.Attributes ["DelayBetweenTracks"] != null) { music.delay = AEngineTool.ParseFloat(musicNode.Attributes ["DelayBetweenTracks"].Value, 0f); } if (musicNode.Attributes ["MusicNotReplyLength"] != null) { music.musicNotReplyCount = int.Parse(musicNode.Attributes ["MusicNotReplyLength"].Value); } foreach (XmlNode musicTrack in XmlDataParser.FindAllTagsInChild(musicNode, "Track")) { Track track = LoadTrackFromXml(musicTrack); music.tracks.Add(track.name, track); if (musicTrack.Attributes ["Special"] == null) { music.AddTrackToBackgroundMusic(track); } } } } if (XmlDataParser.IsAnyTagInChildExist(target, "Sound")) { XmlNode soundNode = XmlDataParser.FindUniqueTagInChild(target, "Sound"); if (XmlDataParser.IsAnyTagInChildExist(soundNode, "Track")) { foreach (XmlNode soundTrack in XmlDataParser.FindAllTagsInChild(soundNode, "Track")) { Track track = LoadTrackFromXml(soundTrack); sound.tracks.Add(track.name, track); } } } }
private void LoadAudioSettings() { XmlDocument xmlDocument; bool needSave = false; if (!XmlDataParser.ExistsXmlFile(BaseEngineConstants.BaseSettingsPath, BaseEngineConstants.AudioSettingsShortFileName)) { if (!XmlDataParser.ExistsInResourcesXmlFile(BaseEngineConstants.AudioResConfigurationPath, BaseEngineConstants.AudioConfigurationShortFileName)) { SaveAudioSettings(); xmlDocument = XmlDataParser.LoadXmlDocumentFromFile(BaseEngineConstants.BaseSettingsPath, BaseEngineConstants.AudioSettingsShortFileName); } else { xmlDocument = XmlDataParser.LoadXmlDocumentFromResources(BaseEngineConstants.AudioResConfigurationPath, BaseEngineConstants.AudioConfigurationShortFileName); needSave = true; } } else { xmlDocument = XmlDataParser.LoadXmlDocumentFromFile(BaseEngineConstants.BaseSettingsPath, BaseEngineConstants.AudioSettingsShortFileName); } if (!XmlDataParser.IsAnyTagExist(xmlDocument, "AudioData")) { Debug.Log("AudioData not founded"); return; } XmlNode rootNode = XmlDataParser.FindUniqueTag(xmlDocument, "AudioData"); if (!XmlDataParser.IsAnyTagInChildExist(rootNode, "AudioSettings")) { Debug.Log("AudioSettings not founded"); return; } XmlNode audioNode = XmlDataParser.FindUniqueTagInChild(rootNode, "AudioSettings"); isMusic = bool.Parse(audioNode.Attributes ["useMusic"].Value); musicVolumme = AEngineTool.ParseFloat(audioNode.Attributes ["musicVolume"].Value, 1f); isSound = bool.Parse(audioNode.Attributes ["useSound"].Value); soundVolumme = AEngineTool.ParseFloat(audioNode.Attributes ["soundVolume"].Value, 1f); if (needSave) { SaveAudioSettings(); } }
private Track LoadTrackFromXml(XmlNode target) { Track track = new Track(); track.name = target.Attributes ["Name"].Value; if (target.Attributes ["Path"] != null) { track.path = target.Attributes ["Path"].Value; } if (target.Attributes ["Volume"] != null) { track.Volume = AEngineTool.ParseFloat(target.Attributes ["Volume"].Value, 1f); } return(track); }