Esempio n. 1
0
        public void TestLoadStageWithTwoSceneEntities()
        {
            var sceneEntity1 = Mother.CreateCubeEntity();

            _stage.Add(sceneEntity1);

            var sceneEntity2 = Mother.CreateCubeEntity();

            _stage.Add(sceneEntity2);

            _dataAdapter.EntityFolderPath = _stageFolderPath;
            _dataAdapter.Save(_stage);

            var actionResult = _dataAdapter.Load(_stage.Name);

            Assert.IsTrue(actionResult.Success);
            var loadedStage = actionResult.Value;

            Assert.IsNotNull(loadedStage);
            Assert.IsNotNull(loadedStage.Items);
            Assert.AreEqual(_stage.Items.Count, loadedStage.Items.Count);
            Assert.AreEqual(_stage, loadedStage);

            var loadedSceneEntity1 = loadedStage.Items.FirstOrDefault(item => item.Name == sceneEntity1.Name);

            Assert.IsNotNull(loadedSceneEntity1);
            Assert.IsNotNull(loadedSceneEntity1.Geometry);
            Assert.AreEqual(sceneEntity1.Geometry.GetType(), loadedSceneEntity1.Geometry.GetType());

            var loadedSceneEntity2 = loadedStage.Items.FirstOrDefault(item => item.Name == sceneEntity2.Name);

            Assert.IsNotNull(loadedSceneEntity2);
            Assert.IsNotNull(loadedSceneEntity2.Geometry);
            Assert.AreEqual(sceneEntity2.Geometry.GetType(), loadedSceneEntity2.Geometry.GetType());
        }
Esempio n. 2
0
        public void TestSceneEngineHandlesSceneEntityAddedToStage()
        {
            _sceneContent.Stage = _stage;

            var sceneEntity = Mock.Of <ISceneEntity>();

            _stage.Add(sceneEntity);

            _sceneEngineMock.Verify(m => m.AddSceneEntity(sceneEntity), Times.Once());
        }
Esempio n. 3
0
        private void UnPackSceneEntities(IStage stage, IEnumerable <IArchiveEntry <ZipArchiveEntry> > sceneEntityArchiveEntries, IActionResult actionResult)
        {
            foreach (var sceneEntityArchiveEntry in sceneEntityArchiveEntries)
            {
                var sceneEntityActionResult = new ActionResult <ISceneEntity>();
                var entity = UnPackEntity(sceneEntityArchiveEntry, sceneEntityActionResult);

                ValidateEntity <ISceneEntity>(entity, sceneEntityActionResult);

                if (sceneEntityActionResult.Success)
                {
                    var sceneEntity = (ISceneEntity)entity;

                    if (sceneEntityArchiveEntry.Geometry != null)
                    {
                        UnPackGeometry(sceneEntityArchiveEntry.Geometry, sceneEntity, sceneEntityActionResult);
                    }

                    if (sceneEntityActionResult.Success)
                    {
                        stage.Add(sceneEntity);
                    }
                }
                actionResult.CombineWith(sceneEntityActionResult);
            }
        }
Esempio n. 4
0
        public virtual void OnEnter(IStage stage)
        {
            this.CurrentStage = stage;
            if (this.Collidable == null)
            {
                return;
            }

            stage.Add(this.Collidable);
        }