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); }
public void RemoveDecoration(DecorationLayoutData decoration, bool deleteChildren) { layout.Remove(decoration.Id.ParentPath, decoration.Id.GetFullPath(), deleteChildren); dispatchSceneLayoutDataUpdated(); if (this.DecorationRemoved != null) { this.DecorationRemoved(this); } }
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); } }
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(); } }
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); }
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"); }
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); } } }
public ParentedDecorationData(DecorationLayoutData decorationLayoutData) { Data = decorationLayoutData; Children = new List <OrderedLayoutEnumerator>(); }