public static void AddWater(Func <Int32, Int32, ITile> TileRefs, ISandbox sandbox, int x, int y)
        {
            if (TileRefs == null)
            {
                TileRefs = TileCollection.ITileAt;
            }

            if (TileRefs(x, y).CheckingLiquid || (x >= Main.maxTilesX - 5 || y >= Main.maxTilesY - 5) || (x < 5 || y < 5) || TileRefs(x, y).Liquid == 0)
            {
                return;
            }

            if (Liquid.numLiquid >= Liquid.maxLiquid - 1)
            {
                LiquidBuffer.AddBuffer(TileRefs, x, y);
                return;
            }

            TileRefs(x, y).SetCheckingLiquid(true);
            Main.liquid[Liquid.numLiquid].kill  = 0;
            Main.liquid[Liquid.numLiquid].x     = x;
            Main.liquid[Liquid.numLiquid].y     = y;
            Main.liquid[Liquid.numLiquid].delay = 0;
            TileRefs(x, y).SetSkipLiquid(false);

            Liquid.numLiquid++;

            if (Liquid.numLiquid < Liquid.maxLiquid / 3)
            {
                NetMessage.SendWater(x, y);
            }
            if (TileRefs(x, y).Active&& (Main.tileWaterDeath[(int)TileRefs(x, y).Type] || (TileRefs(x, y).Lava&& Main.tileLavaDeath[(int)TileRefs(x, y).Type])))
            {
                if (TileRefs(x, y).Type == 4 && TileRefs(x, y).FrameY == 176)
                {
                    return;
                }

                if (WorldModify.gen)
                {
                    TileRefs(x, y).SetActive(false);
                    return;
                }
                WorldModify.KillTile(TileRefs, sandbox, x, y);
                NetMessage.SendData(17, -1, -1, "", 0, (float)x, (float)y);
            }
        }
        public static void AddWater(int x, int y)
        {
            if (Main.tile.At(x, y).CheckingLiquid)
            {
                return;
            }
            if (x >= Main.maxTilesX - 5 || y >= Main.maxTilesY - 5)
            {
                return;
            }
            if (x < 5 || y < 5)
            {
                return;
            }
            if (Main.tile.At(x, y).Liquid == 0)
            {
                return;
            }
            if (Liquid.numLiquid >= Liquid.maxLiquid - 1)
            {
                LiquidBuffer.AddBuffer(x, y);
                return;
            }
            Main.tile.At(x, y).SetCheckingLiquid(true);
            Main.liquid[Liquid.numLiquid].kill  = 0;
            Main.liquid[Liquid.numLiquid].x     = x;
            Main.liquid[Liquid.numLiquid].y     = y;
            Main.liquid[Liquid.numLiquid].delay = 0;
            Main.tile.At(x, y).SetSkipLiquid(false);
            Liquid.numLiquid++;

            NetMessage.SendWater(x, y);

            if (Main.tile.At(x, y).Active&& (Main.tileWaterDeath[(int)Main.tile.At(x, y).Type] || (Main.tile.At(x, y).Lava&& Main.tileLavaDeath[(int)Main.tile.At(x, y).Type])))
            {
                if (WorldModify.gen)
                {
                    Main.tile.At(x, y).SetActive(false);
                    return;
                }
                WorldModify.KillTile(x, y, false, false, false);
                NetMessage.SendData(17, -1, -1, "", 0, (float)x, (float)y);
            }
        }