private void CheckPlayerEvent() { var bspTile = tilemapBuilder.FindRoomByPosition(transform.transform.position); if (bspTile.bspComponent != this.currentBSPTile.bspComponent) { this.currentBSPTile = bspTile; if (OnChangeRoom != null) { OnChangeRoom(bspTile); } } }
private void OnPlayerEnterRoom(BSPTile bspTile) { if (bspTile.bspComponent == null) { return; } if (typeof(BSPRoom) == bspTile.bspComponent.GetType()) { waveIndex = -1; var room = (BSPRoom)bspTile.bspComponent; StartCoroutine(Spawn(1, PrepareWave(), room)); } }
private void RenderToWorldCanvas(Vector2Int offset, Vector2Int dungeonSize, BSPTile[,] mapDetailData) { int index = 0; TileInfo wallTiles = new TileInfo("1"); for (int x = 0; x < dungeonSize.x; x++) { for (int y = 0; y < dungeonSize.y; y++) { //Debug.Log( x +", " + y +","+ mapData[x, y] +", " + (mapData[x, y] == null)); if (mapDetailData[x, y].bspComponent == null) { mapDetailData[x, y] = new BSPTile(x, y, x + map_offset.x, y + map_offset.y, "1"); } var tileSTP = tileSet.GetTile(mapDetailData[x, y].tile_id); switch (mapDetailData[x, y].tile_id) { case "0": break; case "1": wallTiles.Add(x + offset.x, y + offset.y, tileSTP.GetSprite()); break; } //GameObject p = Instantiate(tilePrefab); //p.transform.position = new Vector2(x, y) + offset + tile_offset; //SpriteRenderer sRenderer = p.GetComponent<SpriteRenderer>(); //var tileSTP = tileSet.GetTile(mapData[x, y]); //if (tileSTP != null) { // sRenderer.sprite = tileSTP.GetSprite(); //} index++; } } RenderTileInfo(wallTiles, TileType.Wall); }
public void RenderTile(Vector2Int dungeonSize, List <BSPMapComponent> bspComponents) { map_offset = new Vector2Int(Mathf.RoundToInt(-dungeonSize.x), Mathf.RoundToInt(-dungeonSize.y)); dungeonFullSize = new Vector2Int(dungeonSize.x * 2, dungeonSize.y * 2); //1 = wall , 0 = empty mapDetailData = new BSPTile[dungeonFullSize.x, dungeonFullSize.y]; FloodFillMap(dungeonFullSize, map_offset); for (int i = 0; i < bspComponents.Count; i++) { for (float x = bspComponents[i].spaceRect.xMin; x < bspComponents[i].spaceRect.xMax; x++) { for (float y = bspComponents[i].spaceRect.yMin; y < bspComponents[i].spaceRect.yMax; y++) { int xIndex = Mathf.RoundToInt(dungeonSize.x + x); int yIndex = Mathf.RoundToInt(dungeonSize.y + y); mapDetailData[xIndex, yIndex] = new BSPTile(xIndex, yIndex, xIndex + map_offset.x, yIndex + map_offset.y, "0"); mapDetailData[xIndex, yIndex].bspComponent = bspComponents[i]; if (bspComponents[i].GetType() == typeof(BSPRoom)) { BSPRoom room = (BSPRoom)bspComponents[i]; for (int d = 0; d < room.doorPosition.Count; d++) { Vector2Int offsetPos = room.doorPosition[d] + this.bspMap.dungeonSize; //Debug.Log(offsetPos.x +", "+ offsetPos.y); //mapData[offsetPos.x, offsetPos.y] = "1"; } } } } } RenderToWorldCanvas(map_offset, dungeonFullSize, mapDetailData); }