コード例 #1
0
        public bool IsSameLayout(SceneLayoutData other)
        {
            if (LayoutId != other.LayoutId)
            {
                return(false);
            }
            if (lightingId != other.lightingId || musicTrackId != other.musicTrackId)
            {
                return(false);
            }
            if (layout.Count != other.layout.Count)
            {
                return(false);
            }
            LayoutEnumerator layoutEnumerator = GetLayoutEnumerator();

            foreach (DecorationLayoutData item in layoutEnumerator)
            {
                ParentedSet <string, DecorationLayoutData> parentedSet = other.layout;
                DecorationLayoutData.ID id = item.Id;
                if (!parentedSet.ContainsKey(id.GetFullPath()))
                {
                    return(false);
                }
                ParentedSet <string, DecorationLayoutData> parentedSet2 = other.layout;
                id = item.Id;
                DecorationLayoutData other2 = parentedSet2.Get(id.GetFullPath());
                if (!item.Equals(other2))
                {
                    return(false);
                }
            }
            return(true);
        }
コード例 #2
0
 public void RemoveDecoration(DecorationLayoutData decoration, bool deleteChildren)
 {
     layout.Remove(decoration.Id.ParentPath, decoration.Id.GetFullPath(), deleteChildren);
     dispatchSceneLayoutDataUpdated();
     if (this.DecorationRemoved != null)
     {
         this.DecorationRemoved(this);
     }
 }
コード例 #3
0
        private void updateChildIdReferences(DecorationLayoutData parent)
        {
            List <string> children = layout.GetChildren(parent.Id.GetFullPath());

            for (int i = 0; i < children.Count; i++)
            {
                DecorationLayoutData decorationLayoutData = layout.Get(children[i]);
                string fullPath = decorationLayoutData.Id.GetFullPath();
                decorationLayoutData.Id.ParentPath = parent.Id.GetFullPath();
                layout.Update(decorationLayoutData.Id.ParentPath, fullPath, decorationLayoutData.Id.ParentPath, decorationLayoutData.Id.GetFullPath(), decorationLayoutData);
                updateChildIdReferences(decorationLayoutData);
            }
        }
コード例 #4
0
 public void UpdateDecoration(string previousId, DecorationLayoutData decoration)
 {
     if (layout.ContainsKey(previousId))
     {
         DecorationLayoutData decorationLayoutData = layout.Get(previousId);
         layout.Update(decorationLayoutData.Id.ParentPath, previousId, decoration.Id.ParentPath, decoration.Id.GetFullPath(), decoration);
         if (previousId != decoration.Id.GetFullPath())
         {
             updateChildIdReferences(decoration);
         }
         dispatchSceneLayoutDataUpdated();
     }
 }
コード例 #5
0
        public bool IsLayoutAtMaxItemLimit(DecorationLayoutData selectedItem, bool selectedItemIsAPair = false)
        {
            int num = 0;

            if (!layout.Contains(selectedItem.Id.GetFullPath()))
            {
                num = 1;
                if (selectedItemIsAPair)
                {
                    num++;
                }
            }
            return(LayoutCount + num >= MaxLayoutItems);
        }
コード例 #6
0
        private void debugPrintDecoration(DecorationLayoutData data, int indent)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append('\t', indent);
            StringBuilder stringBuilder2 = new StringBuilder();

            stringBuilder2.Append(stringBuilder).Append(data.Id.GetFullPath()).Append(" => {\n");
            stringBuilder2.Append(stringBuilder).AppendFormat("\tName: {0},\n", data.Id.Name);
            stringBuilder2.Append(stringBuilder).AppendFormat("\tParent: {0},\n", data.Id.ParentPath);
            stringBuilder2.Append(stringBuilder).AppendFormat("\tDefinitionId: {0},\n", data.DefinitionId);
            stringBuilder2.Append(stringBuilder).AppendFormat("\tPosition: {0},\n", data.Position);
            stringBuilder2.Append(stringBuilder).AppendFormat("\tRotation: {0},\n", data.Rotation);
            stringBuilder2.Append(stringBuilder).AppendFormat("\tType: {0},\n", data.Type);
            stringBuilder2.Append(stringBuilder).AppendFormat("\tUniformScale: {0},\n", data.UniformScale);
            stringBuilder2.Append(stringBuilder).Append("},\n");
        }
コード例 #7
0
 public void AddDecoration(DecorationLayoutData decoration)
 {
     if (IsLayoutAtMaxItemLimit())
     {
         if (this.MaxLayoutItemsReached != null)
         {
             this.MaxLayoutItemsReached.InvokeSafe();
         }
     }
     else if (!layout.Contains(decoration.Id.GetFullPath()))
     {
         layout.Add(decoration.Id.ParentPath, decoration.Id.GetFullPath(), decoration);
         dispatchSceneLayoutDataUpdated();
         if (this.DecorationAdded != null)
         {
             this.DecorationAdded.InvokeSafe(this, decoration);
         }
     }
 }
コード例 #8
0
 public ParentedDecorationData(DecorationLayoutData decorationLayoutData)
 {
     Data     = decorationLayoutData;
     Children = new List <OrderedLayoutEnumerator>();
 }