コード例 #1
0
 private void PlaceSlab(Slab slab, int originX, int originY, int scale)
 {
     for (int i = 0; i < scale; i++)
     {
         for (int j = 0; j < scale; j++)
         {
             Tile tile = GenBase._tiles[originX + i, originY + j];
             if (TileID.Sets.Ore[tile.type])
             {
                 tile.ResetToType(tile.type);
             }
             else
             {
                 tile.ResetToType(367);
             }
             bool active = slab.State(i, j, scale);
             tile.active(active);
             if (slab.HasWall)
             {
                 tile.wall = 178;
             }
             WorldUtils.TileFrame(originX + i, originY + j, true);
             WorldGen.SquareWallFrame(originX + i, originY + j);
             Tile.SmoothSlope(originX + i, originY + j);
             if (WorldGen.SolidTile(originX + i, originY + j - 1) && GenBase._random.Next(4) == 0)
             {
                 WorldGen.PlaceTight(originX + i, originY + j, 165);
             }
             if (WorldGen.SolidTile(originX + i, originY + j) && GenBase._random.Next(4) == 0)
             {
                 WorldGen.PlaceTight(originX + i, originY + j - 1, 165);
             }
         }
     }
 }
コード例 #2
0
ファイル: MarbleBiome.cs プロジェクト: EmuDevs/EDTerraria
        private void PlaceSlab(Slab slab, int originX, int originY, int scale)
        {
            for (int x = 0; x < scale; ++x)
            {
                for (int y = 0; y < scale; ++y)
                {
                    Tile tile = GenBase._tiles[originX + x, originY + y];
                    if (TileID.Sets.Ore[tile.type])
                        tile.ResetToType(tile.type);
                    else
                        tile.ResetToType(367);

                    bool active = slab.State(x, y, scale);
                    tile.active(active);
                    if (slab.HasWall)
                        tile.wall = 178;

                    WorldUtils.TileFrame(originX + x, originY + y, true);
                    WorldGen.SquareWallFrame(originX + x, originY + y, true);
                    Tile.SmoothSlope(originX + x, originY + y, true);
                    if (WorldGen.SolidTile(originX + x, originY + y - 1) && GenBase._random.Next(4) == 0)
                        WorldGen.PlaceTight(originX + x, originY + y, 165, false);
                    if (WorldGen.SolidTile(originX + x, originY + y) && GenBase._random.Next(4) == 0)
                        WorldGen.PlaceTight(originX + x, originY + y - 1, 165, false);
                }
            }
        }
コード例 #3
0
 private void PlaceSlab(Slab slab, int originX, int originY, int scale)
 {
     for (var x = 0; x < scale; ++x)
     {
         for (var y = 0; y < scale; ++y)
         {
             var tile = _tiles[originX + x, originY + y];
             if (TileID.Sets.Ore[tile.type])
             {
                 tile.ResetToType(tile.type);
             }
             else
             {
                 tile.ResetToType(367);
             }
             var active = slab.State(x, y, scale);
             tile.active(active);
             if (slab.HasWall)
             {
                 tile.wall = 178;
             }
             WorldUtils.TileFrame(originX + x, originY + y, true);
             WorldGen.SquareWallFrame(originX + x, originY + y, true);
             Tile.SmoothSlope(originX + x, originY + y, true);
             if (WorldGen.SolidTile(originX + x, originY + y - 1) && _random.Next(4) == 0)
             {
                 WorldGen.PlaceTight(originX + x, originY + y, 165, false);
             }
             if (WorldGen.SolidTile(originX + x, originY + y) && _random.Next(4) == 0)
             {
                 WorldGen.PlaceTight(originX + x, originY + y - 1, 165, false);
             }
         }
     }
 }
コード例 #4
0
        private void PlaceSlab(Slab slab, int originX, int originY, int scale)
        {
            ushort num  = 367;
            ushort wall = 178;

            if (WorldGen.drunkWorldGen)
            {
                num  = 368;
                wall = 180;
            }
            int num2 = -1;
            int num3 = scale + 1;
            int num4 = 0;
            int num5 = scale;

            for (int i = num2; i < num3; i++)
            {
                if ((i == num2 || i == num3 - 1) && WorldGen.genRand.Next(2) == 0)
                {
                    continue;
                }
                if (WorldGen.genRand.Next(2) == 0)
                {
                    num4--;
                }
                if (WorldGen.genRand.Next(2) == 0)
                {
                    num5++;
                }
                for (int j = num4; j < num5; j++)
                {
                    Tile tile = GenBase._tiles[originX + i, originY + j];
                    tile.ResetToType(TileID.Sets.Ore[tile.type] ? tile.type : num);
                    bool active = slab.State(i, j, scale);
                    tile.active(active);
                    if (slab.HasWall)
                    {
                        tile.wall = wall;
                    }
                    WorldUtils.TileFrame(originX + i, originY + j, frameNeighbors: true);
                    WorldGen.SquareWallFrame(originX + i, originY + j);
                    Tile.SmoothSlope(originX + i, originY + j);
                    if (WorldGen.SolidTile(originX + i, originY + j - 1) && GenBase._random.Next(4) == 0)
                    {
                        WorldGen.PlaceTight(originX + i, originY + j);
                    }
                    if (WorldGen.SolidTile(originX + i, originY + j) && GenBase._random.Next(4) == 0)
                    {
                        WorldGen.PlaceTight(originX + i, originY + j - 1);
                    }
                }
            }
        }