コード例 #1
0
    public override void Decorate(Level level)
    {
        var painter = new RoomPainter(level, this);

        DecorativeTileMap.SpawnTorch(Bounds.Left + 4, Bounds.Bottom + 4);
        DecorativeTileMap.SpawnTorch(Bounds.Left + 7, Bounds.Bottom + 4);
        //level.DecorativeTileMap.SpawnSideTorch(Bounds.Left + 3, Bounds.Bottom + 4, false);
        //level.DecorativeTileMap.SpawnSideTorch(Bounds.Left + 8, Bounds.Bottom + 4, true);
        //level.DecorativeTileMap.SpawnSideTorch(Bounds.Left + 3, Bounds.Bottom + 7, false);
        //level.DecorativeTileMap.SpawnSideTorch(Bounds.Left + 8, Bounds.Bottom + 7, true);
        if (!painter.IsFloor(Bounds.Left + 3, Bounds.Top - 1))
        {
            DecorativeTileMap.SpawnTorch(Bounds.Left + 3, Bounds.Top - 1);
        }
        if (!painter.IsFloor(Bounds.Right - 4, Bounds.Top - 1))
        {
            DecorativeTileMap.SpawnTorch(Bounds.Right - 4, Bounds.Top - 1);
        }
        if (!painter.IsFloor(Bounds.Left, Bounds.Bottom + 3))
        {
            DecorativeTileMap.SpawnSideTorch(Bounds.Left + 1, Bounds.Bottom + 3, true);
        }
        if (!painter.IsFloor(Bounds.Left, Bounds.Top - 4))
        {
            DecorativeTileMap.SpawnSideTorch(Bounds.Left + 1, Bounds.Top - 4, true);
        }
        if (!painter.IsFloor(Bounds.Right - 1, Bounds.Bottom + 3))
        {
            DecorativeTileMap.SpawnSideTorch(Bounds.Right - 2, Bounds.Bottom + 3, false);
        }
        if (!painter.IsFloor(Bounds.Right - 1, Bounds.Top - 4))
        {
            DecorativeTileMap.SpawnSideTorch(Bounds.Right - 2, Bounds.Top - 4, false);
        }
    }
コード例 #2
0
ファイル: Room.cs プロジェクト: PixelMute/MysteryRogueLite
    public virtual List <Vector2Int> GetPossibleSpawnLocations(Level level)
    {
        var res     = new List <Vector2Int>();
        var painter = new RoomPainter(level, this);

        for (int i = Bounds.Left + 1; i < Bounds.Right - 1; i++)
        {
            for (int j = Bounds.Bottom + 1; j < Bounds.Top - 1; j++)
            {
                if (painter.IsFloor(i, j))
                {
                    res.Add(new Vector2Int(i, j));
                }
            }
        }
        return(res);
    }