Terraria.LiquidBuffer.DelBuffer C# (CSharp) Method

DelBuffer() public static method

public static DelBuffer ( int l ) : void
l int
return void
        public static void DelBuffer(int l)
        {
            --LiquidBuffer.numLiquidBuffer;
            Main.liquidBuffer[l].x = Main.liquidBuffer[LiquidBuffer.numLiquidBuffer].x;
            Main.liquidBuffer[l].y = Main.liquidBuffer[LiquidBuffer.numLiquidBuffer].y;
        }
    }

Usage Example

Ejemplo n.º 1
0
        public static void UpdateLiquid()
        {
            int netMode = Main.netMode;
            int num8    = 2;

            if (!WorldGen.gen)
            {
                if (!panicMode)
                {
                    if (numLiquid + LiquidBuffer.numLiquidBuffer > 4000)
                    {
                        panicCounter++;
                        if (panicCounter > 1800 || numLiquid + LiquidBuffer.numLiquidBuffer > 13500)
                        {
                            StartPanic();
                        }
                    }
                    else
                    {
                        panicCounter = 0;
                    }
                }
                if (panicMode)
                {
                    int num = 0;
                    while (panicY >= 3 && num < 5)
                    {
                        num++;
                        QuickWater(0, panicY, panicY);
                        panicY--;
                        if (panicY >= 3)
                        {
                            continue;
                        }
                        Console.WriteLine(Language.GetTextValue("Misc.WaterSettled"));
                        panicCounter = 0;
                        panicMode    = false;
                        WorldGen.WaterCheck();
                        if (Main.netMode != 2)
                        {
                            continue;
                        }
                        for (int i = 0; i < 16; i++)
                        {
                            for (int j = 0; j < Main.maxSectionsX; j++)
                            {
                                for (int k = 0; k < Main.maxSectionsY; k++)
                                {
                                    Netplay.Clients[i].TileSections[j, k] = false;
                                }
                            }
                        }
                    }
                    return;
                }
            }
            if (quickSettle || numLiquid > 2000)
            {
                quickFall = true;
            }
            else
            {
                quickFall = false;
            }
            wetCounter++;
            int num2 = maxLiquid / cycles;
            int num3 = num2 * (wetCounter - 1);
            int num4 = num2 * wetCounter;

            if (wetCounter == cycles)
            {
                num4 = numLiquid;
            }
            if (num4 > numLiquid)
            {
                num4 = numLiquid;
                int netMode2 = Main.netMode;
                wetCounter = cycles;
            }
            if (quickFall)
            {
                for (int l = num3; l < num4; l++)
                {
                    Main.liquid[l].delay = 10;
                    Main.liquid[l].Update();
                    Main.tile[Main.liquid[l].x, Main.liquid[l].y].skipLiquid(false);
                }
            }
            else
            {
                for (int m = num3; m < num4; m++)
                {
                    if (!Main.tile[Main.liquid[m].x, Main.liquid[m].y].skipLiquid())
                    {
                        Main.liquid[m].Update();
                    }
                    else
                    {
                        Main.tile[Main.liquid[m].x, Main.liquid[m].y].skipLiquid(false);
                    }
                }
            }
            if (wetCounter >= cycles)
            {
                wetCounter = 0;
                for (int num5 = numLiquid - 1; num5 >= 0; num5--)
                {
                    if (Main.liquid[num5].kill > 4)
                    {
                        DelWater(num5);
                    }
                }
                int num6 = maxLiquid - (maxLiquid - numLiquid);
                if (num6 > LiquidBuffer.numLiquidBuffer)
                {
                    num6 = LiquidBuffer.numLiquidBuffer;
                }
                for (int n = 0; n < num6; n++)
                {
                    Main.tile[Main.liquidBuffer[0].x, Main.liquidBuffer[0].y].checkingLiquid(false);
                    AddWater(Main.liquidBuffer[0].x, Main.liquidBuffer[0].y);
                    LiquidBuffer.DelBuffer(0);
                }
                if (numLiquid > 0 && numLiquid > stuckAmount - 50 && numLiquid < stuckAmount + 50)
                {
                    stuckCount++;
                    if (stuckCount >= 10000)
                    {
                        stuck = true;
                        for (int num7 = numLiquid - 1; num7 >= 0; num7--)
                        {
                            DelWater(num7);
                        }
                        stuck      = false;
                        stuckCount = 0;
                    }
                }
                else
                {
                    stuckCount  = 0;
                    stuckAmount = numLiquid;
                }
            }
            if (Main.netMode == 2 && _netChangeSet.Count > 0)
            {
                Utils.Swap(ref _netChangeSet, ref _swapNetChangeSet);
                NetManager.Instance.Broadcast(NetLiquidModule.Serialize(_swapNetChangeSet));
                _swapNetChangeSet.Clear();
            }
        }
All Usage Examples Of Terraria.LiquidBuffer::DelBuffer