public static void HoneyCheck(int x, int y)
        {
            Tile tile  = Main.tile[x - 1, y];
            Tile tile2 = Main.tile[x + 1, y];
            Tile tile3 = Main.tile[x, y - 1];
            Tile tile4 = Main.tile[x, y + 1];
            Tile tile5 = Main.tile[x, y];

            if ((tile.liquid > 0 && tile.liquidType() == 0) || (tile2.liquid > 0 && tile2.liquidType() == 0) || (tile3.liquid > 0 && tile3.liquidType() == 0))
            {
                int num = 0;
                if (tile.liquidType() == 0)
                {
                    num        += tile.liquid;
                    tile.liquid = 0;
                }
                if (tile2.liquidType() == 0)
                {
                    num         += tile2.liquid;
                    tile2.liquid = 0;
                }
                if (tile3.liquidType() == 0)
                {
                    num         += tile3.liquid;
                    tile3.liquid = 0;
                }
                if (num < 32)
                {
                    return;
                }
                if (tile5.active() && Main.tileObsidianKill[tile5.type])
                {
                    WorldGen.KillTile(x, y);
                    if (Main.netMode == 2)
                    {
                        NetMessage.SendData(17, -1, -1, "", 0, x, y);
                    }
                }
                if (!tile5.active())
                {
                    tile5.liquid = 0;
                    tile5.liquidType(0);
                    WorldGen.PlaceTile(x, y, 229, true, true);
                    WorldGen.SquareTileFrame(x, y);
                    if (Main.netMode == 2)
                    {
                        NetMessage.SendTileSquare(-1, x - 1, y - 1, 3);
                    }
                }
            }
            else
            {
                if (tile4.liquid <= 0 || tile4.liquidType() != 0)
                {
                    return;
                }
                if (Main.tileCut[tile4.type])
                {
                    WorldGen.KillTile(x, y + 1);
                    if (Main.netMode == 2)
                    {
                        NetMessage.SendData(17, -1, -1, "", 0, x, y + 1);
                    }
                }
                else if (tile4.active() && Main.tileObsidianKill[tile4.type])
                {
                    WorldGen.KillTile(x, y + 1);
                    if (Main.netMode == 2)
                    {
                        NetMessage.SendData(17, -1, -1, "", 0, x, y + 1);
                    }
                }
                if (tile4.active())
                {
                    return;
                }
                if (tile5.liquid < 32)
                {
                    tile5.liquid = 0;
                    tile5.liquidType(0);
                    if (Main.netMode == 2)
                    {
                        NetMessage.SendTileSquare(-1, x - 1, y, 3);
                    }
                    return;
                }
                tile5.liquid = 0;
                tile5.liquidType(0);
                tile4.liquid = 0;
                tile4.liquidType(0);
                WorldGen.PlaceTile(x, y + 1, 229, true, true);
                WorldGen.SquareTileFrame(x, y + 1);
                if (Main.netMode == 2)
                {
                    NetMessage.SendTileSquare(-1, x - 1, y, 3);
                }
            }
        }
        public static void LavaCheck(int x, int y)
        {
            Tile tile  = Main.tile[x - 1, y];
            Tile tile2 = Main.tile[x + 1, y];
            Tile tile3 = Main.tile[x, y - 1];
            Tile tile4 = Main.tile[x, y + 1];
            Tile tile5 = Main.tile[x, y];

            if ((tile.liquid > 0 && !tile.lava()) || (tile2.liquid > 0 && !tile2.lava()) || (tile3.liquid > 0 && !tile3.lava()))
            {
                int num  = 0;
                int type = 56;
                if (!tile.lava())
                {
                    num        += tile.liquid;
                    tile.liquid = 0;
                }
                if (!tile2.lava())
                {
                    num         += tile2.liquid;
                    tile2.liquid = 0;
                }
                if (!tile3.lava())
                {
                    num         += tile3.liquid;
                    tile3.liquid = 0;
                }
                if (tile.honey() || tile2.honey() || tile3.honey())
                {
                    type = 230;
                }
                if (num < 24)
                {
                    return;
                }
                if (tile5.active() && Main.tileObsidianKill[tile5.type])
                {
                    WorldGen.KillTile(x, y);
                    if (Main.netMode == 2)
                    {
                        NetMessage.SendData(17, -1, -1, "", 0, x, y);
                    }
                }
                if (!tile5.active())
                {
                    tile5.liquid = 0;
                    tile5.lava(false);
                    WorldGen.PlaceTile(x, y, type, true, true);
                    WorldGen.SquareTileFrame(x, y);
                    if (Main.netMode == 2)
                    {
                        NetMessage.SendTileSquare(-1, x - 1, y - 1, 3);
                    }
                }
            }
            else
            {
                if (tile4.liquid <= 0 || tile4.lava())
                {
                    return;
                }
                if (Main.tileCut[tile4.type])
                {
                    WorldGen.KillTile(x, y + 1);
                    if (Main.netMode == 2)
                    {
                        NetMessage.SendData(17, -1, -1, "", 0, x, y + 1);
                    }
                }
                else if (tile4.active() && Main.tileObsidianKill[tile4.type])
                {
                    WorldGen.KillTile(x, y + 1);
                    if (Main.netMode == 2)
                    {
                        NetMessage.SendData(17, -1, -1, "", 0, x, y + 1);
                    }
                }
                if (tile4.active())
                {
                    return;
                }
                if (tile5.liquid < 24)
                {
                    tile5.liquid = 0;
                    tile5.liquidType(0);
                    if (Main.netMode == 2)
                    {
                        NetMessage.SendTileSquare(-1, x - 1, y, 3);
                    }
                    return;
                }
                int type2 = 56;
                if (tile4.honey())
                {
                    type2 = 230;
                }
                tile5.liquid = 0;
                tile5.lava(false);
                tile4.liquid = 0;
                WorldGen.PlaceTile(x, y + 1, type2, true, true);
                WorldGen.SquareTileFrame(x, y + 1);
                if (Main.netMode == 2)
                {
                    NetMessage.SendTileSquare(-1, x - 1, y, 3);
                }
            }
        }
