public LevelData RenderBaseLevel(LevelData levelData) { var levelLayout = levelData.LevelLayout; var levelSize = levelData.LevelSize; roomProvider = levelData.RoomProvider; List <RoomBuilder> createdRooms = new List <RoomBuilder>(); for (int i = 0; i < levelSize.x; i++) { for (int j = 0; j < levelSize.y; j++) { var room = roomProvider.GetARoom(levelLayout.AttributeLayout[i, j]); room = RenderRoom(room, i, j); levelLayout.AddRenderedRoom(i, j, room.gameObject); } } RenderDebugInfoIfNeeded(levelData); levelData.SetBounds(GenerateWalls(levelData)); return(levelData); }
public Game SetRoomId(string roomId) { if (roomId != null && RoomProvider != null) { Room = RoomProvider.Get(roomId); Room.Cards.Sort(new Comparison <GameCard>((a, b) => a.Role - b.Role)); } return(this); }
public void WhenProvidingRoomList_ShouldHave10rooms() { var roomProvider = new RoomProvider(); var rooms = roomProvider.GetAllRooms().ToList(); Assert.AreEqual(10, rooms.Count); Assert.AreEqual("room0", rooms[0].Name); Assert.AreEqual("room1", rooms[1].Name); Assert.AreEqual("room9", rooms.Last().Name); }
private RoomState AddRoom(RoomProvider roomPrefab, int x, int y, RoomFacing orientation) { var myPosition = new Vector2Int(x, y); var room = GameObject.Instantiate(roomPrefab.GetRoom(), Vector3.zero, RoomFacingUtil.GetRotation(orientation), startingRoomAnchor.transform); var blockers = room.GetBlockers(); foreach (var blocker in blockers) { motorController.AddBlocker(blocker); } var hauntProviders = room.GetHauntProviders(); foreach (var hauntProvider in hauntProviders) { hauntController.AddHauntable(hauntProvider.GetHauntable()); } rooms[x][y] = new RoomState() { orientation = orientation, x = x, y = y, room = room }; room.orientation = orientation; room.gameObject.transform.localPosition = new Vector3(x * unitWorldSize, 0, y * unitWorldSize); pathController.AddLinks(room.path.links); foreach (var anchor in room.anchors) { if (!anchor.allowAttachment) { continue; } var anchorFacingOrientated = RoomFacingUtil.GetOrientated(anchor.facing, orientation); var anchorFacingOrientedOpposite = RoomFacingUtil.GetOpposite(anchorFacingOrientated); var offset = RoomFacingUtil.GetOffset(anchorFacingOrientated); var position = getValidatedPosition(offset.x + x, offset.y + y); if (position == INVALID_POS) { continue; } var roomAtFacing = rooms[position.x][position.y]; if (roomAtFacing == null) { var existingFree = freePositions.FindIndex((item) => item.position == position); if (existingFree >= 0) { continue; } freePositions.Add(new FreePosition() { position = position, from = anchorFacingOrientedOpposite }); } } var myFreeIndex = freePositions.FindIndex((item) => item.position == myPosition); if (myFreeIndex < 0) { return(rooms[x][y]); } freePositions.RemoveAt(myFreeIndex); return(rooms[x][y]); }
private void Initialize(RoomProvider roomProvider) { directionsMap = GetDirectionsMap(); roomConnectionAttributes = roomProvider.GetUniqueAttributesOfType <RoomConnectionAttribute>(); }
public RoomsController(BookingContext context) { _provider = new RoomProvider(context); }