public void CreateEmptyScene_ShouldAddEmptySceneFileToProject() { // Arrange const string sceneName = "SomeSceneName"; var project = Substitute.For <IProject>(); const byte sceneData = 128; // Define assertions _sceneSerializer.Serialize(Arg.Do <Scene>(scene => { Assert.That(scene, Is.Not.Null); Assert.That(scene.AllEntities, Is.Empty); Assert.That(scene.SceneBehavior.Name, Is.Empty); }), Arg.Do <Stream>(stream => { stream.WriteByte(sceneData); })); project.AddFile(Arg.Any <string>(), Arg.Do <Stream>(stream => { Assert.That(stream.Length, Is.EqualTo(1)); Assert.That(stream.ReadByte(), Is.EqualTo(sceneData)); })).ReturnsNull(); // Act _createEmptySceneService.CreateEmptyScene(sceneName, project); // Assert project.Received().AddFile($"{sceneName}{SceneEditorConstants.SceneFileExtension}", Arg.Any <Stream>()); }
public static void PlayScene1(IScene scene, string fileName, string webaddress, ISceneSerializer sceneSerializer) { Console.WriteLine("EndlessDialogs library demonstration"); Console.WriteLine("----------------------------"); Console.WriteLine("Example"); Console.WriteLine("1) Linear conversation"); Console.WriteLine("2) Branched conversation"); Console.WriteLine("3) Save Scene"); Console.WriteLine("4) Load Scene"); int answer = ReadAnswerNumber(1, 4); if (answer == 1) ConversationRunner(scene.GetConversations().First()); else if(answer == 2) ConversationRunner(scene.GetConversations().Skip(1).ToList().First()); else if (answer == 3) { sceneSerializer.Serialize(scene, fileName); Console.WriteLine("Scene saved to file: TestScene.xml"); } else if (answer == 4) { IScene loadedScene = sceneSerializer.Deserialize(fileName); Console.WriteLine("Scene loaded from file: TestScene.xml"); ConversationRunner(loadedScene.GetConversations().Skip(1).ToList().First()); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("----------------------------"); Console.WriteLine("More: \"" + webaddress + "\""); Console.ReadKey(); }
private void CreateEmptyScene(string name, Action <string, Stream> addFile) { using var memoryStream = new MemoryStream(); _sceneSerializer.Serialize(_sceneFactory.Create(), memoryStream); memoryStream.Position = 0; addFile($"{name}{SceneEditorConstants.SceneFileExtension}", memoryStream); }
public static void PlayScene1(IScene scene, string fileName, string webaddress, ISceneSerializer sceneSerializer) { Console.WriteLine("EndlessDialogs library demonstration"); Console.WriteLine("----------------------------"); Console.WriteLine("Example"); Console.WriteLine("1) Linear conversation"); Console.WriteLine("2) Branched conversation"); Console.WriteLine("3) Save Scene"); Console.WriteLine("4) Load Scene"); int answer = ReadAnswerNumber(1, 4); if (answer == 1) { ConversationRunner(scene.GetConversations().First()); } else if (answer == 2) { ConversationRunner(scene.GetConversations().Skip(1).ToList().First()); } else if (answer == 3) { sceneSerializer.Serialize(scene, fileName); Console.WriteLine("Scene saved to file: TestScene.xml"); } else if (answer == 4) { IScene loadedScene = sceneSerializer.Deserialize(fileName); Console.WriteLine("Scene loaded from file: TestScene.xml"); ConversationRunner(loadedScene.GetConversations().Skip(1).ToList().First()); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("----------------------------"); Console.WriteLine("More: \"" + webaddress + "\""); Console.ReadKey(); }
public void Save(Scene scene, string path) { var serializedScene = _sceneSerializer.Serialize(scene); File.WriteAllText(path, serializedScene); }