public override bool UpdateUsedResources(IProgressMonitor monitor, ChangedResourceCollection changedResourceCollection) { bool flag = GameProjectContent.UpdateResourcesInObjectData(this.Content.ObjectData, changedResourceCollection); bool flag2 = GameProjectContent.UpdateResourcesInAnimationData(this.Content.Animation, changedResourceCollection); return(flag || flag2); }
private static HashSet <ResourceData> ScanObjectData(NodeObjectData parentNodeData) { PropertyAccessorHandler[] resourceProperties = parentNodeData.GetResourceProperties(); HashSet <ResourceData> resourceDataSet = new HashSet <ResourceData>(); if (resourceProperties != null) { foreach (PropertyAccessorHandler propertyAccessorHandler in resourceProperties) { ResourceItemData resourceItemData = propertyAccessorHandler.GetValue((object)parentNodeData, (object[])null) as ResourceItemData; if ((ResourceData)resourceItemData != (ResourceData)null) { resourceDataSet.Add((ResourceData)resourceItemData); } } } if (parentNodeData.Children != null) { foreach (NodeObjectData child in parentNodeData.Children) { resourceDataSet.UnionWith((IEnumerable <ResourceData>)GameProjectContent.ScanObjectData(child)); } } return(resourceDataSet); }
private static HashSet <ResourceData> ScanObjectData(NodeObjectData parentNodeData) { PropertyAccessorHandler[] resourceProperties = parentNodeData.GetResourceProperties(); HashSet <ResourceData> hashSet = new HashSet <ResourceData>(); if (resourceProperties != null) { PropertyAccessorHandler[] array = resourceProperties; for (int i = 0; i < array.Length; i++) { PropertyAccessorHandler propertyAccessorHandler = array[i]; ResourceItemData resourceItemData = propertyAccessorHandler.GetValue(parentNodeData, null) as ResourceItemData; if (resourceItemData != null) { hashSet.Add(resourceItemData); } } } if (parentNodeData.Children != null) { foreach (NodeObjectData current in parentNodeData.Children) { hashSet.UnionWith(GameProjectContent.ScanObjectData(current)); } } return(hashSet); }
private static bool UpdateResourcesInObjectData(NodeObjectData parentNodeData, ChangedResourceCollection changedResourceCollection) { PropertyAccessorHandler[] resourceProperties = parentNodeData.GetResourceProperties(); bool result; if (resourceProperties == null) { result = false; } else { bool flag = false; PropertyAccessorHandler[] array = resourceProperties; for (int i = 0; i < array.Length; i++) { PropertyAccessorHandler propertyAccessorHandler = array[i]; ResourceItemData resourceItemData = propertyAccessorHandler.GetValue(parentNodeData, null) as ResourceItemData; if (!(resourceItemData == null)) { ResourceFile resourceFile = null; if (changedResourceCollection.TryGetValue(resourceItemData, out resourceFile)) { if (resourceFile != null) { resourceItemData.Update(resourceFile.GetResourceData()); } else { propertyAccessorHandler.SetValue(parentNodeData, null, null); } if (!flag) { flag = true; } } } } if (parentNodeData.Children != null) { foreach (NodeObjectData current in parentNodeData.Children) { bool flag2 = GameProjectContent.UpdateResourcesInObjectData(current, changedResourceCollection); if (!flag && flag2) { flag = flag2; } } } result = flag; } return(result); }
protected virtual IProjectContent CreateProjectContent(ProjectCreateInformation info) { NodeType result; if (!Enum.TryParse <NodeType>(info.ContentType, out result)) { throw new InvalidOperationException("Unsupport content type" + info.ContentType); } GameProjectContent gameProjectContent = new GameProjectContent(result); gameProjectContent.Content.ObjectData.Size = new PointF(info.Width, info.Height); return((IProjectContent)gameProjectContent); }
public override bool HasReferencedProject(Project project) { if (this.IsLoaded) { return(GameProjectContent.CheckReferenceProjectInObject(this.RootVisualObject as NodeObject, project)); } if (this.Content == null || this.Content.ObjectData == null) { return(false); } ResourceData resourceData = project.GetResourceData(); return(GameProjectContent.CheckReferenceProjectInObjectData(this.Content.ObjectData, project, resourceData)); }
private static bool CheckReferenceProjectInObjectData(NodeObjectData parentNode, Project project, ResourceData projectPath) { bool result; if (parentNode == null) { result = false; } else { ProjectNodeObjectData projectNodeObjectData = parentNode as ProjectNodeObjectData; if (projectNodeObjectData != null) { ResourceItemData fileData = projectNodeObjectData.FileData; if (projectPath.Equals(fileData)) { result = true; return(result); } if (fileData != null) { Project project2 = Services.ProjectsService.CurrentResourceGroup.FindResourceItem(fileData) as Project; if (project2 != null) { bool flag = project2.HasReferencedProject(project); if (flag) { result = true; return(result); } } } } if (parentNode.Children != null) { foreach (NodeObjectData current in parentNode.Children) { bool flag2 = GameProjectContent.CheckReferenceProjectInObjectData(current, project, projectPath); if (flag2) { result = true; return(result); } } } result = false; } return(result); }
private static HashSet <ResourceData> SearchResourceItemData(GameProjectData projectData) { HashSet <ResourceData> hashSet = new HashSet <ResourceData>(); HashSet <ResourceData> hashSet2 = GameProjectContent.ScanObjectData(projectData.ObjectData); if (hashSet2 != null) { hashSet.UnionWith(hashSet2); } hashSet2 = GameProjectContent.ScanAnimationData(projectData.Animation); if (hashSet2 != null) { hashSet.UnionWith(hashSet2); } return(hashSet); }
private static HashSet <ResourceData> SearchResourceItemData(GameProjectData projectData) { HashSet <ResourceData> resourceDataSet1 = new HashSet <ResourceData>(); HashSet <ResourceData> resourceDataSet2 = GameProjectContent.ScanObjectData(projectData.ObjectData); if (resourceDataSet2 != null) { resourceDataSet1.UnionWith((IEnumerable <ResourceData>)resourceDataSet2); } HashSet <ResourceData> resourceDataSet3 = GameProjectContent.ScanAnimationData(projectData.Animation); if (resourceDataSet3 != null) { resourceDataSet1.UnionWith((IEnumerable <ResourceData>)resourceDataSet3); } return(resourceDataSet1); }
private static bool UpdateResourcesInObjectData(NodeObjectData parentNodeData, ChangedResourceCollection changedResourceCollection) { PropertyAccessorHandler[] resourceProperties = parentNodeData.GetResourceProperties(); if (resourceProperties == null) { return(false); } bool flag1 = false; foreach (PropertyAccessorHandler propertyAccessorHandler in resourceProperties) { ResourceItemData resourceItemData = propertyAccessorHandler.GetValue((object)parentNodeData, (object[])null) as ResourceItemData; if (!((ResourceData)resourceItemData == (ResourceData)null)) { ResourceFile resourceFile = (ResourceFile)null; if (changedResourceCollection.TryGetValue((ResourceData)resourceItemData, out resourceFile)) { if (resourceFile != null) { resourceItemData.Update(resourceFile.GetResourceData()); } else { propertyAccessorHandler.SetValue((object)parentNodeData, (object)null, (object[])null); } if (!flag1) { flag1 = true; } } } } if (parentNodeData.Children != null) { foreach (NodeObjectData child in parentNodeData.Children) { bool flag2 = GameProjectContent.UpdateResourcesInObjectData(child, changedResourceCollection); if (!flag1 && flag2) { flag1 = flag2; } } } return(flag1); }
private static bool CheckReferenceProjectInObject(NodeObject parentNode, Project project) { bool result; if (parentNode == null) { result = false; } else { ProjectNodeObject projectNodeObject = parentNode as ProjectNodeObject; if (projectNodeObject != null) { ResourceFile fileData = projectNodeObject.FileData; if (fileData == project) { result = true; return(result); } if (projectNodeObject.Project != null) { bool flag = projectNodeObject.Project.HasReferencedProject(project); if (flag) { result = true; return(result); } } } if (parentNode.Children != null) { foreach (NodeObject current in parentNode.Children) { bool flag2 = GameProjectContent.CheckReferenceProjectInObject(current, project); if (flag2) { result = true; return(result); } } } result = false; } return(result); }
public override bool HasReferencedProject(Project project) { bool result; if (this.IsLoaded) { result = GameProjectContent.CheckReferenceProjectInObject(this.RootVisualObject as NodeObject, project); } else if (this.Content == null || this.Content.ObjectData == null) { result = false; } else { ResourceData resourceData = project.GetResourceData(); result = GameProjectContent.CheckReferenceProjectInObjectData(this.Content.ObjectData, project, resourceData); } return(result); }
private static bool CheckReferenceProjectInObjectData(NodeObjectData parentNode, Project project, ResourceData projectPath) { if (parentNode == null) { return(false); } ProjectNodeObjectData projectNodeObjectData = parentNode as ProjectNodeObjectData; if (projectNodeObjectData != null) { ResourceItemData fileData = projectNodeObjectData.FileData; if (projectPath.Equals((ResourceData)fileData)) { return(true); } if ((ResourceData)fileData != (ResourceData)null) { Project resourceItem = Services.ProjectsService.CurrentResourceGroup.FindResourceItem((ResourceData)fileData) as Project; if (resourceItem != null && resourceItem.HasReferencedProject(project)) { return(true); } } } if (parentNode.Children != null) { foreach (NodeObjectData child in parentNode.Children) { if (GameProjectContent.CheckReferenceProjectInObjectData(child, project, projectPath)) { return(true); } } } return(false); }
private static bool CheckReferenceProjectInObject(NodeObject parentNode, Project project) { if (parentNode == null) { return(false); } ProjectNodeObject projectNodeObject = parentNode as ProjectNodeObject; if (projectNodeObject != null && (projectNodeObject.FileData == project || projectNodeObject.Project != null && projectNodeObject.Project.HasReferencedProject(project))) { return(true); } if (parentNode.Children != null) { foreach (NodeObject child in (Collection <NodeObject>)parentNode.Children) { if (GameProjectContent.CheckReferenceProjectInObject(child, project)) { return(true); } } } return(false); }
public override bool UpdateUsedResources(IProgressMonitor monitor, ChangedResourceCollection changedResourceCollection) { return(GameProjectContent.UpdateResourcesInObjectData(this.Content.ObjectData, changedResourceCollection) || GameProjectContent.UpdateResourcesInAnimationData(this.Content.Animation, changedResourceCollection)); }
public override HashSet <ResourceData> GetUsedResources(IProgressMonitor monitor) { return(GameProjectContent.SearchResourceItemData(this.Content)); }