Пример #1
0
        public GuidObject Clone(Guid newGuid, string newID)
        {
            var oldGuid = this.Guid;

            this.Guid = newGuid;
            GuidObject clone = null;

            try
            {
                SerializationSettings settings;
                if (UnityEngine.Application.isPlaying)
                {
                    settings = new SerializationSettings(SerializationFlags.Runtime | SerializationFlags.Binary);
                }
                else
                {
                    settings = new SerializationSettings(SerializationFlags.Static | SerializationFlags.Binary);
                }
                var bytes = Serializer.Instance.Serialize(this, settings);
                clone    = Serializer.Instance.Deserialize <GuidObject>(bytes, settings);
                clone.ID = newID;
            }
            catch (Exception ex)
            {
                Logger.Instance.Error(ex.ToString());
            }
            finally
            {
                this.Guid = oldGuid;
            }
            return(clone);
        }
Пример #2
0
 public void Add(GuidObject item)
 {
     if (item.ParentFolder != null)
     {
         throw new Exception("Item already added in another folder");
     }
     Items.Add(item);
     item.SetParentFolder(this);
 }
Пример #3
0
 public bool Remove(GuidObject guidObject)
 {
     if (guidObject.ParentFolder == this)
     {
         if (Items.Remove(guidObject))
         {
             guidObject.SetParentFolder(null);
             return(true);
         }
     }
     return(false);
 }
Пример #4
0
            public bool Contains(GuidObject item, bool recursive = false)
            {
                IEnumerable <GuidObject> enumerable = recursive ? AllItems : Items;

                foreach (var value in enumerable)
                {
                    if (item == value)
                    {
                        return(true);
                    }
                }
                return(false);
            }
Пример #5
0
            public bool Replace(GuidObject oldItem, GuidObject newItem)
            {
                for (int i = 0; i < Items.Count; i++)
                {
                    if (Items[i] == oldItem)
                    {
                        oldItem.SetParentFolder(null);
                        Items[i] = newItem;
                        newItem.SetParentFolder(this);
                        return(true);
                    }
                }

                return(false);
            }
Пример #6
0
 public List <string> GetScopeIds(GuidObject guidObject)
 {
     return(GetScopeIds(guidObject?.ID));
 }