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();
}
}