public Rescaler GetScaler(string scaledCtrl, ControlsMap inMap) { foreach (Rescaler scaler in scalers) { if (scaler.AffectedControls.Contains(scaledCtrl)) { return(scaler); } else { List <string> remaps = inMap.GetPossibleRemaps(scaledCtrl); foreach (string map in remaps) { if (scaler.AffectedControls.Contains(map)) { return(scaler); } } } } return(null); }
public string LoadMeta() { string errors = ""; string sRepo = GetRepository(); if (!string.IsNullOrEmpty(sRepo)) { DirectoryInfo repo = new DirectoryInfo(sRepo); if (!repo.Exists) { try { repo.Create(); } catch (Exception e) { errors += "Action Library : Create folder error (" + ExceptionHelper.GetMessages(e) + ")"; } } //Control Maps FileInfo MapsFile = new FileInfo(sRepo + "\\ControlMaps.xml"); if (MapsFile.Exists) { FileStream stream = null; stream = MapsFile.OpenRead(); try { Maps = (ControlsMap)controlsMapSerializer.Deserialize(stream); } catch (Exception e) { errors += "Load xml " + ExceptionHelper.GetMessages(e); } stream.Close(); } if (!Maps.Initialize()) { SaveMap(); } //Model infos ModelInfos.Clear(); DirectoryInfo modelinfosFile = new DirectoryInfo(sRepo + "\\ModelInfos"); if (modelinfosFile.Exists) { FileInfo[] infos = modelinfosFile.GetFiles("*.xml"); if (infos.Length > 0) { foreach (FileInfo info in infos) { FileStream stream = null; stream = info.OpenRead(); try { ModelInfo modelInfo = (ModelInfo)modelInfosSerializer.Deserialize(stream); modelInfo.Name = info.Name.Substring(0, info.Name.Length - 4); if (modelInfo.Name == "REF") { RefModelInfo = modelInfo; } else { ModelInfos.Add(modelInfo.Name, modelInfo); } } catch (Exception e) { errors += "Load Animation Meta " + ExceptionHelper.GetMessages(e); } stream.Close(); } } } else { try { modelinfosFile.Create(); } catch (Exception e) { errors += "Action Library : Create folder error (" + ExceptionHelper.GetMessages(e) + ")"; } } if (RefModelInfo == null) { //Create "Ref" modelInfos RefModelInfo = new ModelInfo("REF"); Rescaler spine = new Rescaler("SpineScaler", "#SPINETOP", "#SPINEBOTTOM", 1); spine.AffectedControls.Add("#SPINEIKTOP"); spine.AffectedControls.Add("#SPINEIKBOTTOM"); RefModelInfo.Scalers.Add(spine); SaveModelInfo(RefModelInfo); } } return(errors); }