/// <summary> /// Init component. /// </summary> /// <returns>The init.</returns> /// <param name="metaData">Bricks group meta data.</param> /// <param name="path">Path to files.</param> public void Init(BricksGropuMetaData metaData, string path) { PhraseName = metaData.name; group = metaData.category; iconPath = string.Concat(path, ".png"); groupPath = string.Concat(path, ".aga"); }
/// <summary> /// Build new button from definition at disk /// </summary> /// <param name="filePath">File path.</param> void BuildButton(string filePath) { XmlSerializer serializer = new XmlSerializer(typeof(BricksGropuMetaData)); try { //deserialize meta file StreamReader reader = new StreamReader(filePath); //reader.ReadToEnd(); BricksGropuMetaData metaData = (BricksGropuMetaData)serializer.Deserialize(reader); reader.Close(); //create button var buttonObject = Instantiate(buttonPrefab); buttonObject.transform.SetParent(listContainer.transform); var button = buttonObject.GetComponent <SavedBricsGroupButton>(); button.Init(metaData, filePath.Substring(0, filePath.Length - Path.GetExtension(filePath).Length)); } catch (Exception e) { Debug.LogError(e.Message); } }
/// <summary> /// Save currently selected group. /// </summary> /// <param name="name">group name</param> /// <param name="category">group category</param> /// <param name="path">path ehre to save group</param> /// <returns>File path where data where saved.</returns> public string SaveGroup(string name, int category, string path) { if (SelectionManager.instance.SelectedAmount < 1) { return(""); } var toSave = SelectionManager.instance.GetSelected()[0]; var brickToSave = toSave.GetComponent <Brick>(); if (brickToSave == null) { return(""); } var separator = Path.DirectorySeparatorChar; var fileName = name; foreach (var c in System.IO.Path.GetInvalidFileNameChars()) { fileName = fileName.Replace(c, '_'); } while ( File.Exists(string.Concat(path, separator, fileName, ".meta")) || File.Exists(string.Concat(path, separator, fileName, ".png")) || File.Exists(string.Concat(path, separator, fileName, ".aga"))) { fileName += "_"; } try { //save meta file BricksGropuMetaData meta = new BricksGropuMetaData(); meta.name = name; meta.category = category; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string filePath = string.Concat(path, separator, fileName, ".meta"); using (var file = File.Create(filePath)) { var x = new XmlSerializer(meta.GetType()); x.Serialize(file, meta); } //make icon and save it BrickUtils.GenerateIcon(brickToSave, string.Concat(path, separator, fileName, ".png"), 256); //save group Model.instance.Serialize(string.Concat(path, separator, fileName, ".aga"), brickToSave); return(filePath); } catch { try { File.Delete(string.Concat(path, separator, fileName, ".meta")); } catch {} try { File.Delete(string.Concat(path, separator, fileName, ".png")); } catch {} try { File.Delete(string.Concat(path, separator, fileName, ".aga")); } catch {} Dialog.ShowTranslatedInfo("CantSaveGroup"); return(""); } }