public void UndoRedoChangeFloorAction() { BIWCatalogManager.Init(); BIWTestHelper.CreateTestCatalogLocalMultipleFloorObjects(); CatalogItem oldFloor = DataStore.i.dataStoreBuilderInWorld.catalogItemDict.GetValues()[0]; CatalogItem newFloor = DataStore.i.dataStoreBuilderInWorld.catalogItemDict.GetValues()[1]; BIWCompleteAction buildModeAction = new BIWCompleteAction(); biwCreatorController.EnterEditMode(scene); biwFloorHandler.EnterEditMode(scene); biwFloorHandler.CreateFloor(oldFloor); biwFloorHandler.ChangeFloor(newFloor); buildModeAction.CreateChangeFloorAction(oldFloor, newFloor); biwActionController.AddAction(buildModeAction); foreach (BIWEntity entity in entityHandler.GetAllEntitiesFromCurrentScene()) { if (entity.isFloor) { Assert.AreEqual(entity.GetCatalogItemAssociated().id, newFloor.id); break; } } biwActionController.TryToUndoAction(); foreach (BIWEntity entity in entityHandler.GetAllEntitiesFromCurrentScene()) { if (entity.isFloor) { Assert.AreEqual(entity.GetCatalogItemAssociated().id, oldFloor.id); break; } } biwActionController.TryToRedoAction(); foreach (BIWEntity entity in entityHandler.GetAllEntitiesFromCurrentScene()) { if (entity.isFloor) { Assert.AreEqual(entity.GetCatalogItemAssociated().id, newFloor.id); break; } } }
protected override IEnumerator SetUp() { yield return(base.SetUp()); entityHandler = new BIWEntityHandler(); entityHandler.Init(BIWTestHelper.CreateMockUpReferenceController()); TestHelpers.CreateSceneEntity(scene, ENTITY_ID); entityHandler.EnterEditMode(scene); entity = entityHandler.GetAllEntitiesFromCurrentScene().FirstOrDefault(); }
public void CreateFloor() { //Arrange BIWCatalogManager.Init(); BIWTestHelper.CreateTestCatalogLocalMultipleFloorObjects(); CatalogItem floorItem = DataStore.i.dataStoreBuilderInWorld.catalogItemDict.GetValues()[0]; biwCreatorController.EnterEditMode(scene); biwFloorHandler.EnterEditMode(scene); //Act biwFloorHandler.CreateFloor(floorItem); //Assert foreach (BIWEntity entity in entityHandler.GetAllEntitiesFromCurrentScene()) { if (entity.isFloor) { Assert.IsTrue(biwFloorHandler.ExistsFloorPlaceHolderForEntity(entity.rootEntity.entityId)); Assert.AreEqual(entity.GetCatalogItemAssociated().id, floorItem.id); break; } } foreach (BIWEntity entity in entityHandler.GetAllEntitiesFromCurrentScene()) { if (entity.isFloor) { if (!entity.rootEntity.TryGetSharedComponent(CLASS_ID.GLTF_SHAPE, out ISharedComponent component)) { Assert.Fail("Floor doesn't contains a GLTFShape!"); } entity.rootEntity.OnShapeUpdated?.Invoke(entity.rootEntity); Assert.IsFalse(biwFloorHandler.ExistsFloorPlaceHolderForEntity(entity.rootEntity.entityId)); break; } } }
public void EntitySelectionOperations() { BIWEntity createdEntity = entityHandler.CreateEmptyEntity(scene, Vector3.zero, Vector3.zero); int entityAmount = entityHandler.GetAllEntitiesFromCurrentScene().Count; entityHandler.SelectEntity(createdEntity); entityHandler.DuplicateSelectedEntities(); Assert.Greater(entityHandler.GetAllEntitiesFromCurrentScene().Count, entityAmount); entityAmount = entityHandler.GetAllEntitiesFromCurrentScene().Count; entityHandler.DeleteSelectedEntities(); Assert.Less(entityHandler.GetAllEntitiesFromCurrentScene().Count, entityAmount); }
public void CreateItem() { //Arrange BIWCatalogManager.Init(); BIWTestHelper.CreateTestCatalogLocalSingleObject(); CatalogItem item = DataStore.i.dataStoreBuilderInWorld.catalogItemDict.GetValues()[0]; //Act biwCreatorController.CreateCatalogItem(item); //Assert foreach (BIWEntity entity in entityHandler.GetAllEntitiesFromCurrentScene()) { Assert.IsTrue(entity.GetCatalogItemAssociated().id == item.id); Assert.AreEqual(Vector3.zero, entity.GetEulerRotation()); } }
void FillVoxels(Vector3Int firstPosition, Vector3Int lastPosition) { int xDifference = Mathf.Abs(firstPosition.x - lastPosition.x); int yDifference = Mathf.Abs(firstPosition.y - lastPosition.y); int zDifference = Mathf.Abs(firstPosition.z - lastPosition.z); List <Vector3Int> mustContainVoxelList = new List <Vector3Int>(); List <BIWEntity> voxelEntities = biwEntityHandler.GetAllVoxelsEntities(); List <BIWEntity> allEntities = biwEntityHandler.GetAllEntitiesFromCurrentScene(); for (int x = 0; x <= xDifference; x++) { int contX = x; if (firstPosition.x > lastPosition.x) { contX = -contX; } for (int y = 0; y <= yDifference; y++) { int contY = y; if (firstPosition.y > lastPosition.y) { contY = -contY; } for (int z = 0; z <= zDifference; z++) { int contZ = z; if (firstPosition.z > lastPosition.z) { contZ = -contZ; } Vector3Int positionOfVoxel = new Vector3Int(firstPosition.x + contX, firstPosition.y + contY, firstPosition.z + contZ); if (positionOfVoxel == firstPosition) { continue; } if (ExistVoxelAtPosition(positionOfVoxel, voxelEntities)) { continue; } CreateVoxel(positionOfVoxel); mustContainVoxelList.Add(positionOfVoxel); } } } List <Vector3Int> voxelToRemove = new List <Vector3Int>(); foreach (Vector3Int position in createdVoxels.Keys) { if (!mustContainVoxelList.Contains(position)) { voxelToRemove.Add(position); } } foreach (Vector3Int vector in voxelToRemove) { GameObject.Destroy(createdVoxels[vector].gameObject); createdVoxels.Remove(vector); } foreach (VoxelPrefab keyValuePair in createdVoxels.Values) { if (IsVoxelAtValidPoint(keyValuePair, allEntities)) { keyValuePair.SetAvailability(true); } else { keyValuePair.SetAvailability(false); } } }