/// <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");
 }
예제 #2
0
        /// <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);
            }
        }
예제 #3
0
        /// <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("");
            }
        }