Beispiel #3
0
        public static bool SpreadDirt(int x, int y)
        {
            if ((double)Vector2.Distance(DelegateMethods.v2_1, new Vector2((float)x, (float)y)) > (double)DelegateMethods.f_1 || !WorldGen.PlaceTile(x, y, 0, false, false, -1, 0))
            {
                return(false);
            }
            if (Main.netMode != 0)
            {
                NetMessage.SendData(17, -1, -1, (NetworkText)null, 1, (float)x, (float)y, 0.0f, 0, 0, 0);
            }
            Vector2 Position = new Vector2((float)(x * 16), (float)(y * 16));
            int     Type     = 0;

            for (int index = 0; index < 3; ++index)
            {
                Dust dust1 = Dust.NewDustDirect(Position, 16, 16, Type, 0.0f, 0.0f, 100, Color.Transparent, 2.2f);
                dust1.noGravity   = true;
                dust1.velocity.Y -= 1.2f;
                dust1.velocity   *= 4f;
                Dust dust2 = Dust.NewDustDirect(Position, 16, 16, Type, 0.0f, 0.0f, 100, Color.Transparent, 1.3f);
                dust2.velocity.Y -= 1.2f;
                dust2.velocity   *= 2f;
            }
            int i  = x;
            int j1 = y + 1;

            if (Main.tile[i, j1] != null && !TileID.Sets.Platforms[(int)Main.tile[i, j1].type] && (Main.tile[i, j1].topSlope() || Main.tile[i, j1].halfBrick()))
            {
                WorldGen.SlopeTile(i, j1, 0, false);
                if (Main.netMode != 0)
                {
                    NetMessage.SendData(17, -1, -1, (NetworkText)null, 14, (float)i, (float)j1, 0.0f, 0, 0, 0);
                }
            }
            int j2 = y - 1;

            if (Main.tile[i, j2] != null && !TileID.Sets.Platforms[(int)Main.tile[i, j2].type] && Main.tile[i, j2].bottomSlope())
            {
                WorldGen.SlopeTile(i, j2, 0, false);
                if (Main.netMode != 0)
                {
                    NetMessage.SendData(17, -1, -1, (NetworkText)null, 14, (float)i, (float)j2, 0.0f, 0, 0, 0);
                }
            }
            return(true);
        }