public static void AddWater(int x, int y)
        {
            Tile tile = Main.tile[x, y];

            if (Main.tile[x, y] == null || tile.checkingLiquid() || x >= Main.maxTilesX - 5 || y >= Main.maxTilesY - 5 || x < 5 || y < 5 || tile.liquid == 0)
            {
                return;
            }
            if (numLiquid >= maxLiquid - 1)
            {
                LiquidBuffer.AddBuffer(x, y);
                return;
            }
            tile.checkingLiquid(true);
            Main.liquid[numLiquid].kill  = 0;
            Main.liquid[numLiquid].x     = x;
            Main.liquid[numLiquid].y     = y;
            Main.liquid[numLiquid].delay = 0;
            tile.skipLiquid(false);
            numLiquid++;
            if (Main.netMode == 2)
            {
                NetSendLiquid(x, y);
            }
            if (!tile.active() || WorldGen.gen)
            {
                return;
            }
            bool flag = false;

            if (tile.lava())
            {
                if (TileObjectData.CheckLavaDeath(tile))
                {
                    flag = true;
                }
            }
            else if (TileObjectData.CheckWaterDeath(tile))
            {
                flag = true;
            }
            if (flag)
            {
                WorldGen.KillTile(x, y);
                if (Main.netMode == 2)
                {
                    NetMessage.SendData(17, -1, -1, "", 0, x, y);
                }
            }
        }
Beispiel #2
0
        public new static void AddWater(int x, int y)
        {
            Tile tile = Main.tile[x, y];

            if (Main.tile[x, y] == null)
            {
                return;
            }
            if (tile.checkingLiquid())
            {
                return;
            }
            if (x >= Main.maxTilesX - 5 || y >= Main.maxTilesY - 5)
            {
                return;
            }
            if (x < 5 || y < 5)
            {
                return;
            }
            if (tile.liquid == 0)
            {
                return;
            }
            if (Liquid2.numLiquid >= Liquid2.maxLiquid - 1)
            {
                LiquidBuffer.AddBuffer(x, y);
                return;
            }
            tile.checkingLiquid(true);
            QuickLiquidV2.liquid2[Liquid2.numLiquid].kill  = 0;
            QuickLiquidV2.liquid2[Liquid2.numLiquid].x     = x;
            QuickLiquidV2.liquid2[Liquid2.numLiquid].y     = y;
            QuickLiquidV2.liquid2[Liquid2.numLiquid].delay = 0;
            tile.skipLiquid(false);
            Liquid2.numLiquid++;
            if (Main.netMode == 2)
            {
                Liquid2.NetSendLiquid(x, y);
            }
            if (tile.active() && !Terraria.WorldGen.gen)
            {
                bool flag = false;
                if (tile.lava())
                {
                    if (TileObjectData.CheckLavaDeath(tile))
                    {
                        flag = true;
                    }
                }
                else if (TileObjectData.CheckWaterDeath(tile))
                {
                    flag = true;
                }
                if (flag)
                {
                    Terraria.WorldGen.KillTile(x, y, false, false, false);
                    if (Main.netMode == 2)
                    {
                        NetMessage.SendData(17, -1, -1, null, 0, (float)x, (float)y, 0f, 0, 0, 0);
                    }
                }
            }
        }