public void Load(IFileLoadInfo loadInfo) { var ppApp = new Application(); var ppPresentation = ppApp.Presentations.Open(loadInfo.FilePath, MsoTriState.msoTrue, MsoTriState.msoTrue, MsoTriState.msoFalse); var context = InitConversionContext(loadInfo, ppPresentation); foreach (Slide slide in ppPresentation.Slides) { LoadSlideNode(context, slide); } var sceneRoot = context.World.Scenes.First().Root; var cStoryRoot = sceneRoot.GetComponent <StoryServiceRootComponent>(); foreach (var nodePair in context.SlideNodes.SequentialPairs()) { cStoryRoot.Edges.Add(Tuples.SameTypePair(nodePair.First.Id, nodePair.Second.Id)); } var cStory = sceneRoot.GetComponent <IStoryComponent>(); cStory.ShowAux1 = false; cStory.ShowAux2 = false; loadInfo.OnLoadedWorld(context.World); ppPresentation.Close(); }
public void Load(IFileLoadInfo loadInfo) { using (var archive = new ZipArchive(loadInfo.FileSystem.OpenRead(loadInfo.FilePath), ZipArchiveMode.Read, false, Encoding.UTF8)) { var metadata = LoadMetadata(archive); var typeAliases = LoadTypeAliases(archive, metadata); var assets = LoadAssets(archive, metadata, typeAliases, loadInfo); var generatedResources = LoadGeneratedResources(archive, metadata, typeAliases); if (metadata.IncludesReadOnlyWorld && (loadInfo.PreferReadOnly || !metadata.IncludesEditingWorld)) { var world = LoadWorld(archive, "readOnlyWorld.json", metadata, typeAliases, assets, generatedResources); loadInfo.OnLoadedReadOnlyWorld(world); } else if (metadata.IncludesEditingWorld) { var world = LoadWorld(archive, "world.json", metadata, typeAliases, assets, generatedResources); loadInfo.OnLoadedWorld(world); } else { loadInfo.OnLoadedNoWorld(); } } }