public static Project FromXProxy(ProjectX proxy, ProjectResolver resolver, Project project) { if (proxy == null) { return(null); } if (proxy.PropertyGroup != null) { project.Uid = proxy.PropertyGroup.ProjectGuid; project.Name = proxy.PropertyGroup.ProjectName; project._defaultLibraryUid = proxy.PropertyGroup.DefaultLibrary; project.Extra = new List <XmlElement>(proxy.PropertyGroup.Extra ?? new XmlElement[0]); } project._texturePool = new MetaTexturePool(); project._tilePools = new MetaTilePoolManager(project._texturePool); project._objectPools = new MetaObjectPoolManager(project._texturePool); project._tileBrushes = new MetaTileBrushManager(); foreach (var itemGroup in proxy.ItemGroups) { if (itemGroup.Libraries != null) { foreach (var libProxy in itemGroup.Libraries) { using (Stream stream = resolver.InputStream(libProxy.Include)) { project.AddLibrary(new Library(stream) { FileName = libProxy.Include, }); } } } if (itemGroup.Levels != null) { foreach (var level in itemGroup.Levels) { using (Stream stream = resolver.InputStream(level.Include)) { project.Levels.Add(new Level(stream, project) { FileName = level.Include, }); } } } } //project._tilePools.Pools.PropertyChanged += project.TilePoolsModifiedHandler; //project._objectPools.Pools.PropertyChanged += project.HandleObjectPoolManagerPropertyChanged; return(project); }
public static Project FromXProxy(ProjectX proxy, ProjectResolver resolver, Project project) { if (proxy == null) return null; if (proxy.PropertyGroup != null) { project.Uid = proxy.PropertyGroup.ProjectGuid; project.Name = proxy.PropertyGroup.ProjectName; project._defaultLibraryUid = proxy.PropertyGroup.DefaultLibrary; project.Extra = new List<XmlElement>(proxy.PropertyGroup.Extra ?? new XmlElement[0]); } project._texturePool = new MetaTexturePool(); project._tilePools = new MetaTilePoolManager(project._texturePool); project._objectPools = new MetaObjectPoolManager(project._texturePool); project._tileBrushes = new MetaTileBrushManager(); foreach (var itemGroup in proxy.ItemGroups) { if (itemGroup.Libraries != null) { foreach (var libProxy in itemGroup.Libraries) { using (Stream stream = resolver.InputStream(libProxy.Include)) { project.AddLibrary(new Library(stream) { FileName = libProxy.Include, }); } } } if (itemGroup.Levels != null) { foreach (var level in itemGroup.Levels) { using (Stream stream = resolver.InputStream(level.Include)) { project.Levels.Add(new Level(stream, project) { FileName = level.Include, }); } } } } //project._tilePools.Pools.PropertyChanged += project.TilePoolsModifiedHandler; //project._objectPools.Pools.PropertyChanged += project.HandleObjectPoolManagerPropertyChanged; return project; }