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()); }
public void TestSceneEngineHandlesSceneEntityAddedToStage() { _sceneContent.Stage = _stage; var sceneEntity = Mock.Of <ISceneEntity>(); _stage.Add(sceneEntity); _sceneEngineMock.Verify(m => m.AddSceneEntity(sceneEntity), Times.Once()); }
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); } }
public virtual void OnEnter(IStage stage) { this.CurrentStage = stage; if (this.Collidable == null) { return; } stage.Add(this.Collidable); }