Dwarrowdelf.TerrainGen.DungeonTerrainGenerator.CreateCorridor C# (CSharp) Method

CreateCorridor() private method

private CreateCorridor ( IntVector2 from, IntVector2 to, int z, bool horiz ) : void
from IntVector2
to IntVector2
z int
horiz bool
return void
        void CreateCorridor(IntVector2 from, IntVector2 to, int z, bool horiz)
        {
            var td = TileData.EmptyTileData;

            if (horiz)
            {
                int yinc = from.Y < to.Y ? 1 : -1;

                int middle = from.Y + (to.Y - from.Y) / 2;

                for (int y = from.Y; y != middle; y += yinc)
                    SetTileData(new IntVector3(from.X, y, z), td);

                int x1 = Math.Min(from.X, to.X);
                int x2 = Math.Max(from.X, to.X);

                for (int x = x1; x <= x2; ++x)
                    SetTileData(new IntVector3(x, middle, z), td);

                for (int y = middle; y != to.Y; y += yinc)
                    SetTileData(new IntVector3(to.X, y, z), td);
            }
            else
            {
                int xinc = from.X < to.X ? 1 : -1;

                int middle = from.X + (to.X - from.X) / 2;

                for (int x = from.X; x != middle; x += xinc)
                    SetTileData(new IntVector3(x, from.Y, z), td);

                int y1 = Math.Min(from.Y, to.Y);
                int y2 = Math.Max(from.Y, to.Y);

                for (int y = y1; y <= y2; ++y)
                    SetTileData(new IntVector3(middle, y, z), td);

                for (int x = middle; x != to.X; x += xinc)
                    SetTileData(new IntVector3(x, to.Y, z), td);
            }
        }