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>());
        }
Beispiel #2
0
        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);
 }
Beispiel #4
0
        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();
        }
Beispiel #5
0
        public void Save(Scene scene, string path)
        {
            var serializedScene = _sceneSerializer.Serialize(scene);

            File.WriteAllText(path, serializedScene);
        }